2012-05-09 10 views
4

Maximaに行列の列を積みたい。Maximaの行列の列を積み重ねる

b3: matrix(
[1,0,0], 
[-a21,1,0], 
[-a31,-a32,1] 
); 

私はこの行列の列をスタックする方法を疑問に思います。あなたの助けと時間を事前に感謝します。ここで

答えて

3

はそれを行うための素朴な方法です:

apply(append, map(lambda([r], transpose(b3)[r]), makelist(i,i,3))); 
+0

はあなたのために@soegaardに感謝します回答。私はあなたが 'c:transpose(b3); 転置(append(c [1]、c [2]、c [3]))) '。列が多いと非常に面倒です。私はどんな自動化された方法も好む。とにかくあなたの答えに感謝します(+1)。あなたが探しているものかもしれませんMYaseen208より一般的な方法、@ – MYaseen208

+0

:適用(追加、マップ(ラムダ([R]、(B3)の転置[R])、MAKELIST(I、I、3))); – soegaard

+0

この問題にご協力いただきありがとうございます。新しいコード( '、マップ(ラムダ([R]、(B3)[R])を転置、MAKELIST(I、I、3))を追加)適用;、' 'この出力を生成する、[1、-a2​​1、-A31 0,1、-a32,0,0,1] 'であり、これは必要な出力ではありません。 MYaseen208 @おかげ – MYaseen208

2

あるいは単に:

c : transpose(b3); 
transpose(append(c[0], c[1], c[2])); 

、ここではより一般的な方法です

transpose(apply(append,args(transpose(b3)))); 
関連する問題