簡體   English   中英

在每個矩陣行中找到最小數

[英]finding minimum number in each matrix row

我正在嘗試編寫代碼以從“距離”矩陣中查找最小數,而不是從矩陣中排除零。

distance=[0    0.44    0.40    0.63    0.89
0.44    0       0.44    0.72    1.00
0.40    0.44    0       0.28    0.56
0.63    0.72    0.28    0       0.28
0.89    1.00    0.56    0.28    0]

for  i=1:Nodes
    for  j=1:Nodes
        if (distance(i,j)~=0)

        [mini(i,:)]=[min(distance(i,:))];
        end
    end
end

任何幫助表示贊賞! 謝謝!

正確答案是:

d = distance;
d(~d) = inf;
mini = min(d);

首先,您擺脫了零項,然后讓Matlab計算每行的最小值。

您應該始終嘗試避免在Matlab中出現循環。

盡管我會推薦@ypnos提供的矢量化解決方案,但這是使循環工作的一種方法。

mini = inf(1,Nodes)
for  i=1:Nodes
    for  j=1:Nodes
        if (distance(i,j)~=0) %Consider using if i~=j if you want the distance to 'other' points
            mini(j)=min(distance(i,j),mini(j));
        end
    end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM