这可能是一个微不足道的问题,但我想选择一个复杂数组的一部分,以便在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
创建新向量的情况下解决此问题的最简单方法是什么?
答案 0 :(得分:1)
这只是一个简单的错误。您正在执行t(45):t(55)
,但t
由rand
生成,因此t(45)
将是0.1
和t(55)
,{{ 1}},因此0.2
仅为0.1:0.2
。看到问题了?
然后,当您为0.1
执行此操作时,范围不同,从而导致错误。
您需要x
来指定从t(45:55)
到45
的向量位置。
这就是你想要的:
55