在Matlab中,这似乎更像是一个算法问题,但有人可以解释Sigma_0=diag(s)*C*diag(s)
的逻辑吗?
s=.07*ones(N,1);
Sigma_0=diag(s)*C*diag(s);
谢谢
答案 0 :(得分:3)
它将所有列缩放0.07,然后将行缩放0.07。
然而,这与:
完全相同 Sigma_0=C * 0.07^2;
如果s
不是标量乘以1的向量,那么这将按行数和列数进行缩放。例如,如果C
为4x4且s=[1 2 3 4]
,那么diag(s)*C
会将第一行缩放1,第二行缩小为2等。同样,C*diag(s)
会缩放第一行列乘1,第二列乘2等。