Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

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

Asked by TALA MOUSSA

TALA MOUSSA (view profile)

on 29 Nov 2011
Accepted Answer by Sven

Sven (view profile)

hi , Im a beginner in using matlab , i tried several times to debug my program but the error is still the same!! can you help me please:) Thanks

clear
clear all
global kfiler d kmatrice phi kmes kcalc y s Rcmin kcalcmin Rc
kmatrice=[29.16;0;0;0;0];
kfiler=2000;
d=91e-6;
kmes = [29.16;31.51;36.33;39.9;44.3];
phi = [0 0 0 0 0;0 7.4 0 0 0;0 0 11.52 0 0; 0 0 0 18.44 0;0 0 0 0 23.88];
kcalc=kmatrice*(2*kmatrice+(kfiler/(1+2*(kfiler*Rc/d)))-2*phi*(kmatrice-(kfiler/(1+2*(kfiler*Rc/d)))))/(2*kmatrice+(kfiler/(1+2*(kfiler*Rc/d)))+phi*(kmatrice-(kfiler/(1+2*(kfiler*Rc/d)))));
y= (kmes-kcalc)^2;
s= @(Rc)sum(y);
kcalcmin = fminsearch(s,kmatrice);  
Rcmin=(kfiler/kcalcmin-1)*d/(2*kfiler);

Rcmin

0 Comments

TALA MOUSSA

TALA MOUSSA (view profile)

Tags

Products

No products are associated with this question.

2 Answers

Answer by Sven

Sven (view profile)

on 29 Nov 2011
Accepted answer

Rc is empty (it gets initialised as a global variable but nothing is assigned to it), but it's used in your calc=... calculation.

Was this intentional?

The problem here is that anything multiplied by an empty [] will return []. And any non-empty matrix divided by an empty matrix will cause an error.

The final part of your calculation:

kfiler/(1+2*(kfiler*Rc/d))

Is one such part. kfiler is not empty, but Rc (and consequently (1+2(kfiler*Rc/d))* is empty.

You'll get the same error if you type in:

100 / []

One small suggesion: break up your calculation into a few lines. Otherwise it will be a complete nightmare to debug because all error messages will point to this one huge line (which doesn't help you track them down)

1 Comment

TALA MOUSSA

TALA MOUSSA (view profile)

on 29 Nov 2011

Thanks Sven , my problem is to find a minimum of s whis is the sum of y by the least square regression. So when s is minimun i have to search the minimum value of Rc.

Sven

Sven (view profile)

Answer by Walter Roberson

Walter Roberson (view profile)

on 29 Nov 2011

Please consider the possibility that you want to use ./ ( rdivide) instead of / ( mrdivide) in your code.

1 Comment

TALA MOUSSA

TALA MOUSSA (view profile)

on 30 Nov 2011

Is anyone knows how to use the least square regression method in matlab?

Walter Roberson

Walter Roberson (view profile)

Contact us