[問題] if 裡面加try?

看板MATLAB作者 (藍調迷思)時間10年前 (2013/10/16 15:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我現在有一支程式 for i = 1:m for j = 1:n if M[i,j-1] == 1 || M[i-1,j] == 1 u(i,j) = M(i,j-1) + M(i-1,j) else if M[i-1,j-1] == 1 u(i,j) = M(i-1,j-1) else u(i,j) = M(i,j) end end end 但是如果i,j等於1的話i-1跟j-1會underflow。 今天我想要underflow的時候就把該bool值設為0 例如if M[i,j-1] == 1 or M[i-1,j] == 1 j-1 underflow 所以M[i,j-1] == 1判斷為false i-1沒有underflow 所以M[i-1,j] == 1 正常判斷,假設為true 所以這段if的判斷式就是 false || true = true 直接在if裡面加try catch試了好久都無法執行,說是錯誤的用法 當然也可以用if去判斷有沒有underflow 但是程式會變的很難看 if j-1 < 1 && i-1 < 1 u(i,j) = M(i,j) else if j-1 < 1 if M(i-1,j) == 1 u(i,j) = M(i-1,j) end else if i-1 < 1 if M(i,j-1) == 1 u(i,j) = M(i,j-1) end else if M[i,j-1] == 1 || M[i-1,j] == 1 u(i,j) = M(i,j-1) + M(i-1,j) 不僅程式變的難看,可讀性也降低許多。 因此才想說如果可以用try catch把underflow的值設為false就可以簡化很多了! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.3.115 ※ 編輯: moonskyex 來自: 134.208.3.115 (10/16 15:59)
文章代碼(AID): #1INaRebe (MATLAB)