我需要得到N个列(L)矩阵的legendre多项式,在L上求任意N.
有没有比仅仅明确评估每行的多项式向量更好的计算矩阵的方法?这种方法的代码片段(N = 4)在这里:
L = linspace(-1,1,800);
# How to do this in a better way?
G = [legendre_Pl(0,L); legendre_Pl(1,L); legendre_Pl(2,L); legendre_Pl(3,L)];
谢谢, Vojta开发
答案 0 :(得分:2)
创建一个匿名函数。 http://www.gnu.org/software/octave/doc/interpreter/Anonymous-Functions.html
上的文档f = @(x) legendre_Pl(x,L);
然后使用arrayfun将函数f
应用于数组[1:N]
http://www.gnu.org/software/octave/doc/interpreter/Function-Application.html处的文档
CellArray = arrayfun(f, [1:N], "UniformOutput", false);
这会给你一个单元格数组。如果您想在矩阵中使用答案,请使用cell2mat
G = cell2mat(CellArray);