我想在for循环的每一步对MATLAB函数稍作修改。我的功能太复杂,无法匿名编写。有没有办法在每一步更改m文件功能?
其他信息: 我的函数是一个包含8个输入和无限多个解的方程。我想要设置7个输入,然后使用fsolve找到第8个。在for循环中改变这些7个固定输入中的一些,以便我可以创建该等式的解的图表。
答案 0 :(得分:5)
让我们举两个输入的例子,你要改变一个输入。由于您声称您的功能非常复杂,我们将其写入名为complicated.m
的文件中,我们将其保存在Matlab路径中。
function out = complicated(v1,v2,x)
out = v1*x-v2*x.^2;
假设我们想在循环的每次迭代中更改v1
和v2
并找到多项式的根并绘制它
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