作业帮 > 综合 > 作业

matlab移位函数的应用

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/17 02:39:51
matlab移位函数的应用
x1(n)=【2 4 6 8 10 12】,x(0)=6,需要实现x4(n)=x1(3-n),我写了如下程序:
n=-2:3;
x1=[2 4 6 8 10 12];
x2=fliplr(x1);
n=-fliplr(n);
stem(n,x2);
axis([-6 6 0 12]);
可以实现x2(n)=x1(-n),但是若试图用x=[zeros(1,3) x2];实现右移3位,即程序为
n=-2:3;
x1=[2 4 6 8 10 12];
x2=fliplr(x1);
n=-fliplr(n);
x=[zeros(1,2) x2];
stem(n,x);
axis([-6 6 0 12]);
则会出现如下错误
Error using ==> stem at 40
X must be same length as Y.
Error in ==> ex1_2_a_4 at 6
我弄不太明白,
stem(n,x);
你向量n的长度和向量x的长度不一样啊,
x=[zeros(1,2) x2];等于你在原来x2元素前面添加了两个0
n还是原来的长度,
stem(n,x)肯定不能运行出来啊
再问: 那n的长度要用什么改变呀?初次接触,求指导啊!
再答: 额 那我得知道你那个实现右移3位是做什么用的,我不太明白你在原来元素前面添加两个0是做什么 要是你只是想长度一样,直接在n的前面添加两个值就成了呗
再问: 额 应该是 x=[zeros(1,3) x2]; 我打错了的,右移3位,在前边加三个0,题目就是这样,额...如果你愿意的话,我们QQ交流可以么?1012328322,O(∩_∩)O谢谢!
再问: 额 应该是x=[zeros(1,3) x2];我打错了的,右移3位,即在前面加3个0,直接改变n的值不是会和前边定义冲突么?额....如果你愿意的话,我们QQ交流吧!1012328322,O(∩_∩)O谢谢!