?? Error using ==> times Matrix dimensions must agree.

Hi everyone. When I am executing the below given program, I got the error message " ??? Error using ==>times Matrix dimensions must agree." Please check the problem and help me to resolve the issue,
datos=[C14; C13; Ptotal; NH4_total; Mgtotal; T; Kest];
Aeq = [0 1 0 0 0 0 0 1 1 1 1 0 0 datos(3);
1 1 0 0 1 1 1 0 1 0 1 0 0 datos(3);
0 0 1 1 0 0 0 0 0 0 0 0 0 datos(3) ;
0 0 0 -1 3 2 1 -2 -1 -1 1 -1 1 0];
beq = [datos(5); datos(3); datos(4); datos(1)-datos(2)];
z=[0 0 0 1 -3 -2 -1 2 1 1 -1 1 -1];
sqrtI=@(x) sqrt(0.5*(x(:,1).*z(:,1).^2+x(:,2).*z(:,2).^2+x(:,3).*z(:,3).^2+x(:,4).*z(:,4).^2+x(:,5).*z(:,5).^2+x(:,6).*z(:,6).^2+x(:,7).*z(:,7).^2+...
x(:,8).*z(:,8).^2+x(:,9).*z(:,9).^2+x(:,10).*z(:,10).^2+x(:,11).*z(:,11).^2+...
x(:,12).*z(:,12).^2+x(:,13).*z(:,13).^2)); %escalar I
F=@(x,sqrtI) (sqrtI(x)./(1+sqrtI(x)))-0.3*sqrtI(x); %escalar F
a=-A_DH.*z.^2;
exponente=@(x,sqrtI,F) times(a,F(x,sqrtI));
lambda=@(x,sqrtI,F) 10.^(exponente(x,sqrtI,F));
uLi=[-1142.65 -1577.3 -26.5 -79.31 -1018.80 -1089.26 -1130.40 -454.8 -1593.84 -626.7 -1511.21 0 -157.29];
uS=-3051.1;
uL=@(x,sqrtI,F,lambda) uLi+R*T*( log(x(:,1:13).*lambda(x,sqrtI,F)) );
G=@(x,sqrtI,F,lambda) [times(x(:,1:13),uL(x,sqrtI,F,lambda)) uS.*x(:,14).*datos(3)] ;
options = gaoptimset('Generations',1000,'StallGenLimit',200,'MutationFcn',@mutationadaptfeasible,...
'PlotFcns',{@gaplotbestf,@gaplotstopping},'Vectorized','on','UseParallel','always');
tic;[x G] = ga(@(x)G(x,sqrtI,F,lambda),14,[],[],Aeq,beq,[],[],[],options);toc
Please Help me. Thank you.,

 Akzeptierte Antwort

James Tursa
James Tursa am 5 Aug. 2015
Bearbeitet: James Tursa am 5 Aug. 2015

0 Stimmen

Type the following at the command line:
dbstop if error
Then run your code. It will pause at the line with the error. Examine all of the variables that you are using the .* operator with and see where the mismatch is. Then figure out why this is happening and fix it.

6 Kommentare

CLMSP
CLMSP am 5 Aug. 2015
thanks, but I don´t see the mistake I think it is a problem of the length of vectorized fitness function. But I can´t see it.
James Tursa
James Tursa am 6 Aug. 2015
Bearbeitet: James Tursa am 6 Aug. 2015
You don't have to "see" it. All you have to do is look at the line that is generating the error, and then look for everywhere in that line there is a .* operator. One by one, examine the left and right operands for this operator and discover which ones don't match in size.
CLMSP
CLMSP am 7 Aug. 2015
I don´t "see" because I did not "find" the mistake
Walter Roberson
Walter Roberson am 7 Aug. 2015
Bearbeitet: Walter Roberson am 7 Aug. 2015
Provide us with some representative data. It can be random, but every variable you list in your code must be initialized to exactly the same size as the variables at the time you encounter the problems. I do not assume that C13 and so on are each scalars: my assumption is that some of them are vectors. Check every variable before reporting its size to us.
CLMSP
CLMSP am 10 Aug. 2015
They are scalars: For example: datos=[1e-3; 8e-3; 4e-3; 4e-3; 4e-3; 298.15; 5.3703e-14]
A_DH is undefined
Which line is the error occurring on? Please provide a traceback of the error.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by