出现这个错误??? Error using ==> plot Vectors must be the same lengths.
时间: 2024-02-20 14:56:15 浏览: 171
这个错误提示是因为在绘制图像时,X 轴和 Y 轴的向量长度不一致导致的。具体来说,可能是因为 `xt_t` 的向量长度不同于 `t3` 的向量长度导致的。你可以尝试将 `xt_t` 的长度截取为和 `t3` 相同的长度。修改后的代码如下:
```matlab
clear all;
close all;
dt = 0.01;
t = 0:dt:10;
xt = 0.1*sin(2*pi*t) + 0.5*cos(4*pi*t);
[f, xf] = FFT_SHIFT(t,xt); %号抽样信号,抽样速率为4Hz
fs = 4;
sdt = 1/fs;
t1 = 0:sdt:10;
st = 0.1*sin(2*pi*t1) + 0.5*cos(4*pi*t1);
[f1, sf] = FFT_SHIFT(t1,st); %8恢复原始信号
t2 = -50:dt:50;
gt = sinc(fs*t2);
stt = resample(st,1,sdt/dt);
xt_t = conv(stt,gt);
xt_t = xt_t(1:length(t3)); % 截取和 t3 长度相同的部分
figure(1)
subplot(3,1,1);
plot(t,xt);
title('原始信号');
subplot(3,1,2);
stem(t1,st);
title('抽样信号');
subplot(3,1,3);
t3 = -50:dt:60+sdt-dt;
plot(t3,xt_t);
title('抽样信号恢复');
axis([0 10 -1 1])
```
这个修改后的代码中增加了一行代码 `xt_t = xt_t(1:length(t3));`,将 `xt_t` 的长度截取为和 `t3` 相同的长度。这样就可以避免上述错误提示了。
阅读全文