嗨,我是使用MATLAB的新手
我要做的是 我有m维样本(数据),其中m为2。
MATLAB代码中的数据就像这样
X1 = [4,2;2,4;2,3;3,6;4,4];
X2 = [9,10;6,8;9,5;8,7;10,8];
我要减去样本的平均值,这是
Mu1 = [3;3.8];
然后我可以用一行中的MATLAB代码中的样本平均值减去每个2D数据
答案 0 :(得分:2)
如果我理解正确,您希望从数据中减去平均值Mu1
(x1
和x2
)。
如果是这样,你可以使用bsxfun函数:
X1_subtracted = bsxfun(@minus, X1, Mu1')
输出:
X1_subtracted =
1.0000 -1.8000
-1.0000 0.2000
-1.0000 -0.8000
0 2.2000
1.0000 0.2000
请注意,您必须使用'
Mu1
,因为X1
的形状为5x2而Mu1
的形状为1x2。
答案 1 :(得分:1)
要获得X1 - mean(X1)
,您可以尝试
X = [X1(:,1) - mean(X1(:,1)), X1(:,2) - mean(X1(:,2))]
this will output
1. - 1.8
- 1. 0.2
- 1. - 0.8
0. 2.2
1. 0.2