Re: [問題] 矩陣內的值做比對

看板MATLAB作者 (.)時間17年前 (2008/01/09 22:59), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《banco (Acoustic)》之銘言: : ※ 引述《yang0915 (人生路...)》之銘言: : : 假設 BR 矩陣(維度Nx2) = : : 132 115...第一組 : : 132 115 : : 132 110 : : 158 123 : : 142 135 : : 123 142 : : . . : : . . : : . . ...第N組 : : 等 等 : : 另外一個 H 矩陣(維度3x2) = : : 132 115...第一組 : : 132 110...第二組 : : 123 142...第三組 : : 如果說BR裡面每一組有等於H裡任一組(H組別沒重複), : : 該用什麼技巧去判斷(勿用for loop) : [i,j] = find(BR*(1./H')==2) : i 會回傳 BR 裡符合 H 的 row index : 以上是半殘的解法,以下應該才是沒問題的解法(兩者皆可行) : 主要是利用兩相等向量在向量空間夾角為0的特性進行演算 : 下列式子並沒有透過 acos() 轉到角度做判斷 (此時判斷式為 == 0 ) : 而直接在向量空間判別其值是否為1 : [i,j] = find( (BR*H')./((sum(BR.^2,2))*(sum(H.^2,2))').^0.5 == 1 ) : [i,j] = find( ((BR*H')./(diag(BR*BR')*diag(H*H')')).^0.5 == 1 ) 很Nice的演算法 這裡另提供一個matlab內的函數:ismember 範例: idx = find( ismember( BR , H , 'rows' ) ) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.229.74.146

01/10 00:09, , 1F
fantastic~
01/10 00:09, 1F

01/10 08:00, , 2F
good
01/10 08:00, 2F
文章代碼(AID): #17XE5YhE (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #17XE5YhE (MATLAB)