2016-05-03 32 views
0

Prologで行列を転置したい。私はPrologで新しく、これまで2次元行列のための方法を知っています。プロローグで多次元(3D)行列を転置する方法

私はGoogle上で何かを見つけることができないので、ヒントやヒントは高く評価されます。 例:

入力[[[1,2,3]、[4,5,6]]、[[7,8,9]、[10,11,12]]]。出力[[[1,4]、[7,10]]、[[2,5]、[8,11]]、[[3,6]、[9,12]]]。

ありがとうございます。

+0

私が最初に各パートを移調し、再度全体の行列を転置する必要があるように、それはだ...しかし、私は部品でそれを転置する方法が分からない... – sathariel

答えて

1

あなたは、2D行列のための転置述語を持っている場合は、3Dマトリックスの転置は、以下の手順で行うことができます

  1. (あなたがmaplist/2を使用することができますあなたの3Dマトリックスの各2D行列要素をトランスポーズthis)
  2. 結果の3D行列をリストの2D行列として置き換えます。プロローグで

matrix_3d_transposed(Matrix, TransMatrix) :- 
    maplist(matrix_2d_transposed, Matrix, TMatrices), 
    matrix_2d_transposed(TMatrices, TransMatrix). 
+0

感謝あなたは非常に!!!!! – sathariel