Matlab:使用复数进行乘法 - 正确的运算符是什么?

Matlab : Multiplication using complex numbers - what is the proper operator?

我正在尝试使用复数值数据计算表达式 (z*(z-h*a))^2。当输入为实值时,此表达式工作正常。我应该得到一个标量。但是,使用复值输入我得到了一个向量。复数乘法的正确运算符是什么?

z = -6.1 -6.55i;
a = 7.0000 - 7.0000i;
 h = [-0.1340 - 1.0315i,  -0.2770 - 1.0810i,   0.7774 - 0.5708i];

temp = 0.0;
temp =  (z*(z-h*a)).^2;

对于向量值输入h,该方程将产生一个向量,无论涉及的数字是实数、复数、八元数还是其他(前提是您进行逐元素平方,.^2)。

Troy 是对的 - 你需要平方和:

z = -6.1 - 6.55i;
a = 7.0000 - 7.0000i;
h = [-0.1340 - 1.0315i,  -0.2770 - 1.0810i,   0.7774 - 0.5708i];

temp = z * (z - h*a);
temp = temp * temp.';