matlab中简单分段序列的问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:10:22
n=0:1:16;
if n<4
y=n+2;
else if n<8
y=8-n;
else
y=0;
end
stem(n,y);
以上程序用来产生一个简单的分段序列,可是老是报错说:
??? Error using ==> run
Error: File: D:\matlab\work\test.m Line: 9 Column: 15
This statement is incomplete.
请高手指点
三楼正解,能附上注释更好

你把else if 写成elseif,
另外,stem(n,y)的个数要匹配,就是说你的n有17个,y却只有1个。你试试看用for语句一个一个进行stem

有一个更简单且运行速度快的方法如下:
n=0:1:16;
y=(n<4)*(n+2)+(n<8&n>=4)*(8-n)
stem(n,y);
以上代码与你所编写的代码是等价的。

我调试了一下,你再看一下
n=0:1:16;
y=zeros(1,length(n));
for i=1:length(n)
if n(i)<4
y(i)=n(i)+2;
elseif n(i)<8
y(i)=8-n(i);
else
y(i)=0;
end
end
stem(n,y);

你加我

晚上抽空我给你讲讲