2016-11-27 30 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.';