Matlab - agregar filas

   
Vista:

agregar filas

Publicado por Javi (4 intervenciones) el 24/05/2009 02:12:55
alguien me puede decir, porque este proogramilla que va creando matrices de tres dimensiones y que va agregando filas nunca pasa de la dimension (5,x,x) por muchos bucles que le mande hacer

RT(1,:,1)=[1,0,0,0,0,1]; %dato de entrada
e=1;
for j=1:7
for k=1:e
m=1;
if RT(k,2,j)~=0;
RT(m,:,j+1)=[0,0,1,0,0,0];
m=m+1;
end
if RT(k,3,j)~=0;
RT(m,:,j+1)=[0,0,-1,1,0,0];
m=m+1;
RT(m,:,j+1)=[0,1,-1,0,0,0];
m=m+1;
RT(m,:,j+1)=[0,0,1,0,0,0];
m=m+1;
end
if RT(k,4,j)~=0;
RT(m,:,j+1)=[0,1,1,-1,0,0];
m=m+1;
RT(m,:,j+1)=[0,0,1,0,0,0];
m=m+1;
end
if RT(k,5,j)~=0;
RT(m,:,j+1)=[0,0,0,0,-1,1];
m=m+1;
end
if RT(k,6,j)~=0;
RT(m,:,j+1)=[0,1,0,0,1,-1];
m=m+1;
end

end
end

Se que puede ser un poco lioso de entender ahora mismo lo que hace, para mi tiene un sentido, pero no consigo que m pase de 6, es decir que añada mas de 5 filas en la matriz RT(5,6,j) por muchos j que de, cuando por logica deberia crecer indefinidamente, pero parece que llega un momento en que no le apetece hacer mas if's. En serio no encuentro razon logica alguien puede ayudarme???
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:agregar filas

Publicado por Floppy (8 intervenciones) el 24/05/2009 13:06:14
Hola, lo único que se me ocurre es que alguna de las condiciones no es correcta. He probado a cambiar una de ellas, modificando los todos los índices por 1, y m finalmente alcanza el valor de 9. Seguramente hay un 0 donde no debe haberlo. Espero que te sirva de algo...

RT(1,:,1)=[1,0,0,0,0,1]; %dato de entrada
e=1;
for j=1:7
for k=1:e
m=1;
if RT(k,2,j)~=0;
RT(m,:,j+1)=[1,1,1,1,1,1]; % Condición cambiada
m=m+1;
end
if RT(k,3,j)~=0;
RT(m,:,j+1)=[0,0,-1,1,0,0];
m=m+1;
RT(m,:,j+1)=[0,1,-1,0,0,0];
m=m+1;
RT(m,:,j+1)=[0,0,1,0,0,0];
m=m+1;
end
if RT(k,4,j)~=0;
RT(m,:,j+1)=[0,1,1,-1,0,0];
m=m+1;
RT(m,:,j+1)=[0,0,1,0,0,0];
m=m+1;
end
if RT(k,5,j)~=0;
RT(m,:,j+1)=[0,0,0,0,-1,1];
m=m+1;
end
if RT(k,6,j)~=0;
RT(m,:,j+1)=[0,1,0,0,1,-1];
m=m+1;
end

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