Kitabı oku: «Modelamiento y simulación de sistemas con Simulink», sayfa 4

Yazı tipi:

1.6.2 Opciones de salida

La función disp muestra el valor de las variables omitiendo la figuración del nombre de las variables; se utiliza para representar no sólo letras sino también números, como se demuestra en el siguiente ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo 3 x =1:5; % <enter > Creación del vector x

4 disp (x) % <enter > Uso de la función disp

5 disp ( ' Los valores de la matriz x son: ' ) % <enter > disp

6 disp ( ' Los valores de la matriz x son: ' ); disp (x) % <enter > disp

7 disp ([ ' Los valores en el arreglo x son: ' , num2str (x)]); % <enter > disp

8 disp ( ' El símbolo del apóstrofe ( ' ' ) es usado al inicio y final en cadenas en Matlab ' ) % <enter > disp

9 A1 = [15 150 15]; % <enter > Creación del vector A1

10 S1 = ‘ Hola Mundo ‘ ; % <enter > Creación de cadena

11 disp (A1) % <enter > disp

12 disp (S1) % <enter > disp

13 X = ' <a href =” https :// www.mathworks.com”> MathWorks Web Site </a> ' % <enter >

14 disp (X) % <enter > disp

15 X2 = rand (6 ,3); % <enter > Matriz aleatoria

16 disp ( ' Test1 Test2 Test3 ' ) % <enter > disp

17 disp (X2) % <enter > disp

A diferencia de la función disp, la función fprintf es un poco más elaborada ya que permite trabajar tanto con números como con textos al mismo tiempo; esto se aprecia en el siguiente ejemplo demostrativo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 vacas = 5 % <enter > Asignación de valor a variable

4 fprintf ( ' Hay %8.2f vacas en el pastizal \n ' , vacas ) % <enter > fprintf

5 voltage = 3.5 % <enter > Asignación de valor a variable

6 fprintf ( ' El voltage es %8.4f voltios \n ' , voltage ) % <enter > fprintf

7 A1 = [9.9 , 9900]; % <enter > Creación del vector A1

8 A2 = [8.8 , 7.7 ; 8800 , 7700]; % <enter > Creación del vector A2

9 X1 = ' X es %4.2f metros o %8.3f mm\n ' ; % <enter > Creación del vector X1

10 fprintf (X1 ,A1 ,A2) % <enter > fprintf

11 a1 = [1.05 3.04 5.06 7.02 7.09 8.45]; % <enter > Creación del vector a1

12 fprintf ( ' %d\n ' ,round (a1)); % <enter > fprintf

1.7 GRÁFICOS

Los gráficos ayudan de manera significativa a la interpretación de resultados en la resolución de problemas; permitiendo visualizar tendencias, así como identificar posibles errores de cálculo. Matlab cuenta con una gran variedad de funciones que ayudan al usuario a establecer un gráfico desde el más simple hasta el más sofisticado.

1.7.1 Función plot

En el siguiente ejemplo se muestra la manera como al utilizar la función plot se define y genera la presentación del gráfico de la figura 1.6:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 close all % <enter > Limpieza de figuras abiertas

4 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

5 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

6 x1 = 0:0.1:10 % <enter > Creación del vector x1

7 y1 = sin(x1)+cos(x1) % <enter > Creación del vector y1

8 plot (x1 ,y1) % <enter > Trazo mediante la función plot

Figura 1.6. Creación de figura mediante la función plot

1.7.2 Título, etiquetas y cuadrícula

A continuación, se le añade al gráfico anterior un título mediante la función title, rótulos en los ejes mediante el uso de las funciones xlabel y ylabel, y una cuadrícula mediante la función grid; la nueva presentación del gráfico se muestra en la figura 1.7:

1 title ( ' Tiempo vs Desplazamiento ' ) % <enter > Título del gráfico

2 xlabel ( ' Tiempo , segundos ' ) % <enter > Etiqueta en el eje x

3 ylabel ( ' Desplazamiento , metros ' ) % <enter > Etiqueta en el eje y

4 grid on % <enter > Inserción de rejilla en el gráfico

5 ax = gca % <enter >

6 ax.GridAlpha = 0.40 % <enter > Oscurecimiento de cuadrículas

7 grid minor % <enter > Muestra de cuadrículas principales y menores

Figura 1.7. Adición de rótulos en los ejes, título y cuadrículas

1.7.3 Función hold on

Se utiliza la función hold on con la finalidad de crear figuras que contengan más de un trazo; ejemplo de ello se presenta a continuación y el resultado se visualiza en la figura 1.8:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 close all % <enter > Limpieza de figuras abiertas

4 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

5 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

6 x1 = 0: pi /100:2*pi; % <enter > Creación del vector x1

7 y1 = cos (4*x1); % <enter > Creación del vector y1

8 y2 = sin(x1); % <enter > Creación del vector y2

9 hold on % <enter > Uso de hold on para permanencia de trazos

10 plot (x1 ,y1) % <enter > Trazo mediante la función plot

11 plot (x1 ,y2) % <enter > Trazo mediante la función plot

12 xlim ([0 2*pi ]) % <enter > Límite en el eje X

Figura 1.8. Gráfico con más de un trazo

1.7.4 Trazos con base en vectores y matrices

También es posible obtener gráficos que contengan varios trazos a través de la declaración de vectores y matrices; esto se presenta en el siguiente ejemplo y el resultado se muestra en la figura 1.9:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 X1 = 0: pi /100:2*pi; % <enter > Creación del vector X1

3 Y1 = cos(X1)*2; % <enter > Creación del vector Y1

4 Y2 = cos(X1)*3; % <enter > Creación del vector Y2

5 Y3 = cos(X1)*4; % <enter > Creación del vector Y3

6 Y4 = cos(X1)*5; % <enter > Creación del vector Y4

7 Z1 = [ Y1; Y2; Y3; Y4 ]; % <enter > Creación de la matriz Z1

8 plot (X1 , Y1 , X1 , Y2 , X1 , Y3 , X1 , Y4) % <enter > Uso de la función plot

9 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

10 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

11 grid on % <enter > Uso de la función grid para inserción de rejillas

12 set(gca , ' GridAlpha ' ,0.40); % <enter > Oscurecimiento de grillas

13 xlim ([0 2* pi ]) % <enter > Límite en el eje X

14 plot (X1 , Z1) % <enter > Trazo mediante la función plot

15 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

16 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

17 grid on % <enter > Uso de la función grid para inserción de rejillas

18 set(gca , ' GridAlpha ' ,0.40); % <enter > Oscurecimiento de grillas

19 xlim ([0 2* pi ]) % <enter > Límite en el eje X

Figura 1.9. Gráfico con varios trazos

1.7.5 Función peaks

La función peaks genera un gráfico resultante de trasladar y escalar distribuciones gaussianas de acuerdo a una matriz de orden n x n, cuyo argumento n (número entero positivo) acompaña a dicha función. La generación de este gráfico (figura 1.10) sirve para demostrar al usuario los alcances gráficos en cuanto a superficies, colores, mallas, contornos, etcétera, con que cuenta Matlab. Ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

3 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

4 plot ( peaks (100) ) % <enter > Uso de la función peaks

5 grid on % <enter > Uso de la función grid para inserción de rejillas

6 set(gca , ' GridAlpha ' ,0.40); % <enter > Oscurecimiento de grillas

Figura 1.10. Gráfico originado por la función peaks

1.7.6 Elección de colores

Debido a que es necesario siempre definir uno o varios colores dentro de los gráficos; se presenta a continuación la tabla 1.2, la cual indica la letra especifica que representa a cada color:

Tabla 1.2

Especificadores de los colores en los gráficos

El siguiente ejemplo presenta el estilo de líneas, colores y marcas, cuyo resultado se muestra en la figura 1.11:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 x1 = 0:0.2:10 % <enter > Creación del vector x1

3 y1 = sin(x1)+cos(x1) % <enter > Creación del vector y1

4 figure (1) % <enter > Creación de figura

5 plot (x1 ,y1 , ' :ok ' ) % <enter > Trazo mediante la función plot

6 grid on % <enter > Inserción de rejilla en el gráfico

7 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

8 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

9 figure (2) % <enter > Creación de figura

10 plot (x1 ,y1 , ' -xr ' ) % <enter > Trazo mediante la función plot

11 grid on % <enter > Inserción de rejilla en el gráfico

12 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

13 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

14 figure (3) % <enter > Creación de figura

15 plot (x1 ,y1 , ' :+b ' ) % <enter > Trazo mediante la función plot

16 grid on % <enter > Inserción de rejilla en el gráfico

17 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

18 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

19 figure (4) % <enter > Creación de figura

20 plot (x1 ,y1 , ' --sg ' ) % <enter > Trazo mediante la función plot

21 grid on % <enter > Inserción de rejilla en el gráfico

22 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

23 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

Figura 1.11. Trazos originados por distintos tipos de líneas, marcas y colores

1.7.7 Funciones axis, legend y text

La función axis se utiliza para escalar el eje vertical y horizontal, la función legend para la creación de leyendas y la función text para añadir textos sobre los posibles trazos; a continuación se presenta un ejemplo y su respectivo gráfico resultante en la figura 1.12:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

3 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el grafico

4 x = [0 5 5 0 0] % <enter > Creación del vector x

5 y = [0 0 5 5 0] % <enter > Creación del vector y

6 plot (x,y) % <enter > Trazo mediante la función plot

7 axis equal % <enter > Uso de la función axis

8 axis ([ –1 6 –1 6]) % <enter > Uso de la función axis

9 legend ( ' Líneas 01 ' ) % <enter > Inserción de leyenda

10 text (2.5 ,2.5 , ' Gráfico ' ) % <enter > Inserción de texto

11 gtext ( ' Gráfico ' ) % <enter > Inserción de texto interactivo

12 grid on % <enter > Inserción de rejilla en el grafico

13 ax = gca; % <enter >

14 ax.GridAlpha =0.40; % <enter > Oscurecimiento de cuadrículas

1.7.8 Función subplot

En diferentes ocasiones es óptimo presentar un conjunto de gráficas en una misma ventana; para este tipo de ocasiones se utiliza la función subplot. Dicha función tiene por sintaxis subplot(m,n,p); donde los índices m y n darán el orden de la matriz de la ventana (en otras palabras m es la cantidad de particiones horizontales y n es la cantidad de particiones verticales de la ventana) y p son las subdivisiones de la ventana enumeradas. El resultado del siguiente ejemplo explícito se presenta en la figura 1.13:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

3 x1 = 0: pi /10:2* pi; % <enter > Creación del vector x1

4 subplot (2 ,1 ,1) % <enter > Uso de la función subplot

5 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el grafico

6 plot (x1 ,sin(x1)) % <enter > Trazo mediante la función plot

7 grid on % <enter > Inserción de rejilla en el grafico

8 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el grafico

9 subplot (2 ,1 ,2) % <enter > Uso de la función subplot

10 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el grafico

11 plot (x1 ,sin (3* x1)) % <enter > Trazo mediante la función plot

12 grid on % <enter > Inserción de rejilla en el gráfico

13 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

Figura 1.13. Gráficos mediante la función subplot

1.7.9 Función semilog y loglog

También hay la opción de asignar escalas semilogarítmicas y logarítmicas, según sea necesario en el gráfico, con el uso de las funciones semilog y loglog; como se muestra en el siguiente ejemplo, cuya resultante es la figura 1.14:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

3 x1 = 0:0.1:50; % <enter > Creación del vector x1

4 y1 = 5* x1 .^2; % <enter > Creación del vector x2

5 subplot (2 ,2 ,1) % <enter > Uso de la función subplot

6 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

7 plot (x1 ,y1) % <enter > Trazo mediante la función plot

8 title ( ' Polinomio - lineal / lineal ' ) % <enter > Título

9 xlabel ( ' x1 ' ) % <enter > Etiqueta en el eje x

10 ylabel ( ' y1 ' ) % <enter > Etiqueta en el eje y

11 grid on % <enter > Uso de la función grid para inserción de rejillas

12 ax = gca; % <enter >

13 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

14 subplot (2 ,2 ,2) % <enter > Uso de la función subplot

15 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

16 semilogx (x1 ,y1) % <enter > Trazo mediante la función semilogx

17 title ( ' Polinomio - logarítmico / lineal ' ) % <enter > Título

18 xlabel ( ' x1 ' ) % <enter > Etiqueta en el eje x

19 ylabel ( ' y1 ' ) % <enter > Etiqueta en el eje y

20 grid on % <enter > Uso de la función grid para inserción de rejillas

21 ax = gca; % <enter >

22 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

23 subplot (2 ,2 ,3) % <enter > Uso de la función subplot

24 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

25 semilogy (x1 ,y1) % <enter > Trazo mediante la función semilogy

26 title ( ' Polinomio - lineal / logarítmico ' ) % <enter > Título

27 xlabel ( ' x1 ' ) % <enter > Etiqueta en el eje x

28 ylabel ( ' y1 ' ) % <enter > Etiqueta en el eje y

29 grid on % <enter > Uso de la función grid para inserción de rejillas

30 ax = gca; % <enter >

31 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

32 subplot (2 ,2 ,4) % <enter > Uso de la función subplot

33 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

34 loglog (x1 ,y1) % <enter > Trazo mediante la función loglog

35 title ( ' Polinomio - logarítmico / logarítmico ' ) % <enter > Título

36 xlabel ( ' x1 ' ) % <enter > Etiqueta en el eje x

37 ylabel ( ' y1 ' ) % <enter > Etiqueta en el eje y

38 grid on % <enter > Uso de la función grid para inserción de rejillas

39 ax = gca; % <enter >

40 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

Figura 1.14. Gráficos obtenidos mediante el uso de escalas lineales y logarítmicas

1.7.10 Función yyaxis

En el caso de que se pretenda mostrar dos trazos diferentes pero que compartan el mismo eje horizontal, pero escalas diferentes en el eje vertical, se debe utilizar la función yyaxis; cuyo argumento referido al lado derecho de la imagen es right y al lado izquierdo left. A continuación se presenta un ejemplo asociado a la función yyaxis y su respectiva gráfica resultante es la figura 1.15:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

3 x1 = linspace (0 ,25); % <enter > Creación del vector x1

4 y1 = sin(x1 /2); % <enter > Creación del vector y1

5 yyaxis left % <enter > Uso de la función yyaxis left

6 plot (x1 ,y1) % <enter > Trazo mediante la función plot

7 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

8 r1 = x1 .^2/2; % <enter > Creación del vector r1

9 ylim ([ -1 1]) % <enter > Límite en el eje Y

10 yyaxis right % <enter > Uso de la función yyaxis right

11 plot (x1 ,r1) % <enter > Trazo mediante la función plot

12 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

13 ylim ([0 350]) % <enter > Límite en el eje Y

Figura 1.15. Gráfico con dos ejes verticales

1.7.11 Funciones fill y fill3

Las funciones fill y fill3 proporcionan un color de relleno a imágenes, con área determinada por vértices, bidimensionales y tridimensionales, respectivamente. Un ejemplo demostrativo de estas funciones es presentado y su gráfica resultante es la figura 1.16:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 figure (1) % <enter > Creación de figura

3 x1 = [1 2 3 3 2 1 0 0] % <enter > Creación del vector x1

4 y1 = [0 0 1 2 3 3 2 1] % <enter > Creación del vector y1

5 fill (x1 ,y1 , ' r ‘ ) % <enter > Uso de la función fill bidimensional

6 axis square % <enter > Uso de la función axis square

7 axis ([ -1 4 -1 4]) % <enter > Uso de la función axis (límites)

8 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

9 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

10 grid on % <enter > Inserción de rejilla en el gráfico

11 ax = gca; % <enter >

12 ax.GridAlpha =0.40; % <enter > Oscurecimiento de grillas

13 figure (2) % <enter > Creación de figura

14 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

15 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

16 xx = [1 1 0 0] % <enter > Creación del vector xx

17 yy = [0 1 1 0] % <enter > Creación del vector yy

18 zz = [0 0 1 1] % <enter > Creación del vector zz

19 fill3 (xx ,yy ,zz , ' r ' ) % <enter > Uso de la función fill tridimensional

20 axis square % <enter > Uso de la función axis square

21 axis ([ -0.5 1.5 -0.5 1.5 0 1]) % <enter > axis (límites)

22 view (125 ,20) % <enter > Función de visualización 3D

23 xlabel ( ' x ' ) % <enter > Etiqueta en el eje x

24 ylabel ( ' y ' ) % <enter > Etiqueta en el eje y

25 zlabel ( ' z ' ) % <enter > Etiqueta en el eje z

26 grid % <enter > Inserción de rejillas en el gráfico

27 ax = gca; % <enter >

28 ax.GridAlpha =0.40; % <enter > Oscurecimiento de grillas

Figura 1.16. Relleno de áreas con colores

Türler ve etiketler

Yaş sınırı:
0+
Hacim:
599 s. 649 illüstrasyon
ISBN:
9789972455339
Telif hakkı:
Bookwire
İndirme biçimi:
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 3, 2 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Ses
Ortalama puan 0, 0 oylamaya göre
Metin PDF
Ortalama puan 0, 0 oylamaya göre