matlab分段函数用switch编程(不要if语句的) 50
cleara=input('inputa')b=input('inputb')c=input('inputc')x=0.5:0.01:5.5;i=1:length(x);...
clear
a=input('input a')
b=input('input b')
c=input('input c')
x=0.5:0.01:5.5;
i=1:length(x);
t=fix(x(i)-0.5);
t=t(:)
switch(t)
case 0
y(i)=a*x(i)*x(i)+b*x(i)+c;
case 1
y(i)=a*sin(b)^c+x(i);
case 2
y(i)=a*sin(b)^c+x(i);
case 3
y(i)=log(abs(b+c/x(i)));
case 4
y(i)=log(abs(b+c/x(i)));
end 展开
a=input('input a')
b=input('input b')
c=input('input c')
x=0.5:0.01:5.5;
i=1:length(x);
t=fix(x(i)-0.5);
t=t(:)
switch(t)
case 0
y(i)=a*x(i)*x(i)+b*x(i)+c;
case 1
y(i)=a*sin(b)^c+x(i);
case 2
y(i)=a*sin(b)^c+x(i);
case 3
y(i)=log(abs(b+c/x(i)));
case 4
y(i)=log(abs(b+c/x(i)));
end 展开
2个回答
展开全部
clear
a=input('input a');
b=input('input b');
c=input('input c');
x=0.5:0.01:5.5;
for i=1:length(x);%%用循环求对应的x(i)取整和对应的y(i)
t=fix(x(i)-0.5);
switch(t) %%switch开关来选择y(i)表达式
case 0
y(i)=a*x(i)*x(i)+b*x(i)+c;
case 1
y(i)=a*sin(b)^c+x(i);
case 2
y(i)=a*sin(b)^c+x(i);
case 3
y(i)=log(abs(b+c/x(i)));
case 4
y(i)=log(abs(b+c/x(i)));
case 5
y(i)=log(abs(b+c/x(i))); %由于t=5存在,这个开关要留着,我随便给的。
end
end
plot(x,y);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用if,也用不到switch请参阅下面代码:
clear
a=input('input a')
b=input('input b')
c=input('input c')
x=0.5:0.01:5.5;
i=1:length(x);
t=fix(x(i)-0.5);
t=t(:);
y=(a*x.*x+b*x+c).*(t==0)'+ ...
(a*sin(b)^c+x).*(t==1)'+ ...
(a*sin(b)^c+x).*(t==2)'+ ...
(log(abs(b+c./x))).*(t==3)'+ ...
(log(abs(b+c./x))).*(t==4)'
clear
a=input('input a')
b=input('input b')
c=input('input c')
x=0.5:0.01:5.5;
i=1:length(x);
t=fix(x(i)-0.5);
t=t(:);
y=(a*x.*x+b*x+c).*(t==0)'+ ...
(a*sin(b)^c+x).*(t==1)'+ ...
(a*sin(b)^c+x).*(t==2)'+ ...
(log(abs(b+c./x))).*(t==3)'+ ...
(log(abs(b+c./x))).*(t==4)'
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询