2

maxima で 41x41 配列を行列に変換する方法を見つけようとしています。試してみましたaa1:matrix([aa]); 試してみるmatrixp(aa1)とtrueになりますが、マトリックスには最初の値しか含まれていません。

誰か考えがありますか?

4

1 に答える 1

2

IIUC Maxima 配列はhashであるため、順序は行列の場合ほど厳密ではありません。それはさておき、配列がどのように生成されたかについてある程度の知識があれば可能であるように思われます。5genmatrix番目のFAQ エントリを参照してください。

したがって、配列が次のように生成される場合:

(%i1) for i thru 4 do for j thru 4 do A[i,j]: i+j$

我々は持っています:

(%i2) listarray(A);
(%o2)   [2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8]
(%i3) arrayinfo(A);
(%o3)   [hashed, 2, [1, 1], [1, 2], [1, 3], [1, 4], [2, 1], [2, 2], [2, 3], [2, 4], [3, 1], [3, 2], [3, 3], [3, 4], [4, 1], [4, 2], [4, 3], [4, 4]]

A次のように 4x4 行列に変換できます。

(%i4) genmatrix(A,4,4);
        [ 2  3  4  5 ]
        [            ]
        [ 3  4  5  6 ]
(%o4)   [            ]
        [ 4  5  6  7 ]
        [            ]
        [ 5  6  7  8 ]
于 2013-03-15T08:41:25.427 に答える