我有一组 18 个 MATLAB 向量(当前值的原始读数)数据,这些数据随许多最小值和最大值而变化,放入一个 2d 矩阵中B
,其大小为 18 x 16348。
我找到了每个行向量的全局最大值的索引和值。存储在另一个向量中,即M
( 具有 的每个行向量的最大值B
) 和 l (具有 的每个行向量的最大值的索引B
)。使用下面的代码。
[M,l]=max(B,[],2)
现在我想找到在这个全局最大值之前出现的每个行向量的最小值。
我写了一个循环向后看,从全局最大值开始检查最小值及其索引。最小值的条件可以想象为 b[i,l] < b[i,l-1] & b[i,l] < b[i,l+1]
这放入一个循环如下。
o=l; % l vector has the indices of global max of all 18 vectors%
for i=1:18
while ( B(i,o(i)) > B(i,o(i)-1)) % to locate the minima before globalmax
o(i)=o(i)-1;
end;
if( B(i,o(i) < B(i, o(i)+1))
display(o(i));
display(B(i,o(i)));
break;
end;
end;
由于某种原因,while
循环只执行一次然后停止。这就是我面临的问题。
下图显示了绘制的 18 个值中的 4 个,并标记了向量的最大值和最小值。