相关矩阵在MATLAB中的实现

相关矩阵在MATLAB中的实现,matlab,matrix,correlation,Matlab,Matrix,Correlation,我想在MATLAB中实现以下公式,其中u_I^(k)表示I,k元素。然而,我得到的结果与我手工计算的结果不同。。。我相信我的MATLAB代码有问题。例如, 我应该得到: L_ii = 0.1022 0 0 0 0.1657 0 0 0 2.7321 U_ij = 0.7514 0.3104 0.5823 -0.6513 0.4901

我想在MATLAB中实现以下公式,其中u_I^(k)表示I,k元素。然而,我得到的结果与我手工计算的结果不同。。。我相信我的MATLAB代码有问题。例如, 我应该得到:

L_ii =

    0.1022         0         0
         0    0.1657         0
         0         0    2.7321

U_ij =

    0.7514    0.3104    0.5823
   -0.6513    0.4901    0.5793
   -0.1055   -0.8145    0.5704

1,1=1-(0.1022*(+0.7514)^2+0.1657*(+0.3104)^2+2.7321*(+0.5823)^2)=-0.000049
2,2=1-(0.1022*(-0.6513)^2+0.1657*(+0.4901)^2+2.7321*(+0.5793)^2)=-0.000015
3,3=1-(0.1022*(-0.1055)^2+0.1657*(-0.8145)^2+2.7321*(+0.5704)^2)=+0.000030
有什么想法吗???请先帮我修好Epsilon(它可能不需要在Rho上移动。让我们先修好Epsilon…)

编辑:以下是示例代码:

E_squared_ii = ONES_j - diag(L_ii)' * (U_ij'.^ 2)
这是我目前得到的错误结果:

E_squared_ii =

   1.0e-15 *

   0.444089209850063   0.333066907387547  -0.222044604925031

如果我使用您的值和代码,我会得到预期的结果:

>> L_ii

L_ii =

    0.1022         0         0
         0    0.1657         0
         0         0    2.7321

>> U_ij

U_ij =

    0.7514    0.3104    0.5823
   -0.6513    0.4901    0.5793
   -0.1055   -0.8145    0.5704

>> ONES_j

ONES_j =

     1     1     1

>> E_squared_ii = ONES_j - diag(L_ii)' * (U_ij'.^ 2)

E_squared_ii =

   1.0e-04 *

   -0.4935   -0.1451    0.2985

这可能意味着某些东西不是您认为的值…

您必须将现有代码放入分析中;你到底得到了什么?@OliCharlesworth:刚刚更新了这个问题。进行这类计算的最简单方法是使用for循环,虽然速度较慢,但总是很容易实现。你想让我教你怎么做吗?或者for循环是不可接受的?你是对的,只是重新启动了MATLAB,现在它工作了。。。英雄联盟