作业帮 > 综合 > 作业

matlab分段函数调用出错

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/25 14:16:03
matlab分段函数调用出错
函数是这样的:
function f=am(x)
if x>=0&x=0.01&x0.035
f=-180/0.035*x+440;
end
调用语句:
for k=1:m
xx(ii+1)=xx(ii+1)+am(a(k+1))*a(k+1)*cos(2*pi*k*ii/N)+am(b(k+1))*b(k+1)*sin(2*pi*k*ii/N);
end
其中的变量都是定义好的,运行时出现了这样的错误:
Error in ==> am at 2
if x>=0&x
matlab分段函数调用出错
第一段程序(分段函数),没有问题已通过测试,不过建议您再在末尾加一个and,将“&”替换成“&&”,不过不修改也能顺利运行,
至于后半段,我默认k=1,ii=2;N=10;调用命令为: xx=am(a(k+1))*a(k+1)*cos(2*pi*k*ii/N)+am(b(k+1))*b(k+1)*sin(2*pi*k*ii/N);
给出如下信息:
Warning: Polynomial is badly conditioned. Add points with distinct X
values, reduce the degree of the polynomial, or try centering
and scaling as described in HELP POLYFIT.
> In polyfit at 80
In am at 19
>> xx
xx =
-3.8062e+008
这说明这段程序本身没有问题,我给的数据之所以会发出警告,是因为我的ii和N给定不合理,使得用该拟合函数求得的结果不够精确.
建议楼主看看跳出的时候你的k等于几,看起是不是第一次调用分段函数就出错,如果第一次就出错,可能你的matlab除了问题,重启一下估计就行了.如果不是第一次,就是你这个程序本身的逻辑出错,出现了无意义的结果,建议检查求解范围.