[問題] MATLAB條件式已回收

看板MATLAB作者 (妹妹)時間15年前 (2009/03/20 13:49), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/1
以下是我的matlab條件式,但是不知道為什麼12.20 12.15 12.10的部分會判斷錯誤?? >> a=[15 14 13;12.20 12.15 12.10;17 17.5 20;12.2 12.18 12.1]; >> for i=1:4 if a(i,2)==(a(i,1)+a(i,3))/2 b(i,1)=0; elseif a(i,2)>(a(i,1)+a(i,3))/2 b(i,1)=1; else b(i,1)=-1; end end 顯示出來的結果 0 1 -1 1 我是新手,請問到底是哪裡出了問題?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.216.65

03/20 16:42, , 1F
改成 if> elseif< else 試試看? 避開==
03/20 16:42, 1F

03/20 16:57, , 2F
我試了,還是不行,為什麼會這樣勒??
03/20 16:57, 2F

03/20 17:21, , 3F
這不是語法問題..應該是MATLAB存變數的問題...
03/20 17:21, 3F

03/20 17:25, , 4F
12.1500==(12.20+12.10)/2 回傳值是0
03/20 17:25, 4F

03/20 17:26, , 5F
在 for 的下面令一個 c = (a(i,1)+a(i,3))/2
03/20 17:26, 5F

03/20 17:26, , 6F
然後判斷流程你可以改成先判斷 > 再判斷 < 最後是 else
03/20 17:26, 6F

03/20 17:27, , 7F
(除非 12.1500 > or < (12.20+12.10)/2 它也全傳 0 XD
03/20 17:27, 7F

03/20 19:53, , 8F
12.15==roundn((12.20+12.10)/2,-2)
03/20 19:53, 8F

03/20 21:32, , 9F
謝謝大家,我解決了
03/20 21:32, 9F
文章代碼(AID): #19movhyJ (MATLAB)