什么是一个有效的方式使用目标函数之和fmincon吗?

5视图(30天)
我准备用fmincon的目标函数之和(加权)功能,这样程序的用户可以选择所需的目标函数并指定重量的因素。第一个想到的想法是将目标函数定义为一笔不同。m文件中定义的函数。这样,以后我可以轻松添加目标函数,只需创建一个新的函数。然而,我知道(更确切地说,我强烈怀疑),它的成本经常呼吁一个函数在另一个文件。
我的问题是 :我上面素描的合理有效的方法?如果没有,我可以使用其他方法既简单易用的我和有效吗?
其他方法想到的
  1. 写所有的代码在一个函数中使用if指令,但这对我来说不是很好使用;
  2. 使用本地/嵌套函数;不错,但对我不是很高兴使用多个函数。m文件。

接受的答案

马特·J
马特·J 2021年8月16日
编辑:马特·J 2021年8月16日
然而,我知道(更确切地说,我强烈怀疑),它的成本经常呼吁一个函数在另一个文件。
不,不是真的。如果你打电话反复在一个for循环,可能是这样,但这里的用户手动选择少数所需的功能,这可能意味着循环将相当短。
10评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年8月18日
当你有一个 结束 声明中则会一个“静态工作空间”。静态工作空间有一个“合同”,叫函数不能(不允许)“噗”变量存在,所以函数优化静态工作空间有更多的机会。
例如当时正在处理via_mfunc1本身,它不知道via_mfunc2不会assignin(调用者)和在工作区中东西搞得一团糟。静态工作区说如果尝试调用的函数会阻塞。不仅被称为功能:如果一个脚本调用在静态工作空间中,它是不允许创建新的变量。
…当你开始依赖作业你可以看到,和不用担心作业你不能看到的,然后你可以收紧没有插入的代码检查,以防突然有新的值或新的数据类型的变量。
所以,总的来说,功能与静态工作区可以更有效率。但这可能不会显示等简单功能正在使用这个测试。
您可能已经注意到脚本必须匹配的函数 结束 声明……这迫使他们静态工作区。只有函数静态工作区可以嵌套函数和共享变量。

登录置评。

更多的答案(0)

类别

找到更多的在和迭代解算器输出显示帮助中心文件交换

s manbetx 845


释放

R2017b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!