看板 MATLAB 關於我們 聯絡資訊
想寫: 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
H45:anonymous function 03/19 14:32
H45:配合eval用 03/19 14:33
H45:失敗了.. 03/19 14:55
sunev:symfun(mod(n,2)*8/((n^2)*(pi^2)),n) 03/19 15:16
sunev:不過n要是整數。 03/19 15:16
candy88257:mod(3,2)=1.5,解會不會變1.5倍?跟我要的解部依樣@@ 03/19 15:22
candy88257:抱歉我搞錯了 03/19 15:29
candy88257:但是,有時候我想寫的是mod(n,2)==0時解不等於0... 03/19 15:30
sunev:不太懂你的意思,你不是寫if mod(n,2)==0,ci=symfun(0,n) ? 03/19 16:28
candy88257:抱歉我沒表達清楚,我意思是 03/19 16:48
candy88257:您寫的程式只能用在這題,但是有時候我想寫mod(n,2)==0 03/19 16:49
candy88257:時,ci的值不等於0... 03/19 16:50
sunev:你想要什麼就寫出來吧 03/19 17:12
candy88257:if mod(n,2)==0,ci=symfun(n^2+1,n) 03/19 17:22
sunev:symfun(mod(n,2)*8/((n^2)*(pi^2))+(1-mod(n,2))*(n^2+1),n) 03/20 05:23