八度运算符 - :应用自动广播运算

时间:2013-06-13 18:47:53

标签: ubuntu matrix operators octave

在八度音阶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均值(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)

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

2 个答案:

答案 0 :(得分:18)

您可以通过致电bsxfun(operation, A, B)明确请求广播,所以在您的情况下:

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

Octave referenceMatlab reference

答案 1 :(得分:5)

很抱歉这么晚来。 虽然使用相同的版本,但您可能会将第二台机器设置为不同。

查看Octave Broadcasting documentation,您可以直接设置警告beahaviour:

warning ("error", "Octave:broadcast");

VS。

warning ("off", "Octave:broadcast");