2016-12-15 2 views
2

어쩌면 나는 분명히 그리워 할 것이다. 그러나 다음 행렬의 평균값을 얻는 방법은 무엇인가?불완전한 행렬의 최대 값을 갖는 평균값을 계산하는 방법은 무엇입니까?

matrix([  ,  ,   ], 
     [7.5133,  , 5.3  ], 
     [4.93 , 5.7667 , 2.9067 ]); 

설명 형 패키지의 mean, geometric_mean, ... 및 다른 명령을 시도했지만 누락 된 값이 작동하지 않습니다.

안부, 마커스

+1

음, 나는 그 행렬을 어떻게 입력했는지 이해하지 못합니다. 그 사이에 실제 요소가없는 쉼표 때문에 Maxima로 복사 할 때 오류 메시지가 나타납니다. –

+0

친애하는 로버트, 귀하의 의견에 늦은 답변을 드려 죄송합니다. 당신의 말이 맞습니다. a1 : 행렬 ([NIL, NIL, NIL], [7.5, NIL, 5.3], ...)을 사용하여 행렬을 입력했고 나중에 matrixmap을 사용했습니다 (람다 ([u], u = NIL이면 ""그 외), a1); NIL을 없애기 위해서. 나는 NIL이 mean() 문제의 근본 원인이 될 수 있다고 생각했기 때문에 그 방법을 시도해 보았고 나중에 다시 변경하지 않았습니다. 감사합니다, Marcus – IInatas

답변

1

나는 하나를 구현해야한다 생각합니다. 예를 들면

M: matrix(
    [ und ,  und, und], 
    [7.5133,  und, 5.3], 
    [4.93 , 5.7667 , 2.9067]) $ 

ulength(x):=block([n: 0], matrixmap(lambda([e], if e#'und then n: n + 1), x), n) $ 
usum(x):=block([s: 0], matrixmap(lambda([e], if e#'und then s: s + e), x), s) $ 
umean(x):=usum(x)/ulength(x) $ 
umean(M); 
+0

친애하는 slitvinov, – IInatas

+0

친애하는 slitvinov, 대단히 솔루션에 감사드립니다. 그것은 내 문제를 잘 해결하고 추가해야만하는 것은 빈 셀을 'und'로 대체하는지도 호출입니다. – IInatas

+0

내 평판이 너무 낮아서 투표 할 수 없습니다. 죄송합니다. 안부, 마커스 – IInatas

관련 문제