Prolog:矩阵运算

时间:2018-05-12 09:44:55

标签: matrix prolog

我在Prolog中没有很多编程方面的经验。我正在编写基本矩阵运算的规则。所以我需要对矩阵N进行这三个操作:

size(+N,-Num): returns n if N is of size n x n
fetch(+N,+I,+J,-Value): returns the (I,J) value of N
store(+N,+I,+J,+Value,-NewN): replaces the (I,J) value of N

例如,我有一个像这样的矩阵:

[ [[b],[d,o],[m,o]],
  [[a],[oi,mi,d],[di,fi]],
  [[b],[d],[=]]         ]

我希望有人能帮助我,谢谢:)

修改 我想我解决了前两个操作。这里是size(N,Num)操作:

size2(N, Ls) :-
   length(Ls, N).

size1(Mss, R, C) :-
   length(Mss, R),
   maplist(size2(C), Mss).

size(N,M):-
   size1(N,R,C),
   R = C,
   M is R.

此处fetch(N,I,J,Value)操作:

fetch(Mat, Row, Col, Val) :- 
    nth1(Row, Mat, ARow), nth1(Col, ARow, Val).

但我不确定如何编写store(N,I,J,Value,NewN)操作......

0 个答案:

没有答案