http://www.lawebdelprogramador.com/foros/Matlab/1339511-Generar_matriz_de_seguimiento_de_bucle_anidado_for.html
Mensajes realizados anteriormente (No estaban la última vez que entraste)Generar matriz de seguimiento de bucle anidado for
esm (30/06/2012 20:53:14)
1.762 visitas
3 respuestas
Generar matriz de seguimiento de bucle anidado for
esm (30/06/2012 22:28:04)
Generar matriz de seguimiento de bucle anidado for
JOSE JEREMIAS CABALLERO (30/06/2012 22:33:02)
Generar matriz de seguimiento de bucle anidado for
esm (01/07/2012 12:52:03)
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:Generar matriz de seguimiento de bucle anidado for
Autor:esm (8 intervenciones)
Fecha:30/06/2012 20:53:14
Buenas tardes, planteo la sigiuente pregunta a ver si alguien me puede ayudar:

Estas líneas de comando forman parte de un programa que permite determinar, en función de la cota (valor Z) proporcionada como dato, los correspondientes valores de X e Y para coordendas UTM, sabiendo que la cota ha sido obtenida para un mallado cuadricular de 100 m.

La matriz Z obtenida como dato esta constituida por 510 filas (Referidas a variaciones de Y) y 500 columnas (Referidas a las variaciones de X) en intervalos de 100 m. Toda la obtención de datos ha sido realizada a través de una entrada por archivo .dat de la matriz COTAS y dos bucles for anidados, tal como se muestra:

%Creacion de coordenadas X, Y y Z para todos los puntos del fichero:

x0=415900;
y0=3066900;
coor=zeros(255000,3);
for i=1:510
y(i)=y0+(i*100);
for j=1:500
x(j)=x0+(j*100);
yy(j)=y(i);
z(j)=cotas(i,j);
end
end

El problema aparece a la hora de crear una matriz que me permita almacenar la coordenada X correspondiente a la iteración i en la posición j, y lo mismo con "y" y "z" constituida esta por 255000 filas (510*500 pixel de resolución de la imagen) y 3 columnas (Correspondientes a X, Y y Z). He tratado de resolverlo con un

%coordenadas(i)=[x(j) yy(j) z(j)]; pero me dice que las dimensiones de i y j son diferentes

Estaría muy agradecido si alguien me pudiese ayudar pues estoy trabado en un paso que a priori parece sencillo pero vamos ... que llevo ya 3 dias y no avanzo! Gracias
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Generar matriz de seguimiento de bucle anidado for
Autor:esm (8 intervenciones)
Fecha:30/06/2012 22:28:04
Por si no me he explicado muy bien, lo que quiero obtener es una matriz en la que aparezca los resultados de X, Y y Z para cada iteración, es decir, para la iteración i=1 voy a obtener 500 valores de X, Y y Z (Dado que j=500). Por tanto, la matriz resultante tendrá que disponer de disponer de los 500 resultados para cada variable en las 510 iteraciones.

Un saludo
imágen de perfil
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Generar matriz de seguimiento de bucle anidado for
Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2414 intervenciones)
Fecha:30/06/2012 22:33:02
Tu pregunta nose entiende.
Porque no pones un ejemplo muy concreto con pocos elementos y lo desarrollas manualmente, sin usar matlab, para poder comprender mejor tu pregunta.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Generar matriz de seguimiento de bucle anidado for
Autor:esm (8 intervenciones)
Fecha:01/07/2012 12:52:03
Bien, dispongo de una matriz de 510 filas y 500 columnas a la que he denominado "cotas". Esta matriz de cotas se obtienen para un valor de X y un valor de Y que oscila en intervalos de 100 uds. Una fila representa las variaciones de X manteniendo constante la Y y en consecuencia, una columna representa una variación de Y para una X constante.

Lo que quiero determinar, conociendo los valores iniciales de X0 e Y0 es una matriz a la que le llamo "coordenadas" la cual dispone de cada punto de coordenadas (510*500) filas y 3 columnas, donde se representa el valor de X, Y y Z para cada punto.

El código desarrollado anteriormente hace lo siguiente:

para la iteración i=1 determina el valor de Y en función del valor de Y0 (Es decir, empezamos la iteración en la fila 1 donde Y se mantiene constante). A continuación entramos en el segundo bucle for y calculamos los valores de X y de Z para cada iteración j. Por tanto:

Para i=1 se obtiene y=3067000. Entra en el segundo bucle y determina para j=1 (dado que i=cte=1) el valor de X, siendo X=416000 y Z=al valor existente en la fila 1 y columna 1 del fichero de entrada "cotas". Esta iteración se repite desde j=1:500 y aquí es donde aparece el problema. En estos momentos quiero almacenar en una matriz "coordenadas" los 500 valores de X, Y y Z para i=1 y realizar este proceso hasta i=510. De esta forma, por cada i obtenemos 500 valores de X, Y y Z que quiero almacenar en una matriz. Para esto, terminado el segundo bucle for he aplicado la sigiuente ecuación:

coordendas(i)=[x(j) yy(j) z(j)];

Sin embargo, esto me plantea problemas dado que el matlab reconoce exclusivamente un valor para i de j, mientars que yo tengo 500 valores de j para i=1. Me gustaría me pudiesen ayudar a construir esta matriz de forma que me sea capaz de almacenar los 500 valores en cada iteración, por lo que, como se dijo anteriormente, obtendré (500*510) filas (500 valores para x=cte y 510 valores para y=cte)