在MATLAB中以数组形式存储函数/方程

在MATLAB中以数组形式存储函数/方程,matlab,Matlab,下面是我试图实现的代码的一个简单示例(使用它作为概念证明)。我正在尝试制作一个包含5个函数/方程的数组(d),并在I的每个插槽处递增。当我运行代码时,x/I项中的“I”不会随着for循环而递增 我试图将此代码的输出设置为一个数组,数组中的每个项=[x/1,x/2,x/3,x/4,x/5]。下面是代码 for i = 1:5 d{i} = @(x) x/i end 您可以使用subs()(符号替换)函数强制在等式中计算/替换变量i。然后可以使用matlabFunction()函数确保

下面是我试图实现的代码的一个简单示例(使用它作为概念证明)。我正在尝试制作一个包含5个函数/方程的数组
(d)
,并在
I
的每个插槽处递增。当我运行代码时,
x/I
项中的
“I”
不会随着for循环而递增

我试图将此代码的输出设置为一个数组,数组中的每个项=
[x/1,x/2,x/3,x/4,x/5]
。下面是代码

for i = 1:5

    d{i} = @(x) x/i

end
您可以使用
subs()
(符号替换)函数强制在等式中计算/替换变量
i
。然后可以使用
matlabFunction()
函数确保结果以函数句柄/匿名函数的形式出现。

使用MATLAB R2019b运行

您可以使用
subs()
(符号替换)函数强制在等式中计算/替换变量
i
。然后可以使用
matlabFunction()
函数确保结果以函数句柄/匿名函数的形式出现。


使用MATLAB R2019b运行

为什么要这样?通常有一个比函数数组更好的解决方案,特别是如果这些函数可以在循环中生成的话。为什么要这样?通常有一个比函数数组更好的解决方案,尤其是当这些函数可以在循环中生成时。
for i = 1:5

    d{i} = matlabFunction(subs(@(x) x/i,i,i));
    
end