[問題] 矩陣問題已回收

看板MATLAB作者 (阿維)時間14年前 (2010/10/29 17:41), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串21/34 (看更多)
小弟想請問一下各位大大 假如我有10個點,我想算每個點到其他點的距離 假設點的座標是 a = [1,1;2,2;3,3;4,4;5,5;6,6;7,7;8,8;9,9;10,10] 小弟的寫法是比較簡單的直接使用兩個loop解決它 程式碼如下: Data_len = length(a); for i = 1 : Data_len for j = 1 : Data_len if (i == j) inter_distance(i,j) = 0; fprintf('0\n'); break; else inter_distance(i,j) = sum((a(i,:) - a(j,:)).^2); end end end 但跑出來的結果卻是一個下三角的矩陣~雖然我知道他會是對稱矩陣, 會多一倍的計算量,若我需要使用這個矩陣而非是matlab跑出得下三角矩陣 請問有別的作法嗎? 如果沒有,那請問一下我如果要用到inter_distance(1,10)的元素的話 ( 這一格matlab跑出0,正確的值在他對稱於inter_distance(10,1) ) 那我又該如何讓程式能夠自己找到正確的值而非0呢? 謝謝大大看完我的疑問~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.82.134

10/30 00:09, , 1F
用meshgrid快很多
10/30 00:09, 1F

10/30 13:38, , 2F
抱歉耶,我不太懂你怎麼寫的,可以請你教我嗎?
10/30 13:38, 2F

10/30 22:42, , 3F
i=1,j=2的位置表(1,1)跟(2,2)的距離 應該是√2
10/30 22:42, 3F

10/30 22:42, , 4F
為什麼答案是0?
10/30 22:42, 4F
文章代碼(AID): #1CofQs7a (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1CofQs7a (MATLAB)