Matlab - Bucle for para generar una lista de dos listas

 
Vista:
sin imagen de perfil

Bucle for para generar una lista de dos listas

Publicado por Jose Luis (1 intervención) el 23/08/2014 00:49:45
Buen día, les escribo por que yo soy nuevo en esto y estoy haciendo un código que me permita obtener una series de números determinados por unas listas "w" y "z". Este es el código que estoy utilizando, quisiera obtener en b los números de w(1):z(1);w(2):z(2) y asi hasta w(55):z(5).

w = 1:122:6711;
z = 62:122:6711;
for j = 1:55
b(j) = (w(j):z(j));
end

Sin embargo me sale este error "In an assignment A(I) = B, the number of elements in B and I must be the same."

Por favor si me podrían ayudar se los agradecería mucho. Gracias
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
Imágen de perfil de Jorge De Los Santos
Val: 30
Ha disminuido su posición en 12 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Bucle for para generar una lista de dos listas

Publicado por Jorge De Los Santos (213 intervenciones) el 23/08/2014 05:02:44
Hola José Luis.

El problema está en que intentas guardar un vector de n elementos dentro de una sóla posición en otro vector, lo cual produce el error que te muestra. Hay dos posibles soluciones para vuestro caso, a saber:

1) Hacer la asignación de la siguiente forma:

1
2
3
4
5
w = 1:122:6711;
z = 62:122:6711;
for j = 1:55
    b(j,:) = (w(j):z(j));
end


Donde "b" resultaría en una matriz de 55x62, es decir cada fila contiene los datos correspondientes a cada iteración.



2) Utilizar un cell array:

1
2
3
4
5
w = 1:122:6711;
z = 62:122:6711;
for j = 1:55
    b{j} = (w(j):z(j));
end


La ventaja que te ofrece el cell array es que puedes guardar datos de diversos tipos y dimensiones en cada posición.




Saludos.

Jorge De Los Santos.
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
sin imagen de perfil

Bucle for para generar una lista de dos listas

Publicado por carlos (4 intervenciones) el 28/08/2014 21:49:50
tu proble suces porque (w(j):z(j)); tiene una fila y 62 columnas y b no tiene tamaño alguno lo que debes hacer es definir el tamaño de b antes del bucle:

1
2
3
4
5
6
w = 1:122:6711;
z = 62:122:6711;
b=zeros(55,62)
for j = 1:55
b(j,:) = (w(1,j):z(1,j));
end

ya funciona
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