在Maxima中有一些函数接受变量参数,如diag_matrix(a1,a2,...,an),用于创建对角矩阵,对角元素为a1,...,
但是,目前我有一个[a1,a2,... an]的列表,并希望从中创建一个对角矩阵。 diag_matrix不能直接接受列表;反正是否有利用diag_matrix来创建矩阵?
答案 0 :(得分:3)
通常,表达式apply(foo,[a1,...,an])将函数foo应用于参数列表[a1,...,an]。
特别是,apply(diag_matrix,[a1,...,an])将diag_matrix应用于[a1,...,an]。我想这就是你想要的。
请注意,apply会对其所有参数进行求值,即使foo引用其参数,或者foo求值为自身以外的其他值。因此,在千里马中有一个“应用失败引用”成语,这通常是有用的。