使 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)
我正在使用 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)