【问题标题】:Change Matlab function in loop循环更改 Matlab 函数
【发布时间】:2011-04-10 01:01:19
【问题描述】:

我想在 for 循环的每个步骤中对 MATLAB 函数进行细微更改。我的函数太复杂,无法匿名编写。有没有办法在每一步都改变一个m文件函数?

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

【问题讨论】:

  • 您能否提供有关您想要进行的更改类型的更多详细信息?
  • 这类问题不需要使用匿名函数!只使用一个包装函数来参数化你的 8-Input 函数

标签: matlab


【解决方案1】:

让我们以两个输入为例,您想更改其中的一个。既然你说你的函数真的很复杂,让我们把它写到一个名为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

【讨论】:

    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多