[英]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.