2016-12-15 14 views
2

多分私は明らかに間違っていますが、次のマトリックスの平均値はどのようにして得られますか? 最大値を持つ不完全な行列の平均値を計算する方法は?

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

私は平均、geometric_mean、...と記述パッケージから他のコマンドを試してみましたが、彼らは欠損値では動作しません。

に関して、 マーカス

+1

ええ、私はあなたがその行列をどのように入力したのか分かりません。私はそれらを実際の要素を持たないコンマのためにMaximaにコピーするとエラーメッセージが表示されます。 –

+0

親愛なるロバート、あなたのコメントに遅れて返信して申し訳ありません。あなたは正しく、a1:matrix([NIL、NIL、NIL]、[7.5、NIL、5.3]、...)で行列をタイプし、後でmatrixmap(lambda([u]、u = NILならば) "else")、a1); NILを取り除く。私はNILがmean()の問題の根本原因かもしれないと思ったので、そのようにしてみました。後でそれを元に戻すことはありませんでした。 Regards、Marcus – IInatas

答えて

1

私は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

親愛なるスリットヴィーノ、 – IInatas

+0

親愛なるスリットヴィーノ、あなたの解決に大変感謝します。私の問題はうまく解決しました。追加する必要があったのは、空のセルを 'und'で置き換えるマップ呼び出しです。 – IInatas

+0

私の評判はあなたを投票するには低すぎます、申し訳ありません。マーカスについて – IInatas

関連する問題