Re: [問題] 矩陣問題已回收

看板MATLAB作者 (幹嘛要暱稱)時間14年前 (2010/10/29 18:15), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串22/34 (看更多)
※ 引述《weibear (阿維)》之銘言: : 小弟想請問一下各位大大 : 假如我有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 加上這行 讓你的矩陣變成對稱的就好啦 inter_distance(j,i)=inter_distance(i,j) : end : end : 但跑出來的結果卻是一個下三角的矩陣~雖然我知道他會是對稱矩陣, : 會多一倍的計算量,若我需要使用這個矩陣而非是matlab跑出得下三角矩陣 : 請問有別的作法嗎? : 如果沒有,那請問一下我如果要用到inter_distance(1,10)的元素的話 : ( 這一格matlab跑出0,正確的值在他對稱於inter_distance(10,1) ) : 那我又該如何讓程式能夠自己找到正確的值而非0呢? : 謝謝大大看完我的疑問~ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.134.47

10/30 01:02, , 1F
謝謝你得回應~我最後也是這樣使用~謝謝
10/30 01:02, 1F
文章代碼(AID): #1Cofwa8B (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1Cofwa8B (MATLAB)