[討論] 矩陣 if判斷

看板MATLAB作者 (mj)時間8年前 (2015/08/20 22:58), 8年前編輯推噓0(0014)
留言14則, 3人參與, 最新討論串1/1
各位matlab神人 新手小弟剛接觸不久 有些問題想發文 A1=[1 4;2 3] A2=[4 2;2 2] M=max(A1,A2) 如果M=A1則進行(A1+A2)+2 否則進行(A1-A2)+1 然後將執行的結果放置於同一個矩陣中 以下為小弟的程式碼 A1=[1 4;2 3] A2=[4 2;2 2] M=max(A1,A2) for i=1:2 j=1:2 if M==A1 a=(A1+A2)+2 else a= (A1-A2)+1 end end 上述不知那裡出了錯誤 請各位神人幫我解答下 謝謝 (若有不清楚 在麻煩告知) -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.8.98.177 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1440082709.A.993.html

08/20 23:14, , 1F
if all(M==A1)
08/20 23:14, 1F
※ 編輯: qaz3869153 (39.8.98.177), 08/20/2015 23:24:49

08/20 23:46, , 2F
迴圈白寫的意思,i,j都沒用到,還有M是一個矩陣,在迴圈
08/20 23:46, 2F

08/20 23:46, , 3F
內我猜你要把矩陣元素拿出來比對,那M要改成M(i,j),其他
08/20 23:46, 3F

08/20 23:46, , 4F
變數亦同,可以的話迴圈前多寫a=zeros(2);
08/20 23:46, 4F

08/20 23:49, , 5F
如果是個別比較不如直接
08/20 23:49, 5F

08/20 23:49, , 6F
(M==A1) .* (A1+A2+2) + (M~=A1) .* (A1-A2+1)
08/20 23:49, 6F

08/20 23:52, , 7F
歐對 我是要將矩陣裡的各元素抓出來比較判斷的 感謝
08/20 23:52, 7F

08/20 23:52, , 8F
兩位
08/20 23:52, 8F

08/20 23:57, , 9F
也就是說我要將(1,1)元素 抓出來判斷 如果最大值是A1
08/20 23:57, 9F

08/20 23:57, , 10F
的元素 就執行對應的算法 就這樣算4次 所以我才寫了fo
08/20 23:57, 10F

08/20 23:57, , 11F
r迴圈 然後將所算出來的值分別放入一個a矩陣
08/20 23:57, 11F

08/21 00:03, , 12F
推薦樓上寫法,也可改成(A1>=A2) .* (A1+A2+2) + (A1<A2)
08/21 00:03, 12F

08/21 00:03, , 13F
.* (A1-A2+1)
08/21 00:03, 13F

08/21 00:09, , 14F
感謝兩位大大 問題已經解決了哈哈
08/21 00:09, 14F
文章代碼(AID): #1LrUiLcJ (MATLAB)