作者jeffppp (煩..)
看板MATLAB
標題Re: [討論] 請問矩陣搜尋問題
時間Sun Nov 17 19:10:54 2013
※ 引述《garnett0512 (賈奶)》之銘言:
: 我有一個矩陣
: 9 6 5 6
: 3 2 1 5
: 0 6 0 0
: 5 3 0 8
: 4 5 8 1
: 我想要找尋右下角1的對角線非0的值,也就是6和3,
: 但我只需要最接近的,所以答案是6
: 想請問各位高手要怎麼解決 謝謝
你的矩陣是固定長怎樣嗎?
若以你的舉例來說
可以在最左邊補上一排0
假設你矩陣為a
b=zeros(5);
b(:,2:end)=a;
c=b(logical(eye(5)));
[x,y,z]=find(c); % x,y是非0座標 z是非0的值
剩下的自己應該就可以了吧
至於要反過來的
就改在右邊補0
然後把對角線的矩陣翻轉一下
flipdim(eye(5),1)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.129.112.16
推 profyang:很酷的方法@@ 學到一課了還可以用logical 不過你這樣後面 11/17 20:36
→ profyang:C還是5*5 而我的方法是只剩下對角線 11/17 20:36
→ jeffppp:用logical 的用意就是為了只取出對角線 11/17 20:56
→ jeffppp:而且其實diag 就好了 剛剛腦殘用這麼麻煩的方式..... 11/17 20:58
推 profyang:原來有這function!! 11/17 21:01