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段总是被覆盖 求解决
展开
 我来答
mountainsheep
推荐于2016-05-03 · TA获得超过404个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:192万
展开全部
把下面这段粘贴到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);
追问
你这个还要加循环,我的大程序里有好几个循环 所以我就不想用循环了,我觉得一个简单的if判断完全可以实现,但是 我觉得我写的应该没问题  但是就是有错 还不知道错误在哪---接着我知道到貌似if判断不能对数组进行整体的判断,必须是一个一个进行判断 对不对 请问
追答
你可能对matlab中向量的含义还不太清楚,建议参照相关书籍。另外,程序中循环过多的情况一般是事先没有对整体程序做一个清晰的规划造成的,与C不同,matlab中循环过多的确会造成运行效率下降,如果对运行速度有要求的话,还是使用C或C++编写为好
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无双谋士
2012-01-25 · 超过27用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:56.2万
展开全部
最好把代码给全了,你是哪个0段被覆盖了?是m=0 还是n = 0?
试试把n<=0 分成 n==0, n<0
追问
还要怎么全呢  我贴上去的已经可以运行了  烦劳再帮看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钺联昱M
2012-01-25 · TA获得超过706个赞
知道小有建树答主
回答量:1789
采纳率:33%
帮助的人:904万
展开全部
用for循环一个个进行比较
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式