?? Error using ==> mrdivide Matrix dimensions must agree.
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuesta aceptada
Sven
el 29 de Nov. de 2011
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)
Más respuestas (1)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!