在循环中更改Matlab函数

时间:2010-09-09 01:11:12

标签: matlab

我想在for循环的每一步对MATLAB函数稍作修改。我的功能太复杂,无法匿名编写。有没有办法在每一步更改m文件功能?

其他信息: 我的函数是一个包含8个输入和无限多个解的方程。我想要设置7个输入,然后使用fsolve找到第8个。在for循环中改变这些7个固定输入中的一些,以便我可以创建该等式的解的图表。

1 个答案:

答案 0 :(得分: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