我得到了我定义的内联函数数组:
x = 0:1/(nDatasets-1):1;
M = 24; % number of base functions
f = cell(M,1);
for m = 1:M
f{m} = inline(sprintf('exp(- (x- %d/(%d+1)).^2/(1/(2*%d^2)))', m,M,M), 'x');
end
但我不知道现在如何访问/调用单个函数。
答案 0 :(得分:1)
只需f{index}(arguments)
。例如:
>> f{1}=inline(sprintf("x^2"))
f =
{
[1,1] = f(x) = x^2
}
>> f{2}=inline(sprintf("x^3"))
f =
{
[1,1] = f(x) = x^2
[1,2] = f(x) = x^3
}
>> f{1}(2)
ans = 4
>> f{2}(2)
ans = 8
或者,您可以将内联函数分配给临时变量,然后像普通函数一样使用它:
>> tmpf=f{1}
tmpf = f(x) = x^2
>> tmpf(2)
ans = 4
请注意,这也适用于匿名函数:
>> f{1}=@(x) x^2
f =
{
[1,1] =
@(x) x ^ 2
}
>> f{2}=@(x) x^3
f =
{
[1,1] =
@(x) x ^ 2
[1,2] =
@(x) x ^ 3
}
>> f{1}(2)
ans = 4
>> f{2}(2)
ans = 8
>>