我想使用此功能找到最大值:
Function f = myfun(a)
a = {'a1';'a2';'a3';'a4'};
x = rand(4,5);
S = -x.*a;
SS = sum(S);
[~,ix] = sort(SS);
R = rand(1,5)
SR = R(ix);
f = sum(SR(1:10));
Aeq=ones(4,1);
beq=1;
a0=[.25 .25 .25 .25]';
[a,f] = fmincon(@myfun,a0,[],[],Aeq,beq);
end
代码抛出错误:
错误:未定义的功能或方法&#39> mtimes'对于' cell'
类型的输入参数
你知道为什么吗?
答案 0 :(得分:1)
如图所示,您的功能无效Matlab。在'Function'而不是'f'中使用'F'会引发警告,但在函数定义结尾处出现'end'是语法错误。更正这些错误,然后在调试模式下运行该函数。你的下一个问题是
S = -x.*a;
未定义rhs(在本例中为“a”)是一个单元格数组,您之前的声明就是它。你期望(在第一行)'a'作为函数的参数也是非常奇怪的,但在l2中将它定义为包含4个字符串的单元格数组。