[討論] if的用法

看板MATLAB作者 (壓力)時間12年前 (2013/05/07 16:15), 編輯推噓1(1019)
留言20則, 3人參與, 最新討論串1/1
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

05/07 16:21, , 1F
if th(i+1)<0 \n error(fail); \n else \n thetai = th(i+1);
05/07 16:21, 1F

05/07 16:21, , 2F
\n end \n end \n是換行 不過你這樣會有錯 因為你把
05/07 16:21, 2F

05/07 16:22, , 3F
th(i+1) assign 給thetai, 但是兩個type不一致 會有錯誤
05/07 16:22, 3F

05/07 16:22, , 4F
fail 也沒有定義是什麼 建議你多檢查你的程式碼
05/07 16:22, 4F

05/07 16:23, , 5F
基本上 th(i+1)=double(solve(integralf(th(i),theatai)-area
05/07 16:23, 5F

05/07 16:23, , 6F
這行就出錯了 因為你會把很多個元素指定給th(i+1)
05/07 16:23, 6F

05/07 23:34, , 7F
就我解答幾天經驗來看 大多數人既不稍微感謝解答者 也不
05/07 23:34, 7F

05/07 23:34, , 8F
回報是否方法有用 感覺有些沮喪
05/07 23:34, 8F

05/08 01:29, , 9F
有的還會自刪喔~
05/08 01:29, 9F

05/08 03:38, , 10F
在這行 th(i+1)=double(solve(integralf(th(i),theatai)-
05/08 03:38, 10F

05/08 03:40, , 11F
我是每次做完這一行計算會去判斷th(i+1)的正負號
05/08 03:40, 11F

05/08 03:42, , 12F
如果是正值 就會回到上面的程是在做計算 在得知th(i+1)
05/08 03:42, 12F

05/08 03:43, , 13F
會做10次 最後得到10個theatai的值
05/08 03:43, 13F

05/08 03:44, , 14F
double(solve(integralf(th(i),theatai)-area*1/10))
05/08 03:44, 14F

05/08 03:44, , 15F
會得出不只一個值建議檢查
05/08 03:44, 15F

05/08 03:45, , 16F
在執行程式時 這行好像沒有錯誤的樣子 是錯在if這行
05/08 03:45, 16F

05/08 03:46, , 17F
恩恩 執行時會有三個值 所以才寫if來判別我要的值
05/08 03:46, 17F

05/08 03:49, , 18F
這行我會再檢查一次的 if那段我在從新寫寫看
05/08 03:49, 18F

05/08 03:49, , 19F
真的很謝謝你喔
05/08 03:49, 19F

05/08 05:04, , 20F
no problem
05/08 05:04, 20F
文章代碼(AID): #1HYBWkrv (MATLAB)