作者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