【问题标题】:Matlab : Multiplication using complex numbers - what is the proper operator?Matlab:使用复数进行乘法 - 什么是正确的运算符?
【发布时间】:2016-11-28 06:28:27
【问题描述】:

我正在尝试使用复值数据计算表达式(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;

【问题讨论】:

  • 真实与复杂不是问题。您是否尝试计算 2 范数?
  • 从谷歌搜索,看起来方差是正方形的sum()。这行得通吗?

标签: matlab complex-numbers


【解决方案1】:

对于向量值输入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.';

【讨论】:

    猜你喜欢
    • 2013-07-28
    • 2016-12-16
    • 2011-01-07
    • 1970-01-01
    • 2012-02-02
    • 2021-10-28
    • 1970-01-01
    相关资源
    最近更新 更多