在給定的數組中,我需要找到數組中最小值的索引,但只有當它是負數時才需要。Matlab,找到最小值的索引,並且必須是負的條件
例如:[1, 2, 3, 4]
將返回沒有索引
和[1, 4, -7, -2]
將返回3
我在想,它必須與find()
命令簡單,但我無法弄清楚如何使用它這個具體情況。
在給定的數組中,我需要找到數組中最小值的索引,但只有當它是負數時才需要。Matlab,找到最小值的索引,並且必須是負的條件
例如:[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
有時,投擲一切到一個複雜的矢量表達不是最佳的。
在這種情況下,我希望避免呼叫find
要快得多。
function [i] = most_negative_index(x)
[mn, i] = min(x);
if mn >= 0
i = [];
end
end
我自己發現了,當我嘗試你的問題。 :D – 2013-03-19 04:47:39