我正在尝试使用这两个谓词来模拟矩阵与向量的乘积:
eva([], [], []).
eva([A|A1], [W], [Res|R1]) :-
vectormultiplication(A, W, Res),
eva(A1, W, R1).
vectormultiplication([A], [W], [A*W]).
vectormultiplication([A|A1], [W|W1], [A*W|Out1]) :-
vectormultiplication(A1, W1, Out1).
其中[A|A1]
in eva 是矩阵(或列表列表),[W]
是向量(列表),并且[Res|R1]
是结果乘积。vectormultiplication
应该将列表中的每个列表与向量相乘W
。然而,这种策略只会产生错误的反应。有什么明显的地方我做错了,阻止我得到想要的产品吗?我目前正在使用 SWI Prolog 5.10 版