如何在MATLAB中用二维数据(一)减去二维数据(批次)

时间:2016-07-08 03:59:16

标签: matlab

嗨,我是使用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数据

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望从数据中减去平均值Mu1x1x2)。

如果是这样,你可以使用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