【发布时间】:2012-07-14 21:50:47
【问题描述】:
我想在 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
【问题讨论】:
-
你必须把你现有的代码放进去以便分析。
-
所以以上是你应该得到的;你实际上得到了什么?
-
@OliCharlesworth:刚刚更新了问题。
-
进行此类计算的最简单方法是使用 for 循环,虽然速度较慢,但始终很容易实现。这是你想让我教你怎么做的事情吗?还是for循环不可接受?
标签: matlab matrix correlation