【问题标题】:How to select part of complex vector in Matlab如何在 Matlab 中选择复杂向量的一部分
【发布时间】:2018-03-27 11:03:11
【问题描述】:

这可能是一个微不足道的问题,但我想选择一个复杂数组的一部分以便在 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 创建新向量的情况下解决此问题的最简单方法是什么?

【问题讨论】:

  • 请花点时间学习 MATLAB 教程,您将从中受益匪浅。这是一个误解基本索引的问题。

标签: arrays matlab vector


【解决方案1】:

这只是一个简单的错误。你在做t(45):t(55),但t 是由rand 生成的,所以t(45) 将是,比如说,0.1,而t(55)0.2,所以0.1:0.2 只是0.1。看到问题了吗?

然后,当您为 x 执行此操作时,范围不同,因此出现错误。

你想要的是t(45:55),指定从4555的向量位置。

这就是你想要的:

n = 100;

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多