在八度音阶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)
知道如何激活第一种情况下应用的“自动广播操作”吗? (八度版本是相同的!)
答案 0 :(得分:18)
您可以通过致电bsxfun(operation, A, B)
明确请求广播,所以在您的情况下:
bsxfun(@minus, X, mean(X))
答案 1 :(得分:5)
查看Octave Broadcasting documentation,您可以直接设置警告beahaviour:
warning ("error", "Octave:broadcast");
VS。
warning ("off", "Octave:broadcast");