Matlab 将父函数的输出与嵌套函数的输入相关联

Matlab 将父函数的输出与嵌套函数的输入相关联,matlab,function,optimization,nested,Matlab,Function,Optimization,Nested,我将尝试简单地解释自己,希望得到一个简单的答案 假设我有一个函数“calculate”,它接受输入[t,k,r,x]和输出[a,B,C,D],如下所示: function [A,B,C,D] = calculate(t,k,r,x) 现在让我们假设我有另一个函数,将这些输出作为输入,并输出更多不同的输出,例如 function [M,N] = again(A,B,C,D) 如何将[M,N]链接为k和t?总体目标是通过优化k和t来最小化M和N,我可以猜测这与嵌套函数和传递参数有关,但我不确定如

我将尝试简单地解释自己,希望得到一个简单的答案

假设我有一个函数“calculate”,它接受输入
[t,k,r,x]
和输出
[a,B,C,D]
,如下所示:

function [A,B,C,D] = calculate(t,k,r,x)
现在让我们假设我有另一个函数,将这些输出作为输入,并输出更多不同的输出,例如

function [M,N] = again(A,B,C,D)
如何将
[M,N]
链接为
k
t
?总体目标是通过优化
k
t
来最小化
M
N
,我可以猜测这与嵌套函数和传递参数有关,但我不确定如何启动,启动就是我想要的。谢谢

看一看。它为许多优化问题提供函数。虽然我相信这些函数只取一个函数作为参数。因此,对于您的情况,如果您能这样做,可能是最好的:

  • 编写带有参数(t、k、r、x)的函数
    calculate.m
    ,并保存它
  • 再次写入带有参数(t、k、r、x)的函数
    。m
    ,然后保存它
  • 函数
    再次调用函数
    使用参数(t,k,r,x)计算
    ,然后继续从
    计算的输出中确定(M,N)
  • 在Matlab工具箱的优化函数中,例如:fmincon(fun,x0,A,b),然后必须再次使用.m作为要优化的函数(fun)
    希望这足以作为一个开始。

    嗨,这太棒了。我担心嵌套函数的顺序,但完全忽略了(我不知道为什么)单独编写它们并进行调用。所以现在,我想到了一件我知道自己无法通过的事情。我知道工具箱(无论您想使用什么优化工具)只接受一个变量作为输入。在原始问题的情况下,我如何制定目标函数,以便输出仍然是
    [M,N]
    ,但优化程序(在本例中为GA)优化我想要的变量。我想需要某种形式的映射?首先,你应该弄清楚你有什么样的问题:线性的,非线性的,你有什么约束条件吗。。。。如前所述,目标函数,即您要优化的函数,应该再次成为问题。问题是,如何将我要优化的特定命名变量(t,k)转换为目标函数输入的一个变量(z,比方说)?