2012-07-05 33 views
3

在Maxima中有一些函数接受像diag_matrix(a1,a2,...,an)这样的可变参数,它用于创建对角线元素的对角矩阵为a1,...,如何将列表作为Maxima中的变量参数传递函数?

但是,目前我有一个[a1,a2,... an]的列表,并想从中创建一个对角矩阵。 diag_matrix不能直接接受列表;无论如何利用diag_matrix创建矩阵?

回答

3

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

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

请注意,apply会评估其所有参数,即使foo引用其参数,或者foo评估为非自身参数。因此,马克西玛有一个“应用失败引用”的成语,这通常很有用。

+0

这正是我所期待的,非常感谢 – user1503057

相关问题