在循环中更改Matlab函数

Bri*_*ian 3 matlab

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

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

Jon*_*nas 5

让我们举两个输入的例子,你想要改变一个输入.既然你声称你的函数真的很复杂,那么让我们将它写入一个名为的文件complicated.m,我们将其保存在Matlab路径中.

function out = complicated(v1,v2,x)

out = v1*x-v2*x.^2;
Run Code Online (Sandbox Code Playgroud)

假设我们想要在循环中的每次迭代中进行更改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
Run Code Online (Sandbox Code Playgroud)