1、首先,你的参数写错位了——A后面应该有b吧?缺少一个参数,是造成目前报错的直接原因。
2、没有非线性约束,则该位置的参数也写成空矩阵 []。
3、传递附加参数的做法,除了你现在使用的参数补位方法外,目前更多的使用匿名函数或嵌套函数的做法。
匿名函数:
amr=...;
bmr=...;
fmincon(@(x)EE(x,amr,bmr),....)
嵌套函数:
function main
amr=...;
bmr=...;
fmincon(@EE,....)
function y=EE(x)
.... % 此处可使用amr、bmr等诸函数中定义的变量
end
end