在倍频程3.6.2中,我有一个矩阵X=[1 2 3; 2 4 5; 2 6 5; 2 3 7; 3 6 8; 2 4 6; 3 6 8; 4 7 10],我想计算X-mean(X),它得到了:

octave:2> X-mean(X)
warning: operator -: automatic broadcasting operation applied
ans =

  -1.37500  -2.75000  -3.50000
  -0.37500  -0.75000  -1.50000
  -0.37500   1.25000  -1.50000
  -0.37500  -1.75000   0.50000
   0.62500   1.25000   1.50000
  -0.37500  -0.75000  -0.50000
   0.62500   1.25000   1.50000
   1.62500   2.25000   3.50000

但是,当我在另一台计算机上尝试相同的命令时,它提示矩阵的大小不匹配:
error: operator -: nonconformant arguments (op1 is 7x3, op2 is 1x3)

知道如何激活在第一种情况下应用的“自动广播操作”吗? ( Octave 版本相同!)

最佳答案

您可以通过调用bsxfun(operation, A, B)显式请求广播,因此在您的情况下:

bsxfun(@minus, X, mean(X))

Octave referenceMatlab reference

10-01 13:04