[問題] if如何返回自己?

看板Mathematica作者 (阿泰斯)時間11年前 (2013/05/19 14:40), 編輯推噓2(209)
留言11則, 3人參與, 最新討論串1/1
如: s[i_,j_]=If[i>2,0,s[i,j]] s[1,j] 會出現$IterationLimit::itlim: Iteration limit of 4096 exceeded.錯誤 請問If如何返回自己? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.157

05/19 15:40, , 1F
你是想要保持 s[i,j] 的樣子嗎?
05/19 15:40, 1F

05/19 15:41, , 2F
是的話不要用 If 直接定 s[i_,j_]:=0/;i>2
05/19 15:41, 2F

05/19 17:07, , 3F
感謝! 又學到新的寫法,再請問一下,如果是多重If呢?
05/19 17:07, 3F

05/19 17:08, , 4F
就是If裡面有有If,要怎麼感成您寫得那樣?
05/19 17:08, 4F

05/19 17:45, , 5F
/;是條件 就是當後面條件成立時才有前面的
05/19 17:45, 5F

05/19 17:46, , 6F
所以就直接在/;後面寫上你所有的條件 (用 && 連起來) 就行了
05/19 17:46, 6F

05/19 17:47, , 7F
之所以這樣寫可以達成原來的目的也就是當沒有條件成立時
05/19 17:47, 7F

05/19 17:47, , 8F
因為沒有定義所以才會保持原樣
05/19 17:47, 8F

05/19 18:52, , 9F
感謝!!! 很實用的寫法!
05/19 18:52, 9F

05/19 21:04, , 10F
直接定義,例如s[i_,j_]:=a/;0<i+j≦1 (換行
05/19 21:04, 10F

05/19 21:05, , 11F
s[i_,j_]:=b/;1<i+j≦2
05/19 21:05, 11F
文章代碼(AID): #1Hc7FthL (Mathematica)
文章代碼(AID): #1Hc7FthL (Mathematica)