2014-09-16 4 views
4

두 개의 행렬이 있습니다. 예를 들어, X = [1 2; 3 4; 5 6] 및 Y = [0 1; -1 1; 1 1]. 나는 요소 현명한 분할 X./Y을 수행 할,하지만 난 내가 좋아하는 뭔가를 사용하여 시도 Y.Matlab 요소 별 0으로 나누기

을 모두 0을 무시하는 방법이 필요합니다 (Y ~ = 0) =

nonzeros 찾기; X (nonzeros) ./Y (nonzeros);

이 결과로 인해 열 벡터가되고 결과 행렬의 모양이 X (또는 Y)와 동일해야하고 Y가 0 인 0이 필요합니다. 그래서이 경우 원하는 결과는 [0 2; -3 4; 5 6].

나는 또한 여기에 제안 된 것을 시도했지만 (Right Array Division : Ignoring division by zeroes), 다시이 작업을 수행하면 결과가 열 벡터가됩니다.

감사

답변

8

사용 -

out = X./Y  %// Perform the elementwise division 
out(Y==0)=0  %// Select the positions where Y is zero and 
       %// set those positions in the output to zero 

출력 -

X = 
    1  2 
    3  4 
    5  6 
Y = 
    0  1 
    -1  1 
    1  1 
out = 
    0  2 
    -3  4 
    5  6