在循环中更改Matlab函数

3
我希望能在for循环的每一步中对MATLAB函数进行微小更改。我的函数太复杂了,无法编写为匿名函数。有没有办法在每一步更改m文件函数?
额外信息: 我的函数是一个具有8个输入和无限多个解的方程式。我想设置其中7个输入,然后使用fsolve找到第8个输入。在for循环中变化这些7个固定输入,以便可以创建此方程式解的图形。

你能提供更多关于你想要进行的更改类型的细节吗? - b3.
1
你不需要使用匿名函数来解决这种问题!只需使用一个包装函数,将参数化你的8输入函数。 - Mikhail Poda
1个回答

5

让我们举一个例子,假设有两个输入参数,你想要改变其中的一个。由于你声称你的函数非常复杂,所以我们将其写入一个名为complicated.m的文件中,并保存在Matlab路径中。

function out = complicated(v1,v2,x)

out = v1*x-v2*x.^2;

假设我们想在循环的每次迭代中更改v1v2,并找到多项式的根并绘制它。

figure,hold on
for v1 = 1:5
   for v2 = 1:5
      %# define the function
      myFun = @(x)complicated(v1,v2,x);
      %# find the roots
      fzero(myFun,1)
      %# plot the function
      plot(-5:0.1:5,myFun(-5:0.1:5))
   end
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接