2014-02-18 54 views
0

我有幾個大矩陣(〜500x650),我有興趣找到只有一列的最小值及其相應的行號,然後將它與在其他martices中的同一列(即比較矩陣1中的列5到矩陣7中的列5)。最小值會每次更改行和值,但我只想找出最小值從前一個矩陣中的位置移動了多少行。我不在乎最小值是什麼,我只是想知道這個值移動了多少行。有誰知道如何做到這一點?非常感謝您的時間和協助。MatLab 7.10.0一系列矩陣中最小值的運動比較

+0

使用'min'的第二個輸出參數來獲取索引。 – Daniel

回答

0

min函數查找每列中的最小值和相關索引。那麼你可以比較它們。 例如:

M = 

    0.3922 0.7060 0.0462 
    0.6555 0.0318 0.0971 
    0.1712 0.2769 0.8235 

[C,I]=min(M) 

C = 

    0.1712 0.0318 0.0462 

I = 

    3  2  1 

可以用於其它的尺寸做同樣的:

[C,I]=min(M,[],2) 

C = 

    0.0462 
    0.0318 
    0.1712 


I = 

    3 
    2 
    1 

然後就可以做到這一點:

[~,idx]=min(C) 

idx = 

    2 

最小放置在I(IDX),IDX :

M(I(idx),idx) 

= 0.0318 

這等於

min(min(M))