Matlab的函数Legendre返回整数m,实数r返回长度为m + 1的向量。
现在我想定义另一个函数fun,它给我每个固定m只有这个向量的第一个组件,所以我想定义一个函数fun(m,r),它给出了vector legendre的第一个组件(m ,X)。关键是fun(m,r)也应该是一个函数,就像legendre一样。有人知道怎么做吗?
答案 0 :(得分:3)
定义函数如下:
function out = fun(n,x)
temp = legendre(n,x); %// store output of "legendre" in a temporary variable
out = temp(1); %// return only desired element
当然,这应放在Matlab路径中的fun.m
文件中。
或者,如果您感觉hackish,可以使用
getfield(legendre(n,x), {1})
直接提取legendre(n,x)
的第一个元素(没有临时变量)。这允许将fun
定义为anonymous function,如下所示:
fun = @(n,x) getfield(legendre(n,x), {1});