2017-10-01 2 views
0

두 개의 행렬 A와 B가 있습니다.numpy를 사용하여 차이의 크기를 계산할 수 있습니까?

I want to calculate the magnitude of difference between the two matrices. 즉, 반복을 사용하지 않고 말하십시오.

def mymagn(A, B): 
    i = 0 
    j = 0 
    x = np.shape(A) 
    y = np.shape(B) 
    while i < x[1]: 
     while j < y[1]: 
      np.sum((A[i][j] - B[i][j]) * (A[i][j] - B[i][j])) 
      j += 1 
     i += 1 

내가 알고있는 것처럼, 일반적으로 값은 두 개의 유사한 행렬과 작아야하지만 누군가가 도움을 줄 수 있음을받지 못했습니다 : 여기

는 지금까지이 무엇입니까? 반복 할 필요성을 제거 할 수있는 방법이 있습니까?

+1

'C = (A - B) ** 2' –

답변

1

이 그것을 수행해야합니다

def mymagn(A, B): 
    return np.sum((B - A) ** 2) 

배열/같은 크기, 또한/뺄셈의 행렬 요소 현명한 (MATLAB처럼)입니다 들어. 스칼라 지수에 의한 누승도 요소 적입니다. np.sum은 기본적으로 (모든 축을 따라) 모든 요소를 ​​합계합니다.

+0

을 할 수없는 이유는 모르겠습니다. 수식에 정말 충분합니까? 나는이 문서를 읽었지만 이것이 강력하다고 생각하지는 않았다. –

+0

예, 같은 크기의 배열/행렬의 경우, 더하기/빼기는 요소별로 (MATLAB에서와 같이) 있습니다. 지수화 (스칼라 지수 포함) 또한 요소 단위입니다. 그리고'sum'은 기본적으로 (모든 축을 따라) 모든 원소를 합할 것입니다. – randomir

관련 문제