如何在Maxima中将列表作为可变参数函数传递?

5

在Maxima中,有一些函数可以接受可变参数,例如diag_matrix(a1,a2,...,an),用于创建对角线元素为a1,...,an的对角矩阵。

然而,目前我有一个列表[a1,a2,..an],想从中创建一个对角矩阵。diag_matrix不能直接接受列表;有没有办法利用diag_matrix来创建矩阵?

1个回答

6

通常,表达式apply(foo,[a1,...,an])将函数foo应用于参数列表[a1,...,an]。

特别地,apply(diag_matrix,[a1,...,an])将diag_matrix应用于[a1,...,an]。我认为这是你想要的。

请注意,apply评估其所有参数,即使foo引用其参数,或者foo评估为其他内容。因此,在Maxima中有一个“apply defeats quoting”习语,这通常很有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接