2012-01-13 137 views
0

有沒有最短的方法來找到矩陣的非對角線元素的最小值以及其在matlab中的索引。從矩陣中找出一個非對角線最小元素

如果A = [1 2 3; 4 1 3; 4 4 4];那麼我想返回最小非對角元素的索引。這裏在第一行和第二列中將是2。所以,我想返回(1,2)。 謝謝。

回答

4

對於完全量化的另類嘗試

B = (A + diag(Inf(size(diag(A))))); % put Inf on diagonal 
[~,ndx] = min(B(:));     % get the linear index of the minimum value 
[r,c] = ind2sub(size(A),ndx);   % get row, column of corresponding to linear index 
1
for k=1:size(A,1) 
    A(k,k) = inf; 
end 
[row,col] = find(A==min(A(:))) 
相關問題