2013-12-10 45 views
0

讓我們兩個向量:八度/ Matlab的:分兩個向量

a = [1 ; 2; 3] 
b = [0 ; 9 ; -5] 

如果我想在矢量的最小值和它的位置,我可以簡單地說:

[x, ix] = min(a) 

我也可以比較兩個向量,並得到最小值:

> min(a, b) 
ans = 

    0 
    2 
    -5 

但它是不可能得到兩個向量的最小值的位置:

> [x, ix] = min(a, b) 
x = 

    0 
    2 
    -5 

error: element number 2 undefined in return list 

爲什麼?如何獲得他們?有一個簡單的方法嗎?

回答

2

這裏是如何做到這一點:

[v id]=min([a,b]') 
+0

注那也是轉換最小值/索引,所以'v'和'id'是行向量,而'a'和'b'是列向量。通常無關緊要,但通常是這樣。 –

0

您必須考慮ix的預期輸出是什麼。

這說明你在向量中的最小值爲:

ix=a<b; 
x=a.*ix+b.*not(ix); 
2

這是有正確的洞察力的問題:

[x,ix] = min([a b],[],2)