B
私は、サイズが 18 x 16348の 2 次元行列に入れられた多くの最小値と最大値によって変化する 18 個の MATLAB ベクトル (現在の値の生の読み取り値) データのセットを持っています。
各行ベクトルのグローバル最大値のインデックスと値を見つけました。別のベクトル、つまり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
ループが 1 回だけ実行されてから停止します。それが私が直面している問題です。
以下のプロットは、プロットされた 18 個の値のうち 4 個と、マークされたベクトルの最大値と最小値を示しています。