2016-11-27 2 views
0

Ich versuche, den Ausdruck (z*(z-h*a))^2 mit komplexen Daten zu berechnen. Dieser Ausdruck funktioniert einwandfrei, wenn die Eingaben reell bewertet werden. Ich sollte einen Skalar bekommen. Aber unter Verwendung von komplexwertigen Eingaben erhalte ich einen Vektor. Was ist der richtige Operator für die Multiplikation komplexer Zahlen?Matlab: Multiplikation mit komplexen Zahlen - was ist der richtige Operator?

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

im Vergleich zu komplexen Real ist nicht das Problem. Versuchen Sie eine 2-Norm zu berechnen? – TroyHaskin

+0

Beim Googeln sieht es so aus, als ob die Varianz die 'sum()' der Quadrate ist. Funktioniert es? – TroyHaskin

Antwort

2

Für Vektor-wertige Eingang h, dass Gleichung in einem Vektor, unabhängig davon führen wird, ob die beteiligten Zahlen sind real, complex, octonion, oder was nicht (vorausgesetzt, Sie elementweise Quadrierung tun, .^2).

Troy ist richtig - man muss die Summe der Quadrate:

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.'; 
Verwandte Themen