2016-11-27 50 views
0

我正在尝试使用复数值计算表达式(z*(z-h*a))^2。这个表达式在输入实际值时工作正常。我应该得到一个标量。但是,使用复杂的有价值的输入,我得到一个向量。复数乘法的适当运算符是什么?Matlab:乘法使用复数 - 什么是适当的算子?

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; 
+0

真实与复杂不是问题。你想要计算一个2-范数吗? – TroyHaskin

+0

从谷歌搜索,它看起来像方差是正方形的总和()。那样有用吗? – TroyHaskin

回答

2

对于矢量值输入h,该公式将导致矢量,不管涉及到的数字是否是真实的,复杂的,八元,或什么不是(前提是你做逐元素的平方,.^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 = z * (z - h*a); 
temp = temp * temp.';