使 MATLAB 函数显式化

Make a MATLAB function explicit

我正在使用 MATLAB 中的工具箱,我还没有准备好对其中的函数进行任何更改。

假设它有一个函数f = @(x,l) g(x)*h(l)

我想在不同的 x 但总是相同的 l:

调用 f
l = 3;
f2(x) = @(x) f(x,l);
for i=1:length(x)
   f2(x(i));
end

但是,如果我这样做,函数 h 将在 l=3 处为每个 i 调用。我希望 MATLAB 知道当我定义 f2 时可以存储 h(l) 并且实际上 f2(x) = 3*g(x)
有办法解决这个问题吗?或者我需要进入 f2 的代码并在某处写下:

A = h(l);
f2 = @(x) A*g(x)

为什么不将函数定义为?

f2 = @(x) f(x,3)