我想在Prolog中转置矩阵。我是Prolog的新手,到目前为止我知道如何为二维矩阵
做到这一点transpose([], []).
transpose([H|T], Ts) :- transpose(H, [H|T], Ts).
transpose([], _, []).
transpose([_|T1], L, [H1|T2]) :- lfr(L, H1, M), transpose(T1, M, T2).
lfr([], [], []).
lfr([[H3|T4]|R], [H3|T5], [T4|O]) :- lfr(R, T5, O).
但不是更多。我在谷歌上找不到任何东西,所以任何提示或提示将不胜感激。 例如:
输入[[[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 :(得分:1)
如果您有2D矩阵的转置谓词,则可以按以下步骤完成3D矩阵的转置:
matrix_3d_transposed(Matrix, TransMatrix) :-
maplist(matrix_2d_transposed, Matrix, TMatrices),
matrix_2d_transposed(TMatrices, TransMatrix).
)在Prolog:
...
return response.text();
}).then(function(body) {
res.send(body);
...