matlab if语句问题
t2=0:0.1:60;n=t2-C(1);ifn<=0m=0;t2=100;y2=10*m*sin(pi*(t2-C(1)))./t2;holdonelsem=1;y2...
t2=0:0.1:60;
n=t2-C(1);
if n<=0
m=0;
t2=100;
y2=10*m*sin(pi*(t2-C(1)))./t2;
hold on
else
m=1;
y2=10*m*sin(pi*(t2-C(1)))./t2;
end
plot(t2,y2)
这里面C(1是一个常数)
我想实现的是函数的分段输出 当t2<=C(1)时 输出为0 当大于C(1)时 输出正弦曲线
为什么0段总是被覆盖 求解决 展开
n=t2-C(1);
if n<=0
m=0;
t2=100;
y2=10*m*sin(pi*(t2-C(1)))./t2;
hold on
else
m=1;
y2=10*m*sin(pi*(t2-C(1)))./t2;
end
plot(t2,y2)
这里面C(1是一个常数)
我想实现的是函数的分段输出 当t2<=C(1)时 输出为0 当大于C(1)时 输出正弦曲线
为什么0段总是被覆盖 求解决 展开
3个回答
展开全部
把下面这段粘贴到Matlab中,回车,有问题再问我
C(1)=20;
k=1;
x=0:0.1:60;
y=0:0.1:60;
for t2=0:0.1:60
n=t2-C(1);
if n<=0
y(k)=0;
else
m=1;
y(k)=10*m*sin(pi*(t2-C(1)))./t2;
end
k=k+1;
end
plot(x,y);
C(1)=20;
k=1;
x=0:0.1:60;
y=0:0.1:60;
for t2=0:0.1:60
n=t2-C(1);
if n<=0
y(k)=0;
else
m=1;
y(k)=10*m*sin(pi*(t2-C(1)))./t2;
end
k=k+1;
end
plot(x,y);
追问
你这个还要加循环,我的大程序里有好几个循环 所以我就不想用循环了,我觉得一个简单的if判断完全可以实现,但是 我觉得我写的应该没问题 但是就是有错 还不知道错误在哪---接着我知道到貌似if判断不能对数组进行整体的判断,必须是一个一个进行判断 对不对 请问
追答
你可能对matlab中向量的含义还不太清楚,建议参照相关书籍。另外,程序中循环过多的情况一般是事先没有对整体程序做一个清晰的规划造成的,与C不同,matlab中循环过多的确会造成运行效率下降,如果对运行速度有要求的话,还是使用C或C++编写为好
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好把代码给全了,你是哪个0段被覆盖了?是m=0 还是n = 0?
试试把n<=0 分成 n==0, n<0
试试把n<=0 分成 n==0, n<0
追问
还要怎么全呢 我贴上去的已经可以运行了 烦劳再帮看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用for循环一个个进行比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询