Matlab - Ayuda error

 
Vista:

Ayuda error

Publicado por Jose Ntonio (2 intervenciones) el 16/01/2011 21:30:46
Hola estoy haciendo unas gráficas para la facultad, y la cuestion es que al hacer el script, casca en la linea 10. he intentado varias cosas como ponerl el punto antes del vector mu pero nada. lo unico que ha funcionado es quitarle el ^(-1) pero no tendria la funcion que quiero. Aqui les dejo el script:

T=300;
k=8.6e-5;
Nc=2.8e19;
Nv=1.04e19;
Ev=0;
Ec=1.124*9.11e-19;
F=linspace(-k*T,Ec+k*T);
mu=(F-Ec)/(k*T);
nndeg=Nc*exp(mu);
ntran=Nc*(0.25+exp(mu))^(-1);
ndeg=Nc*(4/(3*sqrt(pi)))*mu^(3/2);
plot (F,nndeg,ntran,ndeg);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda error

Publicado por Jorge (226 intervenciones) el 17/01/2011 00:37:55
Cuando trabajas con vectores debes añadir un punto al operador aritmético, tanto en multiplicación, como en división, como en exponenciación.

Esto es .*, ./ y .^

Este punto hace que la operación se lleve a cabo elemento por elemento. Si no lo haces se marca error, porque Matlab no reconoce esas operaciones.

No es necesario el punto si haces la operación entre un vector/matriz y una constante.

Mi sugerencia es que cambies esto:

ntran=Nc*(0.25+exp(mu))^(-1);
ndeg=Nc*(4/(3*sqrt(pi)))*mu^(3/2);

por esto:

ntran = Nc * (0.25 + exp(mu)) .^ (-1);
ndeg = Nc * (4/(3*sqrt(pi))) * mu .^ (3/2);

Es bueno dejar espacios entre términos para darle legibilidad al código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda error

Publicado por Jose Antonio (2 intervenciones) el 17/01/2011 10:26:37
ok, muchas gracias. Problema resuelto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar