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

时间:2012-07-05 06:28:46

标签: list variables arguments maxima

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

但是,目前我有一个[a1,a2,... an]的列表,并希望从中创建一个对角矩阵。 diag_matrix不能直接接受列表;反正是否有利用diag_matrix来创建矩阵?

1 个答案:

答案 0 :(得分:3)

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

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

请注意,apply会对其所有参数进行求值,即使foo引用其参数,或者foo求值为自身以外的其他值。因此,在千里马中有一个“应用失败引用”成语,这通常是有用的。