看板 MATLAB 關於我們 聯絡資訊
clear all format long syms x a b theatai th f=-0.000140190522497*x^2+0.000052673174615*x+1.081418844183431; area=int(f,0,pi/2); integralf=@(a,b) int(f,x,a,b); th=zeros(1,10); for i=1:9 th(i+1)=double(solve(integralf(th(i),theatai)-area*1/10)); if th(i+1)<0; error(fail); else theatai=th(i+1); end 這是我的程式 主要是計算出積分的上限值 而值是傳给th(i+1) 在if上方的程式已經執行過了 是沒有錯誤的 但在最後的if程式有錯誤 最後想要取th(i+1)的為正值 負值不要 但是我不知道if那段哪裡有錯 希望有好心的大大能幫我解答一下 謝謝!~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.126.11.120
jatj:if th(i+1)<0 \n error(fail); \n else \n thetai = th(i+1); 05/07 16:21
jatj:\n end \n end \n是換行 不過你這樣會有錯 因為你把 05/07 16:21
jatj:th(i+1) assign 給thetai, 但是兩個type不一致 會有錯誤 05/07 16:22
jatj:fail 也沒有定義是什麼 建議你多檢查你的程式碼 05/07 16:22
jatj:基本上 th(i+1)=double(solve(integralf(th(i),theatai)-area 05/07 16:23
jatj:這行就出錯了 因為你會把很多個元素指定給th(i+1) 05/07 16:23
jatj:就我解答幾天經驗來看 大多數人既不稍微感謝解答者 也不 05/07 23:34
jatj:回報是否方法有用 感覺有些沮喪 05/07 23:34
sunev:有的還會自刪喔~ 05/08 01:29
hsuanboy:在這行 th(i+1)=double(solve(integralf(th(i),theatai)- 05/08 03:38
hsuanboy:我是每次做完這一行計算會去判斷th(i+1)的正負號 05/08 03:40
hsuanboy:如果是正值 就會回到上面的程是在做計算 在得知th(i+1) 05/08 03:42
hsuanboy:會做10次 最後得到10個theatai的值 05/08 03:43
jatj:double(solve(integralf(th(i),theatai)-area*1/10)) 05/08 03:44
jatj:會得出不只一個值建議檢查 05/08 03:44
hsuanboy:在執行程式時 這行好像沒有錯誤的樣子 是錯在if這行 05/08 03:45
hsuanboy:恩恩 執行時會有三個值 所以才寫if來判別我要的值 05/08 03:46
hsuanboy:這行我會再檢查一次的 if那段我在從新寫寫看 05/08 03:49
hsuanboy:真的很謝謝你喔 05/08 03:49
jatj:no problem 05/08 05:04