查看: 852|回复: 1|关注: 0

[已解决] MATLAB报错:错误使用, plot 矢量长度必须相同。

[复制链接]

新手

11 麦片

财富积分


050


4

主题

5

帖子

0

最佳答案
我想不用sinc函数画抽样函数图像,于是用y=sinx/x代替。函数程序是这样的:
  1. t=-10:0.5:10;
  2. x=sin(t)./ t;
  3. plot(t,x)
  4. title('x(t)=Sa(t)')
  5. xlabel('t')
  6. axis([-10,10,-0.2,1.2])
复制代码

但是这样画出来的函数有断点,t=0处无法显示,如图1.
我咨询同学后,他让我添上一条语句 “x(101)=1;”
于是程序就变成了这样
  1. t=-10:0.5:10;
  2. x=sin(t)./ t;
  3. x(101)=1;
  4. plot(t,x)
  5. title('x(t)=Sa(t)')
  6. xlabel('t')
  7. axis([-10,10,-0.2,1.2])
复制代码
但是这个样子matlab会报错,报错信息是“错误使用, plot 矢量长度必须相同。”
于是我自己调试,突然发现如果改变取样间隔长短的话,报错会消失,程序可以运行。
于是我把“t=-10:0.5:10”改成了“t=-10:0.1:10”,程序变成了这个样子:
  1. t=-10:0.1:10;
  2. x=sin(t)./ t;
  3. x(101)=1;
  4. plot(t,x)
  5. title('x(t)=Sa(t)')
  6. xlabel('t')
  7. axis([-10,10,-0.2,1.2])
复制代码
最终这个程序可以运行,得到图二的结果
所以我的问题是:
1. “x(101)=1” 这条语句是什么意思呢,看起来好像是赋值语句,将0处的纵坐标值设成1,但是101这是做什么呢?
2. 为什么改变自变量取样间隔以后报错会消失,为什么取样是0.5的时候就会出现报错呢?
希望大家能对我进行指教,谢谢大家。
untitled.jpg

图二

图二

论坛优秀回答者

7

主题

885

帖子

116

最佳答案
  • 关注者: 24
发表于 2018-2-20 19:33:07 | 显示全部楼层 |此回复为最佳答案
plot 函数  x与y的维度要一样,至于x(101)指的是x的第101个咯,在这个程序中,正好是0这个位置的数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表