数值编程--Matlab和R给出不同的值

时间:2014-06-19 15:43:03

标签: r matlab

我试图计算PCA分数,并且部分算法说:subtract the mean of the matrix, divided by the standard deviation

我有以下2x2矩阵:A = [1 3; 2 4]让我们在Matlab中说,我会做以下事情:

mean(A) - >这给了我一个2个值的矢量(基于列),所以.. 1.5和3.5。在这个例子中,这对我来说是正确的。

然而,在R中,当计算平均值mean(A)时,均值只是一个值。标准偏差也是如此。

所以我的问题是,哪个是对的?出于此功能的目的(在算法中):

function(x) {(x - mean(x))/sd(x)http://strata.uga.edu/software/pdf/pcaTutorial.pdf

我应该根据Matlab的两个值减去平均值还是按R减去1个值?

由于

1 个答案:

答案 0 :(得分:2)

对于矩阵或数据帧一次性执行此操作的R命令是scale()

> A = matrix(c(1, 3, 2, 4), 2)
> scale(A)
           [,1]       [,2]
[1,] -0.7071068 -0.7071068
[2,]  0.7071068  0.7071068
attr(,"scaled:center")
[1] 2 3
attr(,"scaled:scale")
[1] 1.414214 1.414214

这是由专栏完成的。当你使用'mean'时,你获得了所有四个数字的平均值,而不是列数。如果您正在进行PCA计算,那就是你想要的东西。