0

我有一组 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 个,并标记了向量的最大值和最小值。

值图、最大值、最小值

4

0 回答 0