作者hsuanboy (壓力)
看板MATLAB
標題[討論] if的用法
時間Tue May 7 16:15:39 2013
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
1F:→ jatj:if th(i+1)<0 \n error(fail); \n else \n thetai = th(i+1); 05/07 16:21
2F:→ jatj:\n end \n end \n是換行 不過你這樣會有錯 因為你把 05/07 16:21
3F:→ jatj:th(i+1) assign 給thetai, 但是兩個type不一致 會有錯誤 05/07 16:22
4F:→ jatj:fail 也沒有定義是什麼 建議你多檢查你的程式碼 05/07 16:22
5F:→ jatj:基本上 th(i+1)=double(solve(integralf(th(i),theatai)-area 05/07 16:23
6F:→ jatj:這行就出錯了 因為你會把很多個元素指定給th(i+1) 05/07 16:23
7F:→ jatj:就我解答幾天經驗來看 大多數人既不稍微感謝解答者 也不 05/07 23:34
8F:→ jatj:回報是否方法有用 感覺有些沮喪 05/07 23:34
9F:推 sunev:有的還會自刪喔~ 05/08 01:29
10F:→ hsuanboy:在這行 th(i+1)=double(solve(integralf(th(i),theatai)- 05/08 03:38
11F:→ hsuanboy:我是每次做完這一行計算會去判斷th(i+1)的正負號 05/08 03:40
12F:→ hsuanboy:如果是正值 就會回到上面的程是在做計算 在得知th(i+1) 05/08 03:42
13F:→ hsuanboy:會做10次 最後得到10個theatai的值 05/08 03:43
14F:→ jatj:double(solve(integralf(th(i),theatai)-area*1/10)) 05/08 03:44
15F:→ jatj:會得出不只一個值建議檢查 05/08 03:44
16F:→ hsuanboy:在執行程式時 這行好像沒有錯誤的樣子 是錯在if這行 05/08 03:45
17F:→ hsuanboy:恩恩 執行時會有三個值 所以才寫if來判別我要的值 05/08 03:46
18F:→ hsuanboy:這行我會再檢查一次的 if那段我在從新寫寫看 05/08 03:49
19F:→ hsuanboy:真的很謝謝你喔 05/08 03:49
20F:→ jatj:no problem 05/08 05:04