在MATLAB中计算标准化的返回值

时间:2012-06-06 02:06:08

标签: matlab

我试图理解MATLAB是如何工作的,但我最终还在努力实现最基本的概念。让我举三个例子,问你如何在MATLAB中实现它们(参见附图)。另外,假设下面的数据表成立:

1.2; 3.4; 4.6
1.3; 3.7; 4.6
1.0; 3.9; 5.1
1.1; 3.7; 4.6
1.2; 3.8; 4.5

在那种情况下,i = 1 ... 5和k = 1 ... 3,如果我理解正确,我们应该得到这样的东西:

R_hat_1 = (1.2 + 3.4 + 4.6) / 3 = 9.2/3 = 3.067
...
R_hat_5


variance_1 = (1/2) * ((1.2 - 3.067)^2 + (3.4 - 3.067)^2 + (4.6 - 3.067)^2) = 
= (1/2) * (3.48 + 0.11 + 2.35) = (1/2) * 5.94 = 2.97
...
variance_5


Y_11 = (1.2 - 3.067) / 1.72 = -1.08
...
Y_53

我的问题是,如何让它在MATLAB上运行?我实际上缺少的是如何添加和减去不同维度的矩阵。

非常感谢任何帮助。

mathematical formulas

1 个答案:

答案 0 :(得分:4)

你应该看一下Matlab文档,因为这是非常基础的。

首先,您应该将矩阵定义写为:

X = [1.2, 3.4, 4.6; ...
1.3, 3.7, 4.6; ...
1.0, 3.9, 5.1; ...
1.1, 3.7, 4.6; ...
1.2, 3.8, 4.5;];

然后,您可以使用标准函数来计算均值和方差:

rHat = mean(X,2);

sigma = std(X,0,2); % the 0 is a flag to use N-1 as denominator
var = sigma.^2;

你可以计算出最终的等式:

Y = (X - repmat(rHat, [1 3])) ./ repmat(sigma, [1 3]);