警告:"对"D"及其转置的乘法进行Parethesize,以确保结果是Hermetian."

hkB*_*sai 5 matlab warnings matrix multiplication parentheses

在此输入图像描述

正如您在上面的屏幕截图中看到的,我在Matlab m文件代码中有以下表达式:
K = P * D * D' * P;
其中,P是nxn矩阵,D是nx1列向量(n = 4,如果重要的话).

为什么我收到此警告消息?
如果我在那里使用或不使用括号会有什么变化?

Oli*_*rth 7

浮点运算不是关联的.所以一般来说,a * (b * c)不一定会给出相同的结果(a * b) * c.

你写的声明等同于((P * D) * D') * P,所以编译器警告你,如果你依赖于Hermitian对称性D * D',你应该强制它计算出来.