在MATLAB中以数组形式存储函数/方程
下面是我试图实现的代码的一个简单示例(使用它作为概念证明)。我正在尝试制作一个包含5个函数/方程的数组在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()函数确保
(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