Matlab - 如何构建函数

时间:2014-09-22 16:18:09

标签: matlab function math

Matlab的函数Legendre返回整数m,实数r返回长度为m + 1的向量。

现在我想定义另一个函数fun,它给我每个固定m只有这个向量的第一个组件,所以我想定义一个函数fun(m,r),它给出了vector legendre的第一个组件(m ,X)。关键是fun(m,r)也应该是一个函数,就像legendre一样。有人知道怎么做吗?

1 个答案:

答案 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});