Matlab - Variable cambia de tamaño en cada iteración

 
Vista:
Imágen de perfil de Kamila
Val: 12
Ha aumentado su posición en 4 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Variable cambia de tamaño en cada iteración

Publicado por Kamila (10 intervenciones) el 07/01/2019 23:33:31
Hola, muchas gracias por tu ayuda como siempre.

Tengo el siguiente caso, tengo un vector de 17545 elementos que se llama Datos_Arreglo y se busca hacer una matriz de 24 datos por columna (ya que corresponden a 24 datos por día para 2 años), y 731 columnas.

% acomodo de datos

for D = 1:731


for H = 1:24

Datos_Arreglo(H,D) = Datos(H+24*(D-1),1);

end
end


Pero al correrlo me indica que:
El tamaño de la variable o matriz indicada parece estar cambiando con cada iteración de bucle.
La variable Datos_Arreglo : The size of the indicated variable or array appears to be changing with each loop iteration. Commonly, this message appears because an array is growing by assignment or concatenation. Growing an array by assignment or concatenation can be expensive. For large arrays, MATLAB must allocate a new block of memory and copy the older array contents to the new array as it makes each assignment.


Que puedo hacer para que corregir esto.

Quedo atenta.

Muchas 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 JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Variable cambia de tamaño en cada iteración

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 08/01/2019 04:25:25
Es solo una advertencia antes del for puedes escribir :
1
Datos_Arreglo=zeros(24,731)

Y con eso defines el tamaño de tu Matriz oara que nl te salga esa advertencia
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
Imágen de perfil de Kamila
Val: 12
Ha aumentado su posición en 4 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Variable cambia de tamaño en cada iteración

Publicado por Kamila (10 intervenciones) el 09/01/2019 23:03:26
Hola, muchas gracias.

Ya incluí esa línea y ya no me sale esa advertencia.

Pero ahora me indica:
Attempted to access Datos(25,1); index out of bounds because size(Datos)=[24,731].

O sino que la variable Datos es indefinida:

Undefined function or variable 'Datos'.

Error in Acomodo1617V1 (line 10)
Datos_Arreglo(H,D) = Datos(H+24*(D-1),1);

A pesar de que básicamente estoy creando la Variable *Datos* a partir de Datos_Arreglo que sí existe y es un vector de 17545 datos.

Me puedes dar alguna recomendación.

Nuevamente muchas gracias por toda la ayuda.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Variable cambia de tamaño en cada iteración

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/01/2019 00:13:55
1
2
3
4
5
6
7
8
clear
Datos_Arreglo=rand(17545,1);
Datos=zeros(14,731);
for D = 1:731
for H = 1:24
Datos(H,D) = Datos_Arreglo(H+24*(D-1),1);
end
end


1
2
3
4
5
6
7
8
>> matriz1
>> whos
  Name                   Size                    Bytes  Class     Attributes
 
  D                      1x1                         8  double
  Datos                 24x731                  140352  double
  Datos_Arreglo      17545x17545            2462616200  double
  H                      1x1                         8  double
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
Imágen de perfil de Kamila
Val: 12
Ha aumentado su posición en 4 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Variable cambia de tamaño en cada iteración

Publicado por Kamila (10 intervenciones) el 10/01/2019 01:14:52
Muchas gracias Jeremías y David.

Ya me corre excelente.

Muchos saludos!!!
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