08.11.2014 Views

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Aprenda</strong> <strong>Matlab</strong> <strong>6.1</strong> como si estuviera en Primero página 102<br />

8.1.1. DIBUJO DE LÍNEAS: FUNCIÓN PLOT3<br />

La función plot3 es análoga a su homóloga bidimensional plot. Su forma más sencilla es la<br />

siguiente:<br />

>> plot3(x,y,z)<br />

que dibuja una línea que une los puntos (x(1), y(1), z(1)), (x(2), y(2), z(2)), etc. y la proyecta sobre<br />

un plano para po<strong>de</strong>rla representar en la pantalla. Al igual que en el caso plano, se pue<strong>de</strong> incluir una<br />

ca<strong>de</strong>na <strong>de</strong> 1, 2 ó 3 caracteres para <strong>de</strong>terminar el color, los markers, y el tipo <strong>de</strong> línea:<br />

>> plot3(x,y,z,s)<br />

También se pue<strong>de</strong>n utilizar tres matrices X, Y y Z <strong>de</strong>l mismo tamaño:<br />

>> plot3(X,Y,Z)<br />

en cuyo caso se dibujan tantas líneas como columnas tienen estas 3 matrices, cada una <strong>de</strong> las cuales<br />

está <strong>de</strong>finida por las 3 columnas homólogas <strong>de</strong> dichas matrices.<br />

A continuación se va a realizar un ejemplo sencillo consistente en dibujar un cubo. Para ello<br />

se creará un fichero llamado cubo.m que contenga las aristas correspondientes, <strong>de</strong>finidas mediante<br />

los vértices <strong>de</strong>l cubo como una línea poligonal continua (obsérvese que algunas aristas se dibujan<br />

dos veces). El fichero cubo.m <strong>de</strong>fine una matriz A cuyas columnas son las coor<strong>de</strong>nadas <strong>de</strong> los<br />

vértices, y cuyas filas son las coor<strong>de</strong>nadas x, y y z <strong>de</strong> los mismos:<br />

A=[0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0<br />

0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1<br />

0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0];<br />

Ahora basta ejecutar los comandos siguientes (el trasponer los vectores en este caso es<br />

opcional):<br />

>> cubo;<br />

>> plot3(A(1,:)',A(2,:)',A(3,:)')<br />

8.1.2. DIBUJO DE MALLADOS: FUNCIONES MESHGRID, MESH Y SURF<br />

Ahora se verá con <strong>de</strong>talle cómo se pue<strong>de</strong> dibujar una función <strong>de</strong> dos variables (z=f(x,y)) sobre un<br />

dominio rectangular. Se verá que también se pue<strong>de</strong>n dibujar los elementos <strong>de</strong> una matriz como<br />

función <strong>de</strong> los dos índices.<br />

Sean x e y dos vectores que contienen las coor<strong>de</strong>nadas en una y otra dirección <strong>de</strong> la retícula<br />

(grid) sobre la que se va a dibujar la función. Después hay que crear dos matrices X (cuyas filas son<br />

copias <strong>de</strong> x) e Y (cuyas columnas son copias <strong>de</strong> y). Estas matrices se crean con la función<br />

meshgrid. Estas matrices representan respectivamente las coor<strong>de</strong>nadas x e y <strong>de</strong> todos los puntos <strong>de</strong><br />

la retícula. La matriz <strong>de</strong> valores Z se calcula a partir <strong>de</strong> las matrices <strong>de</strong> coor<strong>de</strong>nadas X e Y.<br />

Finalmente hay que dibujar esta matriz Z con la función mesh, cuyos elementos son función<br />

elemento a elemento <strong>de</strong> los elementos <strong>de</strong> X e Y. Véase como ejemplo el dibujo <strong>de</strong> la función<br />

sen(r)/r (siendo r=sqrt(x 2 +y 2 ); para evitar dividir por 0 se suma al <strong>de</strong>nominador el número pequeño<br />

eps). Para distinguirla <strong>de</strong> la función test3d anterior se utilizará u y v en lugar <strong>de</strong> x e y. Créese un<br />

fichero llamado sombrero.m que contenga las siguientes líneas:<br />

close all<br />

u=-8:0.5:8; v=u;<br />

[U,V]=meshgrid(u,v);<br />

R=sqrt(U.^2+V.^2)+eps;<br />

W=sin(R)./R;<br />

mesh(W)<br />

Ejecutando este fichero se obtiene el gráfico mostrado en la Figura 37.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!