matlab切换复杂和实际部分的一些

por*_*ast 0 matlab complex-numbers

我有一个复数列列表(大约200k长).我想切换所有实部和虚部.我很确定我可以做一次乘法来完成这个,但我找不到在线的公式.这是我到目前为止找到的最好的方法,但它对我的需求来说太慢了(它需要实时运行):

>> vec = [complex(1,11);complex(2,22);complex(3,33)]

vec =

   1.0000 +11.0000i
   2.0000 +22.0000i
   3.0000 +33.0000i

>> complex(imag(vec),real(vec))

ans =

  11.0000 + 1.0000i
  22.0000 + 2.0000i
  33.0000 + 3.0000i
Run Code Online (Sandbox Code Playgroud)

Tro*_*kin 6

我不确定是否有内置操作,但我确实通过不使用complex函数看到速度增加:

>> imag(vec) + real(vec)*1i
ans =
  11.0000 + 1.0000i
  22.0000 + 2.0000i
  33.0000 + 3.0000i
Run Code Online (Sandbox Code Playgroud)

而且这样

>> conj(vec)*1i
ans =
  11.0000 + 1.0000i
  22.0000 + 2.0000i
  33.0000 + 3.0000i
Run Code Online (Sandbox Code Playgroud)

我认为看起来更清洁.