如何在Matlab中选择复数向量的一部分

时间:2018-03-27 11:03:11

标签: arrays matlab vector

这可能是一个微不足道的问题,但我想选择一个复杂数组的一部分,以便在Matlab中绘制它。我的MWE是

n = 100;

t = linspace(-1,1,n);
x = rand(n,1)+1j*rand(n,1);

plot(t(45):t(55),real(x(45):x(55)),'.--')
plot(t(45):t(55),imag(x(45):x(55)),'.--')

我收到错误

Error using plot
Vectors must be the same length.

因为real(x(45):x(55))位返回一个空矩阵:Empty matrix: 1-by-0。在没有为真实和虚构x创建新向量的情况下解决此问题的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

这只是一个简单的错误。您正在执行t(45):t(55),但trand生成,因此t(45)将是0.1t(55),{{ 1}},因此0.2仅为0.1:0.2。看到问题了?

然后,当您为0.1执行此操作时,范围不同,从而导致错误。

您需要x来指定从t(45:55)45的向量位置。

这就是你想要的:

55