[討論] 寫函數等於一個假設,符合不同假設解部同

看板MATLAB作者 (阿泰斯)時間12年前 (2013/03/19 14:04), 編輯推噓4(4011)
留言15則, 3人參與, 最新討論串1/1
想寫: syms n ci=if mod(n,2)==0 symfun(0,n); else symfun(8/((n^2)*(pi^2)),n); end 邏輯大家應該都看的懂 但是大家一定一看就知道這樣寫不行 而上面那個邏輯其實可以用m檔案寫出來(function) 但是小弟不太想另存一個檔案當函數 請問如何寫出一個函數等於一個假設? 以下寫法已試過,但是行不通: syms n if mod(n,2)==0 ci=symfun(0,n); else ci=symfun(8/((n^2)*(pi^2)),n); end 如果在0跟8/((n^2)*(pi^2))兩邊加個' 也不行 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.1

03/19 14:32, , 1F
anonymous function
03/19 14:32, 1F

03/19 14:33, , 2F
配合eval用
03/19 14:33, 2F

03/19 14:55, , 3F
失敗了..
03/19 14:55, 3F

03/19 15:16, , 4F
symfun(mod(n,2)*8/((n^2)*(pi^2)),n)
03/19 15:16, 4F

03/19 15:16, , 5F
不過n要是整數。
03/19 15:16, 5F

03/19 15:22, , 6F
mod(3,2)=1.5,解會不會變1.5倍?跟我要的解部依樣@@
03/19 15:22, 6F

03/19 15:29, , 7F
抱歉我搞錯了
03/19 15:29, 7F

03/19 15:30, , 8F
但是,有時候我想寫的是mod(n,2)==0時解不等於0...
03/19 15:30, 8F

03/19 16:28, , 9F
不太懂你的意思,你不是寫if mod(n,2)==0,ci=symfun(0,n) ?
03/19 16:28, 9F

03/19 16:48, , 10F
抱歉我沒表達清楚,我意思是
03/19 16:48, 10F

03/19 16:49, , 11F
您寫的程式只能用在這題,但是有時候我想寫mod(n,2)==0
03/19 16:49, 11F

03/19 16:50, , 12F
時,ci的值不等於0...
03/19 16:50, 12F

03/19 17:12, , 13F
你想要什麼就寫出來吧
03/19 17:12, 13F

03/19 17:22, , 14F
if mod(n,2)==0,ci=symfun(n^2+1,n)
03/19 17:22, 14F

03/20 05:23, , 15F
symfun(mod(n,2)*8/((n^2)*(pi^2))+(1-mod(n,2))*(n^2+1),n)
03/20 05:23, 15F
文章代碼(AID): #1HH__GGR (MATLAB)