Matlab - podeis ayudarme con este error?

 
Vista:

podeis ayudarme con este error?

Publicado por dssss (1 intervención) el 23/02/2009 13:58:27
hola a todos tengo un problemilla con un ejercicio,

el enunciado de este es:

Suponiendo que s = a+bj y donde a puede tomar valores enteros entre -15 y 0 y b entre -2 y 2. Realizar el programa necesario para calcular la matriz s de 16 x 5, que contenga los valores calculados.

la propuesta de resolucion que yo dio es :

for a = -15 : 0
for b = -2 : 2
x(a,b) = a+(b*1i);
end
end

a lo cual el programa me responde lo siguiente:

??? Attempted to access (-15,-2); index must be a positive
integer or logical.

Error in ==> ej4 at 3
X(a,b) = a+(b*1i);

uso la version 7.7 de matlab, podeis darme una explicacion de porque me da este error y como lo puedo solucionar por favor ?

muchas gracias a todos y un saludo
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:podeis ayudarme con este error?

Publicado por Kike (304 intervenciones) el 23/02/2009 17:03:55
Lo que dice el error es que trataste de asignar un valor a la posición (-15,-2) de la matriz x, es decir que le dijiste a Matlab que tu matriz tiene una fila -15 y una columna -2, cosa que es imposible dado que las matrices tienen índices positivos.

Debería ser así:

x = [ ]; % matriz vacía

% los índices de x deben iniciar en (1,1) y finalizar en (16,5)
for a = -15 : 0
for b = -2 : 2
x(16+a,3+b) = a+(b*i); % no es necesario escribir 1*i
end
end
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:podeis ayudarme con este error?

Publicado por Angel (75 intervenciones) el 25/02/2009 11:02:52
no, el problema radica en la definición de las iteraciones del for, tu quieres ir desde -15 a 0 y de -2 a 2, para matlab el paso por referencia es 1 por lo que no llega al fin

inicio:paso:fin

tu deberías poner
for a=-15:-1:0
y
for b=-2:-1:2
de este modo se te ba el error
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