matlab中 for 与 if 的嵌套
t=[0:0.1:5];Y=[];fork=0:0.1:5ifsin(t)==0Y=1,elseifsin(t)==0.5Y=0.25,elseifsin(t)==-0....
t=[0:0.1:5];
Y=[];
for k=0:0.1:5
if sin(t)==0 Y=1,
else if sin(t)==0.5 Y=0.25,
else if sin(t)==-0.5 Y=0.25,
else Y=0,end
end;
plot(t,Y);
end
求帮忙修正一下 展开
Y=[];
for k=0:0.1:5
if sin(t)==0 Y=1,
else if sin(t)==0.5 Y=0.25,
else if sin(t)==-0.5 Y=0.25,
else Y=0,end
end;
plot(t,Y);
end
求帮忙修正一下 展开
3个回答
2016-01-09 · 知道合伙人教育行家
关注
展开全部
1.修改一(按照你的思路):
t = [0:0.1:5];
for k = 1:length(t)
if sin(t(k)) == 0
Y(k) = 1;
elseif sin(t(k)) == 0.5
Y(k) = 0.25;
elseif sin(t(k)) == -0.5
Y(k) = 0.25;
else
Y(k) = 0;
end
end
plot(t,Y,'or','Markersize',6);
2.修改二(执行效率更高):
t = 0:0.1:5;
Y = 0 + (sin(t)==0)*1 + (sin(t)==0.5)*0.25 + (sin(t)==-0.5)*0.25;
plot(t,Y,'or','Markersize',6);
展开全部
t=[0:0.1:5];
for k=1:length(t)
if sin(t(k))==0
Y(k)=1;
elseif sin(t(k))==0.5
Y(k)=0.25;
elseif sin(t(k))==-0.5
Y(k)=0.25;
else
Y(k)=0;
end
end
plot(t,Y);
你也可以不用循环实现
t = 0:0.1:5;
Y = 0 + (sin(t)==0)*1 + (sin(t)==0.5)*0.25 + (sin(t)==-0.5)*0.25;
plot(t,Y);
追问
问下 我想画出 每个T对应的各个Y的点不是t和Y的线 应该怎么画
追答
plot(t,Y,'+');
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
t=[0:0.1:5];
Y=[];
for K=0:0.1:5
if sin(t)==0
Y=1,
else if sin(t)==0.5
Y=0.25,
else if sin(t)==-0.5
Y=0.25,
else Y=0;
end
end;
end
plot(t,Y)
end
少了一个end
Y=[];
for K=0:0.1:5
if sin(t)==0
Y=1,
else if sin(t)==0.5
Y=0.25,
else if sin(t)==-0.5
Y=0.25,
else Y=0;
end
end;
end
plot(t,Y)
end
少了一个end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询