特定の配列で、配列内の最小値のインデックスを見つける必要がありますが、それが負の場合のみです。
例:[1, 2, 3, 4]
インデックスを返さない
そして[1, 4, -7, -2]
戻ってきます3
コマンドでシンプルに違いないと思っていたのfind()
ですが、この特定の状況での使い方がわかりませんでした。
入力行列がであるとするとA
、これでうまくいくはずです。
find(A==min(A) & A<0)
例えば:
>> A = [1, 2, 3, 4];
>> B = [1, 4, -7, -2];
>> find(A==min(A) & A<0)
ans =
Empty matrix: 1-by-0
>> find(B==min(B) & B<0)
ans =
3
すべてを 1 つの複雑なベクトル式に入れるのが最適でない場合があります。
この場合、 への呼び出しを避ける方がはるかに高速になると思いますfind
。
function [i] = most_negative_index(x)
[mn, i] = min(x);
if mn >= 0
i = [];
end
end