How can I resolve this 'Improper assignment with rectangular..' error while using Genetic Algorithm minimization (ga function)?
显示 更早的评论
I am getting an error while using the ga() function with ub,lb,non-linear and integer constraints but no linear inequality/equality constraints.
The error is- "Improper assignment with rectangular empty matrix."
Here's the piece of my code- (EWPL and constraint are my functions which accept a single argument i.e. y. constraint returns C and Ceq=[])
%SETTING THE INTEGER CONSTRAINTS ON ALL DECISION VARIABLES EXCEPT FOR y(1).
for i=2:nvars
intcon(i-1)=i;
end
%RESULT
f=@(y)EWPL(y);
nonlcon=@(y)constraint(y);
yopt=ga(f,nvars,[],[],[],[],lb,ub,nonlcon,intcon);

Interestingly, the error is totally different when I try to run the code some times. The error is in line 351 of ga() again but it's different.

Can anyone please tell me where I am going wrong? This is the very first time that I am using the genetic algorithm. Thanks :)
采纳的回答
更多回答(1 个)
Alan Weiss
2015-10-23
There could be several problems here. One is that you set intcon wrong. If you want all variables except for the first to be integer-valued, then
intcon = 2:nvars;
Another could be your nonlinear constraint function. Does it return two values, c and ceq? And is ceq = []? It should be.
Alan Weiss
MATLAB mathematical toolbox documentation
类别
在 帮助中心 和 File Exchange 中查找有关 Genetic Algorithm 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!