Este documento describe cómo representar gráficamente datos discretos tridimensionales en Matlab. Explica que se pueden importar los datos como vectores de temperatura, presión y conversión y generar una malla triangular utilizando la herramienta de triangulación de Delaunay. Luego, la superficie puede representarse usando el comando trisurf junto con los vectores de datos y la malla triangular generada. También menciona otras formas de representación como scatter3 y stem3 para puntos individuales o plot3 para unirlos.
1. Javier Hipólito Marsal
Estudiante de Ingeniería Química – Universidad Alicante.
09/06/2016
Contacto: javier_hm@msn.com
Representación en 3D de datos discretos en matlab.
Imaginemos que se tienen datos discretos de 3 variables. X e Y son las variables
independientes y Z es el valor que toma la función para los valores definidos de X e Y.
Figura 1. Pequeña muestra de datos discretos. Dada una temperatura y presión se conoce la
conversión.
Temperatura
(K) Presión (Kpa) Conversión
200 5066 31,94
200 8105 54,43
210 5066 32,55
210 8105 55,23
220 5066 32,93
220 8105 55,73
Utilizando la herramienta matlab se importar cada columna como un vector o bien se
introducen los datos. Quedando los vectores T, P y X correspondientes a temperatura, presión
y conversión.
El comando surf(X,Y,Z) no se puede utilizar directamente porque necesita que Z,
correspondiente a los valores de la salida de la función, tenga estructura de matriz. El
razonamiento es el siguiente: Dada una función Z = f(X,Y) se calcula en cada punto el valor de
Z quedando disposición de matriz. Por ejemplo:
Z = 5.*X^2 + Y.^2
Sin embargo, si no se dispone de ecuación analítica existen alternativas para la representación
de los datos:
Superficie a partir de datos discretos
Se puede utilizar el concepto topológico de la triangulación de Delaunay, consiste en generar
una red de triángulos cuyas circunferencias circunscritas no contienen el vértice de otro
triángulo.
2. En la práctica usando la herramienta matlab es sencillo, se genera una red tal que así:
tri = delaunay(X,Y)
Siendo X e Y los vectores de las variables independientes y Tri la malla que se genera.
Finalmente se obtiene la malla usando los vectores y la matriz:
trisurf(tri,X,Y,Z)
Que en el ejemplo de la tabla daría esta gráfica.
Figura 1. Superficie con valores de conversión para distintas combinaciones de presión y
temperatura.
Otras representaciones
Mencionar que existen otras alternativas.
Representaciones punto a punto
scatter3(X,Y,Z)
3. stem3(X,Y,Z)
Figura 2. Conversión frente a P y T usando el comando scatter.
Incluso se podrían unir los puntos con el siguiente comando, que sería indicado para
aplicaciones como un trazado helicoidal.
plot3(X,Y,Z)
Figura 3. Trazado helicoidal. Figura disponible en la página del desarrollador.