Matlab - Ordenacion y relleno de huecos en una matriz

 
Vista:

Ordenacion y relleno de huecos en una matriz

Publicado por Enrique (2 intervenciones) el 05/10/2015 03:16:52
Hola,
Tengo una matriz en cuya primera columna se encuentra el día del mes de enero y en la segunda columna un valor de temperatura. La cuestión es que en esa matriz hay días que faltan y lo que me interesa sería tener otra matriz en la que estuvieran todos los días de enero y con los valores de temperatura para los días que tenga datos y con el valor NaN si no tengo esos datos.
>> x=[2 4 5 10 12 22 21;15 12 11 8 22 14 11]'
x =
2 15
4 12
5 11
10 8
12 22
22 14
21 11
He intentado con haciendo una matriz con todos los días enero en una columna , enero=(1:1:31)' y comparándola con la función find, pero no he dado con la solución ya que me he perdido con los bucles
Muchas gracias por adelantado
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ordenacion y relleno de huecos en una matriz

Publicado por Royeth (1818 intervenciones) el 05/10/2015 04:25:53
Aquí te ofrezco una solución si usar ciclos para que sea más rápido
1
2
3
a=repmat(nan,1,31);
x=[2 4 5 10 12 22 21;15 12 11 8 22 14 11]';
a(x(:,1))=x(:,2)



Saludos
https://www.facebook.com/royethmatlab/
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

Ordenacion y relleno de huecos en una matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/10/2015 23:41:50
1
2
3
4
5
6
7
8
9
10
11
12
clear all
clc
x=[2 4 5 10 12 22 21;15 12 11 8 22 14 11]';
D=NaN(31,2);
D(:,1)=1:31';
for i=1:size(x,1)
   a= find(x(i,1)==D(:,1));
   if a~=0
    D(a,2)=x(i,2);
   end
end
D





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
>> matriz_enero
 
D =
 
     1   NaN
     2    15
     3   NaN
     4    12
     5    11
     6   NaN
     7   NaN
     8   NaN
     9   NaN
    10     8
    11   NaN
    12    22
    13   NaN
    14   NaN
    15   NaN
    16   NaN
    17   NaN
    18   NaN
    19   NaN
    20   NaN
    21    11
    22    14
    23   NaN
    24   NaN
    25   NaN
    26   NaN
    27   NaN
    28   NaN
    29   NaN
    30   NaN
    31   NaN










Saludos
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación matlab
[email protected]
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación. Toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
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

Ordenacion y relleno de huecos en una matriz

Publicado por Enrique (2 intervenciones) el 06/10/2015 00:16:24
Muchas gracias por vuestras respuesta me habeis ayudado perfectamente. Royeth tu solución es rapida y sencilla y Jose tu respuesta me ha ayudado mucho a entender los bucles y funciona perfectamente.

Muchas gracias por vuestro tiempo
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

Ordenacion y relleno de huecos en una matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/10/2015 00:39:15
Tu pregunta dice que quieres hacer con bucle, por lo tanto te he contestado en forma de bucle. También se puede hacer en forma vectorizada. Todo depende de que es lo quieres aprender con tu pregunta.
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