[問題]矩陣的if判斷 已回收

看板MATLAB作者 (卑鄙麥芽糖)時間14年前 (2011/03/11 17:56), 編輯推噓1(104)
留言5則, 5人參與, 最新討論串1/1
我想要做亂數矩陣的判斷 a=input b=min(ceil(abs(randn(1,3)*5)),10)-1 if b==[2 2 2] fprintf('%d',a*1000) elseif b==[2 2 ~2]|[2 ~2 2]|[~2 2 2] fprintf('%d',a*100) elseif b==[2 ~2 ~2]|[2 ~2 ~2 ]|[~2 ~2 2 ] fprintf('%d',a*10) else fprintf('lost') end 每次輸入值後跑出來的亂數都只會跑到第2個elseif 也就是比方說明明b=[2 0 8] a=1 但是得到的結果卻不是lost而是=100 請問是哪裡出錯呢? 另外 這個程式每次都要重開再輸入值 不能看完結果直接打新a再跑一遍 請問if指令本來就是這樣嗎? 如果我想要連續跑該怎麼做呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.111.155

03/11 20:45, , 1F
b==[2 2 ~2] | (b==[2 ~2 2]) | (b==[~2 2 2])
03/11 20:45, 1F
改過了 但現在變成結果都是lost 猜想邏輯判斷可能有問題 但是看不出問題出在哪 Q.Q 謝謝你讓我更進一步! ※ 編輯: piecpiec 來自: 114.45.111.155 (03/11 23:00)

03/11 23:39, , 2F
or是|還是|| ?
03/11 23:39, 2F
| ※ 編輯: piecpiec 來自: 114.34.24.207 (03/12 00:38)

03/12 01:21, , 3F
判斷矩陣相等最好用isequal
03/12 01:21, 3F

03/12 16:52, , 4F
|| = =
03/12 16:52, 4F

03/12 19:54, , 5F
or 請用 ||, | 習慣上是位元運算子
03/12 19:54, 5F
不過||不是只能做純量嘛?矩陣好像不能用 是要再做什麼轉換嗎? ※ 編輯: piecpiec 來自: 114.45.111.155 (03/12 21:46)
文章代碼(AID): #1DUV7VSE (MATLAB)