2013-06-13 2 views
12

를 적용, 내가 매트릭스 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)를 계산하려면, 저를 준다 :옥타브 연산자 - : 자동 방송 작업이 옥타브 3.6.2에서

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) 

어떤 생각 방법 "자동 방송 작업는"첫 번째 경우에 적용되는 것을 활성화하기 위해? (옥타브 버전은 동일!) 귀하의 경우 있도록

+3

. 자동 브로드 캐스팅을 활성화하거나 비활성화 할 수 없습니다. 정말로 그들이 동일한 Octave 버전을 실행하고 있습니까? 두 버전 모두 동일한 Octave 버전을 설치했지만 다른 버전을 실행 중일 수 있습니다. 옥타브 프롬프트에서'OCTAVE_VERSION' 값을 확인하십시오. – carandraug

답변

18

명시 적, bsxfun(operation, A, B)를 호출하여 방송을 요청할 수 있습니다

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

Octave reference,

5

미안 Matlab reference이 너무 늦게 와서. 같은 버전의 경우 두 번째 시스템 설정이 다를 수 있습니다. Octave Broadcasting documentation에서

봐, 당신은 직접 경고 beahaviour을 설정할 수 있습니다 매우 이상한 것 같다

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

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

위대한, 감사합니다 .. – cgl