[問題]判斷方陣是否為對角線矩陣 已回收

看板MATLAB作者 (愛世代)時間13年前 (2011/02/15 22:13), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串1/2 (看更多)
各位大家好,我在書上遇到一個練習題想請教一下。 題目是要寫一個自訂function去判斷輸入的方陣mata是否為對角線矩陣。 如果mata為對角線矩陣顯示為1,否則為0 *****************以下是我參考書上別的例子寫的部分************* function myflag=isdiagonal(mata) [r c]=size(mata); for ii=1:r if(mata(ii,ii)~=0) myflag=logical(1); else myflag=logical(0); end end ********************************* 說明:我目前頂多偵測對角線元素不為0,就顯示為1。 能否給點提示如何偵測非對角線的部分? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.21.111

02/15 22:18, , 1F
用triu和tril把對角線以外的地方抓出來
02/15 22:18, 1F

02/15 22:19, , 2F
判斷是否抓出來的新矩陣整個為0即可
02/15 22:19, 2F

02/15 22:49, , 3F
我會把對角線令為0 A=A-diag(diag(A))
02/15 22:49, 3F

02/16 11:13, , 4F
你沒加break 最後只判斷了最右下角的元素
02/16 11:13, 4F

02/16 12:04, , 5F
請問該加在哪呢??
02/16 12:04, 5F
文章代碼(AID): #1DMeeP_a (MATLAB)
文章代碼(AID): #1DMeeP_a (MATLAB)