Error: Inner matrix dimensions must agree.

2 views (last 30 days)
Hi, I am using "gamultiobj" to solve my problem. I, however, have no idea why the error message occurred
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> col_mop>@(x)x'*(B'*B)*x at 50
fun1 = @(x) x'*(B'*B)*x;
My objective function is coded as follows
fun1 = @(x) x'*(B'*B)*x;
fun2 = @(x) x'*x;
bifun = @(x) [fun1(x) fun2(x)];
The dimension of B'*B is m so x is an m-by-1 vector. The syntax for gamultiobj is
X = gamultiobj(FITNESSFCN,NVARS,A,b,Aeq,beq,LB,UB,options)
I have properly input the number of decision variables (NVARS) as m but the error message shows. I also check the dimensions using the command "whos" which showed what I wanted. Is there anything wrong?
Thanks in advance.

Accepted Answer

Paulo Silva
Paulo Silva on 15 Jun 2011
  5 Comments
Chien-Chia Huang
Chien-Chia Huang on 15 Jun 2011
Thanks a lot, Paulo! I just found out what the problem is. The x in gamultiobj is by default supposed to be a row vector, but I thought intuitively of x as a column vector. The problem was just solved.
Chien-Chia Huang
Chien-Chia Huang on 16 Jun 2011
sorry Matt I did not see your reply. The output of size(B) was 5-by-10 and size(x) was 10-by-1. But the requested x in gamultiobj should be 1-by-10. Thanks, anyway. :D

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!