关于matlab分段函数问题

0<X<=10 y=0.4(1-cos9x)

10<x<=83 y=10.8-13.41021*[(83-x)/73]^2+5.524581*[(83-x)/73]^13-2.923670*[(83-x)/73]^22+0.409303*[(83-x)/73]^36

83<x<=162 y=10.8-15.59689*[(x-83)/79]^2+14.06900*[(x-83)/79]^10-10.46753*[(x-83)/79]^14+1.595414*[(x-83)/79]^21

162<x<=176 y=0.4{1-cos[6.428572(x-176)]}

该怎么编程?小弟刚接触这
臭蒸蛋,你好,我编译不了……

%此题不是很难,用for和if即可搞定!
x=0:0.01:176; %此题我选[0,176]
y1=zeros(size(x));
y2=zeros(size(x));
y3=zeros(size(x));
y4=zeros(size(x));
N=length(x);
for k=1:N
if x(k)<=10&x(k)>0;
y1(k)=0.4*(1-cos(9*x(k)));
elseif x(k)>10&x(k)<=83
y2(k)=10.8-13.41021*((83-x(k))/73)^2+5.524581*((83-x(k))/73)^13-2.923670*((83-x(k))/73)^22+0.409303*((83-x(k))/73)^36;
elseif x(k)>83&x(k)<=162
y3(k)=10.8-15.59689*((x(k)-83)/79)^2+14.06900*((x(k)-83)/79)^10-10.46753*((x(k)-83)/79)^14+1.595414*((x(k)-83)/79)^21;
elseif x(k)>162&x(k)<=176
y4(k)=0.4*(1-cos(6.428572*(x(k)-176)));
end
end
y=y1+y2+y3+y4;
plot(x,y) ;
此题我编译过,可行!希望能解决你的问题!注意在matlab中只有括号,没有中括号和大括号的!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-04
x=0:0.01:10;
y1=zeros(size(x));
y2=zeros(size(x));
y3=zeros(size(x));
y4=zeros(size(x));
N=length(x);
for k=1:N
if x(k)<=10&x(k)>=0;
y1(k)=0.4(1-cos9x(k));
elseif x(k)>10&x(k)<=83 ;
y2(k)= y1(k)=10.8-13.41021*[(83-x(k)/73]^2+5.524581*[(83-x(k)/73]^13-2.923670*[(83-x(k)/73]^22+0.409303*[(83-x(k)/73]^36;
elseif x(k)>83&x(k)<=162;
y3(k)=10.8-15.59689*[(x(k)-83)/79]^2+14.06900*[(x(k)-83)/79]^10-10.46753*[(x(k)-83)/79]^14+1.595414*[(x(k)-83)/79]^21;
elseif x(k)>162&x(k)<=176;
y4(k)=0.4{1-cos[6.428572(x(k)-176)]};
end
end
y=y1+y2+y3+y4;
plot(x,y) ;
相似回答