如何在MATLAB中操作矩阵的虚部

  • 本文关键字:虚部 操作 MATLAB matlab
  • 更新时间 :
  • 英文 :


外观:

i=[1+1i 2+2i];

我想这样做:

imag(i)=10;

期望结果:

ans = [1+10i 2+10i]


还有这个呢:

m=[1+1i 2+2i 3+3i 4+4i 5+5i];

我想要:

imag(m(real(m)>2)) = 10;

期望结果:

ans = [ 1+1i 2+2i 3+10i 4+10i 5+10i ]

不幸的是!这些期望的结果在MATLAB中没有发生。

请注意,当您使用复数时,i是错误的变量名,因此我将用vec 替换它

vec=[1+1i 2+2i];
vec = complex(real(vec), 2);

编辑

带逻辑索引:

idn = real(vec)>2;
vec(idn) = complex(real(vec(idn)), 10);

在第一种情况下,您可以执行以下操作:

v = [1+1i 2+2i];
v = real(v) + 10i;

在第二种情况下,您可以执行以下操作:

v = [1+1i 2+2i 3+3i 4+4i 5+5i];
v(real(v)>2) = real(v(real(v)>2)) + 10i;

据我所知,在没有函数调用实数和/或虚数的情况下,不可能在Matlab中引用复数的实数和虚数部分,就好像它们是单独的变量一样。

最新更新