Matlab - Graficar temperatura con "contour" - MATLAB

 
Vista:
sin imagen de perfil

Graficar temperatura con "contour" - MATLAB

Publicado por Leonardo (14 intervenciones) el 13/12/2013 16:53:24
Buen día, me gustaría saber como puedo utilizar contour o contour f para graficar la temperatura en todos los puntos de un cuarto, ya tengo los valores asociados a la posición (x, y), pero al momento de ingresar los valores de temperatura me muestra el error "Z must be size 2x2 or greater."... 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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Graficar temperatura con "contour" - MATLAB

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/12/2013 17:26:42
una solución rápida es viendo tu código. Alli se debe notar el error y donde se tiene que modificar.
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leonardo (14 intervenciones) el 13/12/2013 17:42:17
El código es el siguiente

pos_known=[1 1;1 6;5 1;5 6];

val_known=[24 23 22 20]';
x=[0:.1:6];
y=[0:.1:7];
[xx,yy]=meshgrid(x,y);
pos_est=[xx(:) yy(:)];
V='1 Sph(7)';

[d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V);
subplot(1,3,1);
figure(1)
scatter(pos_est(:,1),pos_est(:,2),10,d_est)
axis image;
title('Kriging mean')

subplot(1,3,2);
%figure(2)
scatter(pos_est(:,1),pos_est(:,2),10,d_var)
axis image;
title('Kriging variance')

%figure(3)
subplot(1,3,3);
mat = vec2mat(d_est,61)%se hace para que queden matrices del mismo tamaño
z=mat;
contourf(xx,yy,z); %ya solucioné el problema del tamaño de las matrices


ME GUSTARÍA PODER MOSTRAR ALGO COMO LA FIGURA ADJUNTA (EN EL supblot (1,3,3))
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leonardo (14 intervenciones) el 13/12/2013 17:47:07
Si, parto de dos matrices cortas y genero un par de gráficas basadas en Kriging, despues quiero hacer uso de contour en el subplot (1,3,3) partiendo de la estimación de temperatura hecha con kriging y los datos asociados a la posición en X y Y, pero no he podido graficar la última parte
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

Graficar temperatura con "contour" - MATLAB

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/12/2013 17:48:59
Tu haz hecho el código, o alguien te ha dado el código o haz copiado de algún libro el código?
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leonardo (14 intervenciones) el 13/12/2013 17:50:36
Las he ido adaptando de acuerdo a la información que encuentro en la web, las dos primeras me entregan lo que necesito, paro la tercera gráfica no lo hace, adjunto las dos primeras
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

Graficar temperatura con "contour" - MATLAB

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/12/2013 17:54:13
digita en la ventana de comandos de matlab y mira que sale
>>help gstat_krig
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leandro (14 intervenciones) el 13/12/2013 18:02:44
El ejemplo 3 hace lo mismo que he hecho en las gráficas 1 y 2 del subplot, pero la gráfica 3 no se asemeja a ninguno de dichos ejemplos, en esa es que he tenido problemas, en los mensajes anteriores adjunté las figuras en las que se puede observar lo que digo de las gráficas 1 y 2... esas dos ya no son problema, adjunto de nuevo la gráfica que quiero hacer y aún no puedo..
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leandro (14 intervenciones) el 13/12/2013 18:52:26
Salen ejemplos del uso de gstat, sin embargo ninguno de ellos me ha sido útil para hacer la tercera gráfica, el ejemplo número 3 del help asociado a gstat es la base de mi ejercicio, pero ninguno de los 4 ejemplos que muestra dicho help me ha servido para hacer la tercera gráfica
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Graficar temperatura con "contour" - MATLAB

Publicado por Dave (1094 intervenciones) el 13/12/2013 19:12:49
Leonardo;

Verifica, la dimensión de tu variable de salida del kriging, si es un vector, podrías visualizar tus resultados con scatter

1
scatter(Lon,Lat,30,Temp,'Filled')

o si es una matriz lo podrías hacer con

1
pcolor(Lon,Lat,Temp)

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.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
sin imagen de perfil

Graficar temperatura con "contour" - MATLAB

Publicado por Leandro (14 intervenciones) el 13/12/2013 19:32:47
Hola Dave, estoy utilizando matrices de 71*61, ya tienen las mismas medidas, pero obtengo la figura adjunta, ¿alguna idea?. El código es el siguiente

pos_known=[1 1;1 6;5 1;5 6];

val_known=[24 23 22 20]';
x=[0:.1:6];
y=[0:.1:7];
[xx,yy]=meshgrid(x,y);
pos_est=[xx(:) yy(:)];

[d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V);

subplot(1,7,3);
mat = vec2mat(d_est,61)%se hace para que queden matrices del mismo tamaño
z=mat;
pcolor(xx,yy,z);
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Graficar temperatura con "contour" - MATLAB. LA SOLUCIÓN

Publicado por Dave (1094 intervenciones) el 13/12/2013 20:53:48
Leonardo;

Acabo de ejecutar tu código y el problema surge con el redimensionamiento del vector a matriz.

Considera el siguiente cambio y obtendrás la imagen correcta.

1
2
3
4
5
6
7
 %figure(3)
 subplot(1,3,3);
 mat = vec2mat(d_est,71)%se hace para que queden matrices del mismo tamaño
 z=mat';
 contourf(xx,yy,z); %ya solucioné el problema del tamaño de las matrices
 axis image
 title('Kriging Variable')



Espero que sea de alguna ayuda.

PD: Si conoces a alguna persona que requiera de mis servicios de programación, por favor proporciónale mi información de contacto.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.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
sin imagen de perfil

Graficar temperatura con "contour" - MATLAB. LA SOLUCIÓN

Publicado por Leandro (14 intervenciones) el 13/12/2013 21:01:12
Hola Dave, muchas gracias por la ayuda, la verdad esa no era la gráfica que quería generar, es prácticamente igual a las que ya había generado, adjunto nuevamente la gráfica que me gustaría generar. He estado intentando hacer uso del código que me pasó José Jeremias :

a = magic(4);
image(a);
map = hsv(16);
colormap(map)
colorbar

He tratado de adaptar a mis necesidades dicho código pero no logro hacerlo...
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Graficar temperatura con "contour" - MATLAB. LA SOLUCIÓN

Publicado por Dave (1094 intervenciones) el 13/12/2013 21:10:31
Hola Leonardo;

Te adjunto un nuevo segmento de código:
1
2
3
4
5
6
7
8
9
10
11
12
13
 %figure(3)
 subplot(1,3,3);
 mat = vec2mat(d_est,71)%se hace para que queden matrices del mismo tamaño
 z=mat';
 pcolor(xx,yy,z); %ya solucioné el problema del tamaño de las matrices
 shading flat
 hold on
 plot(pos_known(:,1),pos_known(:,2),'.k')
 axis image
 title('Kriging Variable')
 view(2)
 colorbar



He agregado las coordenadas de los puntos iniciales

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.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
sin imagen de perfil

Graficar temperatura con "contour" - MATLAB. LA SOLUCIÓN

Publicado por Leandro (14 intervenciones) el 13/12/2013 22:21:04
Gracias, aunque aún no consigo la gráfica exacta que busco, ha sido de mucha 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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Graficar temperatura con "contour" - MATLAB. LA SOLUCIÓN

Publicado por Dave (1094 intervenciones) el 13/12/2013 23:59:20
Hola Leandro;

Espero haber contribuido en algo, lo de tu grafica, espero que al final logres crear la imagen que deseas, de hecho que en el Foro encontrarás ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.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
sin imagen de perfil

Graficar temperatura con "contour" - MATLAB

Publicado por Leandro (14 intervenciones) el 14/12/2013 00:31:55
La gráfica 3 me serviría mucho José Jeremias, ¿podría pasarme el enlace de la página en la que lo hacen?, no logro hallar dicho enlace con la url de la gráfica
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

Graficar temperatura con "contour" - MATLAB

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/12/2013 02:08:59
Tuve que buscar el toolbox para poder ejecutar tu programa original. Por eso preguntaba, si era todo el código y al parecer no me entendias.


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
%http://sourceforge.net/projects/mgstat/files/mGstat/
%%mGstat : A Geostatistical Matlab toolbox
pos_known=[1 1;1 6;5 1;5 6];
val_known=[24 23 22 20]';
 x=0:.1:6;
 y=0:.1:7;
 [xx,yy]=meshgrid(x,y);
 pos_est=[xx(:) yy(:)];
   V=deformat_variogram('1 Sph(1)');

 [d_est,d_var]=gstat_krig(pos_known,val_known,pos_est,V);

 figure(1)
 subplot(1,3,1);
 scatter(pos_est(:,1),pos_est(:,2),10,d_est)
 axis image;
 title('Kriging mean')

 subplot(1,3,2);
 %figure(2)
 scatter(pos_est(:,1),pos_est(:,2),10,d_var)
 axis image;
 title('Kriging variance')

 %figure(3)
 subplot(1,3,3);
 mat = vec2mat(d_est,length(x));%se hace para que queden matrices del mismo tamaño
 z=mat;
 
                                                                              
 contour3(xx,yy,z,600)
 colormap(jet(9))
 colorbar
 view(0,0)
  hold off


1
2
>> grafica_de_temperatura
Trying to run GSTAT on gstat.cmd
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leandro (14 intervenciones) el 16/12/2013 17:16:18
Muchisimas gracias a ambos, con su ayuda he podido obtener muy buenos resultados
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leandro (14 intervenciones) el 16/12/2013 22:45:46
Estimar la temperatura en todos los puntos de cuartos limpios basándose en kriging
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

Graficar temperatura con "contour" - MATLAB

Publicado por Leandro (14 intervenciones) el 17/12/2013 20:00:02
Aun debo añadir una sección en la cual pueda ingresar los puntos en X y Y para hallar la temperatura estimada con base en kriging.... ¿alguna idea?, es decir, los datos de temperatura estimada ya los tiene kriging en la variable "d_est", me gustaría darle la posición en "x" y la posición en "y" para obtener dicha temperatura en el punto indicado
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Graficar temperatura con "contour" - MATLAB

Publicado por Dave (1094 intervenciones) el 13/12/2013 18:48:36
Hola Leonardo;

Coincidencias de la vida, ayer justamente termine de hacer un trabajo con el toolbox de mGstat.

De acuerdo a los ejemplos del toolbox, las salidas están en forma de vector y final los visualizan con la función scatter o de lo contrario tendrías que re-ordenarlas a una matriz y recien podrías visualizarlas con surf o pcolor, pero ten en cuenta las dimensiones de la matriz o el orden, tanto las matrices de latitud, longitud y variable sean de mxn dimensiones.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.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