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

use*_*057 5 variables arguments list maxima

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

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

Rob*_*ier 6

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

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

请注意,apply 计算其所有参数,即使 foo 引用了它的参数,或者 foo 计算的结果不是它自己。因此,Maxima 中有一个“应用失败引用”的习语,这通常很有用。