Sunteți pe pagina 1din 116

CURSO DE MANEJO Y PROGRAMACIÓN DE

MATLAB

CURSO DE MANEJO Y PROGRAMACIÓN DE MATLAB DANTE PINTO JERIA Potosí- Bolivia 2010

DANTE PINTO JERIA

Potosí- Bolivia

2010

Dante Pinto Jeria 2

Dante Pinto Jeria

Dante Pinto Jeria CAPÍTULO I PRIMEROS PASOS CON MATLAB 1.1 INTRODUCCIÓN.- El nombre del programa

Dante Pinto Jeria

CAPÍTULO I PRIMEROS PASOS CON MATLAB

1.1 INTRODUCCIÓN.-

El nombre del programa Matlab viene de Matrix Laboratory (Laboratorio de Matrices), para Matlab todos los objetos son considerados como matrices. Este programa es una herramienta de cálculo, fundamentalmente, numérico. Aunque también puede realizar cálculos simbólicos.

El entorno de trabajo fundamental de Matlab es el siguiente:

El entorno de trabajo fundamental de Matlab es el siguiente: Donde se presentan: La ventana de

Donde se presentan:

La ventana de comandos (Command Window) que es donde se trabaja de manera directa, los comandos son introducidos después del apuntador (prompt) >> apuntador (prompt) >>

El historial de comandos (Command History), muestra los comandos utilizados en por orden.son introducidos después del apuntador (prompt) >> La ventana de las carpetas actuales (Current Folder). 3

La ventana de las carpetas actuales (Current Folder).(prompt) >> El historial de comandos (Command History), muestra los comandos utilizados en por orden. 3

Dante Pinto Jeria Y el espacio de trabajo (Workspace) que muestra las variables utilizadas y

Dante Pinto Jeria

Dante Pinto Jeria Y el espacio de trabajo (Workspace) que muestra las variables utilizadas y creadas

Y el espacio de trabajo (Workspace) que muestra las variables utilizadas y creadas en el entorno de trabajo.

Originalmente el fondo de trabajo es blanco, pero es posible cambiarlo a un fondo oscuro (o de otro color). Para ello se debe ir a File, Preferences

(o de otro color). Para ello se debe ir a File, Preferences Se debe quitar la

Se debe quitar la marca de Use system colors, luego en Text se selecciona el color blanco y en Background. Luego se hace clic en Apply y luego en OK.

1.2 MANEJO FUNDAMENTAL.-

1.2.1 Entrada de datos y salida de resultados.- Matlab funciona como una calculadora de lógica algebraica. Todo resultado de operaciones es almacenado en la variable ans (answer = respuesta). >> 45*76

ans =

3420

>> 2+3

ans =

5

Si es que no se quisiera mostrar los resultados, se debe poner un punto y coma al final de la línea.

>> 78/3;

>> El resultado es almacenado internamente, pero no se lo muestra por pantalla. Esto es muy útil cuando no queremos que se muestren resultados intermedios, o que se llene la pantalla con números que son irrelevantes.

Dante Pinto Jeria Matlab permite recuperar las últimas operaciones realizadas, presionando la tecla de la

Dante Pinto Jeria

Matlab permite recuperar las últimas operaciones realizadas, presionando la tecla de la

flecha hacia arriba . Presionando dos veces se recupera la penúltima operación y así

sucesivamente.

1.2.2 Borrado de la pantalla.-

El Command Window se borra mediante clc

1.2.3 Formato de números decimales.-

Matlab permite cambiar el formato de números decimales mediante el comando format. Por omisión Matlab muestra los resultados con cuatro decimales, ese es el formato short. >> 3/7

ans =

0.4286

Para cambiar a otro formato con más decimales se debe presionar >> format long Luego presionando dos veces la flecha hacia arriba del cursor (para recuperar la penúltima operación). >> 3/7

ans =

0.428571428571429

El resultado tiene ahora 15 decimales.

También se puede fijar el formato racional, para realizar operaciones fraccionarias. >> format rat >> 3/5+1/2-1/8

ans =

39/40

Para volver al formato por omisión, simplemente se teclea >> format

Dante Pinto Jeria 1.2.4 Ayuda.- Se puede obtener ayuda sobre un comando o una función

Dante Pinto Jeria

1.2.4 Ayuda.-

Se puede obtener ayuda sobre un comando o una función tecleando help seguido del nombre del comando sobre el cual se desea la ayuda. Por ejemplo, si es que se quisiera conseguir ayuda sobre el comando format.

>> help format

Y a continuación aparece una serie de textos, con la ayuda correspondiente.

1.2.5 Variables.-

Matlab puede almacenar valores en variables, al igual que cualquier otro lenguaje de programación, siempre y cuando el nombre de la variable no sea una palabra reservada de

Matlab. El programa discrimina entre mayúsculas y minúsculas. Para asignar un valor a una variable simplemente se teclea:

>>

x=24

x =

24

Se pueden asignar también múltiples variables en una sola línea, utilizando punto y comas para separar las mismas.

>>

y=34;z=24;g=21;

>>

Para ver las variables que se encuentran en el libro de trabajo actual se puede utilizar el comando who

>> who

Your variables are:

a ans

g

x

y

z

Una variante es el comando whos

>> whos

Name

Size

Bytes Class

Attributes

a

4-D

192 double

ans

1x3

24 double

g 1x1 8 double x 1x1 8 double y 1x1 8 double z 1x1 8

g

1x1

8 double

x

1x1

8 double

y

1x1

8 double

z

1x1

8 double

Dante Pinto Jeria

regresa el nombre de la variable, su tamaño y el tipo de datos que almacena

Para borrar variables se puede utilizar el comando clear >> clear a x Lo anterior borra las variables a y x

Para borrar todas las variables se teclea >> clear

1.3 GUARDADO DEL ESPACIO DE TRABAJO.-

Una vez que se sale de la sesión de Matlab, todas las variables que se hayan creado son borradas de la memoria. Si es que queremos recuperar todas las variables y el espacio de trabajo, este debe ser guardado. Para ello se utiliza el menú File, luego Save Workspace As.

ello se utiliza el menú File , luego Save Workspace As . Para abrir el espacio

Para abrir el espacio de trabajo, guardado con anterioridad, se utiliza File luego Open

Dante Pinto Jeria CAPÍTULO II MANEJO DE MATRICES 2.1 INTRODUCCIÓN.- Una matriz es un arreglo

Dante Pinto Jeria

CAPÍTULO II

MANEJO DE MATRICES

2.1 INTRODUCCIÓN.-

Una matriz es un arreglo rectangular de elementos. Un caso particular de matriz es un vector, cuando tiene una sola dimensión. Puede haber vectores fila o vectores columna.

Una forma de introducir una matriz, en Matlab, es utilizando corchetes y dentro de ellos las filas separadas por ; (punto y coma) y las columnas separadas por espacios.

>> a=[1 2 3;4 5 6;7 8 9]

a =

1

4

7

2

5

8

3

6

9

También se pueden formar matrices o vectores mediantes secuencias, utilizando el operador

: (dos puntos). De la siguiente manera

inicio:paso:final

>> a=[1:2:20]

a

=

 

1

3

5

7

9

11

13

15

17

19

>> b=[-1:.5:1;-1:.5:1]

 

b

=

-1.0000

-0.5000

 

0

0.5000

1.0000

 

-1.0000 -0.5000

0

0.5000

1.0000

También se puede modificar un elemento de una matriz mediante los índices de la siguiente

manera

>> b(2,1)=8

b

=

-1.0000

-0.5000

0

0.5000

1.0000

8.0000

-0.5000

0

0.5000

1.0000

También se puede acceder a un elemento de una matriz mediante un solo índice que se constituye en una referencia continua.

>> b(4)=15 b = -1.0000 -0.5000 0 0.5000 1.0000 8.0000 15.0000 0 0.5000 1.0000

>> b(4)=15

b =

-1.0000

-0.5000

0

0.5000

1.0000

8.0000

15.0000

0

0.5000

1.0000

Dante Pinto Jeria

Donde la referencia se la realiza de la siguiente manera

Donde la referencia se la realiza de la siguiente manera Matlab tiene incorporada una función de

Matlab tiene incorporada una función de generación de cuadrados mágicos, que no son otra cosa que matrices cuadradas, que tienen la propiedad de que la suma de cada fila y cada columna, asimismo que la suma de las diagonales dan un mismo número. Así por ejemplo:

>> magic(4)

 

ans =

16

2

3

13

5

11

10

8

9

7

6

12

4

14

15

1

Estos cuadrados mágicos tienen siglos de antigüedad, un ejemplo muy conocido de ellos aparece en el grabado del alemán Alberto Durero llamado Melancolía I, el cual se lo puede ver también en Matlab, tecleando:

>> load durer;image(X);colormap(map);axis image

Dante Pinto Jeria En esta imagen aparece un cuadrado mágico en la esquina superior derecha.

Dante Pinto Jeria

Dante Pinto Jeria En esta imagen aparece un cuadrado mágico en la esquina superior derecha. Para

En esta imagen aparece un cuadrado mágico en la esquina superior derecha. Para ver el detalle del mismo se puede teclear:

>> load detail;colormap(hot);image(X)

puede teclear: >> load detail;colormap(hot);image(X) Que es la misma matriz mágica que presenta Matlab, pero con

Que es la misma matriz mágica que presenta Matlab, pero con las columnas centrales intercambiadas, esto lo hizo Durero, para que aparezca en la parte inferior la fecha en la que se realizó el grabado 1514.

Dante Pinto Jeria 2.2 OPERACIONES FUNDAMENTALES CON MATRICES.- 2.2.1 Borrar una fila o una columna

Dante Pinto Jeria

2.2 OPERACIONES FUNDAMENTALES CON MATRICES.-

2.2.1 Borrar una fila o una columna de una matriz.-

De la matriz

>> a=magic(4)

a

=

16

2

3

13

5

11

10

8

9

7

6

12

4

14

15

1

borrar la cuarta fila.

>> a(4,:)=[]

a

=

16

2

3

13

5

11

10

8

9

7

6

12

Si ahora se quiere borrar la tercera columna. >> a(:,3)=[]

a

=

16

2

13

5

11

8

9

7

12

Los dos puntos indican todo , lo que quiere decir que se hace referencia a toda la fila o a

toda la columna.

2.2 Añadir una fila o una columna a una matriz.- Por ejemplo en la siguiente matriz aumentar una columna con el elemento a(3,6)=8

>> a=magic(5)

a

=

17

24

1

8

15

23

5

7

14

16

4

6

13

20

22

10

12

19

21

3

11

18

25

2

9

>> a(3,6)=8 a = Dante Pinto Jeria 17 24 1 8 15 0 23 5

>> a(3,6)=8

a =

Dante Pinto Jeria

17

24

1

8

15

0

23

5

7

14

16

0

4

6

13

20

22

8

10

12

19

21

3

0

11

18

25

2

9

0

Como se puede apreciar, los elementos faltantes son llenados con ceros.

2.3 Sumar los elementos de una matriz.- Se utiliza el comando sum, el cual realiza la suma de las columnas de la matriz. Si se aplica sobre un vector, realiza la suma de todos los elementos del mismo. Así para el siguiente vector:

>> b=[1:5]

b

=

 

1

2

3

4

5

>> sum(b)

ans =

15

Como ejemplo comprobaremos que la matriz mágica, realmente es mágica. >> a=magic(4)

a

=

16

2

3

13

5

11

10

8

9

7

6

12

4

14

15

1

La suma de las columnas se la realiza mediante

>> sum(a)

 

ans =

34

34

34

34

La suma de las filas se la realiza transponiendo la matriz (una matriz transpuesta es cuando las filas se toman como columnas y viceversa). Para transponer una matriz, se pone un apóstrofe sobre el nombre de la misma a’ >> sum(a')

ans =

34

34

34

34

Dante Pinto Jeria Para la suma de los elementos de la diagonal principal, se utiliza

Dante Pinto Jeria

Para la suma de los elementos de la diagonal principal, se utiliza >> sum(diag(a)) ans =

34

Para sumar los elementos de la diagonal secundaria se utiliza el comando fliplr, que cambia de izquierda a derecha las filas de una matriz. >> sum(diag(fliplr(a))) ans =

34

Para aclarar el anterior paso veamos:

>> fliplr(a)

 

ans =

13

3

2

16

8

10

11

5

12

6

7

9

1

15

14

4

2.4 Intercambio de filas y columnas.- Supongamos que se quiere cambiar la matriz mágica que presenta Matlab a la misma forma de matriz que aparece en el cuadro de Durero, para eso se procede:

>> a=magic(4);a=a(:,[1 3 2 4])

a =

16

3

2

13

5

10

11

8

9

6

7

12

4

15

14

1

El orden de presentación de las columnas lo da el vector [1 3 2 4]

Si se quieren cambiar la primera con la cuarta columnas, se procede:

>> a=a([4 2 3 1],:)

a =

4

15

14

1

5

10

11

8

9

6

7

12

16

3

2

13

Dante Pinto Jeria 2.5 Reformado de una matriz.- Se puede reformar una matriz mediante la

Dante Pinto Jeria

2.5 Reformado de una matriz.-

Se puede reformar una matriz mediante la función reshape. Si la matriz era n*m se

reformula a un tamaño nuevo p*q, siempre y cuando m*n=p*q Así, por ejemplo, si se quiere reformular el tamaño de la matriz de 3*4 >> a=[1:4;5:8;9:12]

a =

1

2

3

4

5

6

7

8

9

10

11

12

a una matriz 6*2, se procede:

>> reshape(a,6,2)

ans =

1 3

5 7

9 11

2 4

6 8

10

12

2.6 Replicado de una matriz.-

Para esto se utiliza la función repmat(matriz,m,n), replica la matriz m veces en las filas y

n veces en las columnas,de la siguiente manera:

Replicar la matriz

1 2

2 3

Dos veces en las filas y tres veces en las columnas

>> repmat([1 2;2 3],2,3)

ans =

1 2

1

2

1

2

2 3

2

3

2

3

1 2

1

2

1

2

2 3

2

3

2

3

Dante Pinto Jeria 2.7 Matriz identidad.- La matriz identidad se construye mediante la función eye(n)

Dante Pinto Jeria

2.7 Matriz identidad.-

La matriz identidad se construye mediante la función eye(n) donde n indica el tamaño de la

misma, así por ejemplo:

>> eye(4)

 

ans =

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

2.8 Suma de matrices.-

Para sumar dos matrices, estas deben ser del mismo tamaño.

>> a=[1:4;5:8;9:12]

a

=

 

1

2

3

4

5

6

7

8

9

10

11

12

Ahora la matriz b la construimos como el reverso de a, para eso >> b=a(end:-1:1,end:-1:1)

b

=

12

11

10

9

8

7

6

5

4

3

2

1

Luego las sumamos

>> a+b

ans =

13

13

13

13

13

13

13

13

13

13

13

13

2.9 Multiplicación de matrices.-

Se debe cumplir que el número de columnas de la primera sea igual al número de filas de la segunda, sin esta condición no se pueden multiplicar dos matrices. El producto matricial no es conmutativo. La matriz resultante tiene, como tamaño, el número de filas de la primera por el número de columnas de la segunda.

C (m*p) =A (m*n) *B (n*p)

>> a a =   1 2 3 4 5 6 >> b   b

>> a

a =

 

1

2

3

4

5

6

>> b

 

b

=

7

8

9

10

11

12

>> a*b

 

ans =

 
 

58 64

 

139

154

Dante Pinto Jeria

2.10 Inversa de una Matriz.- Se calcula mediante la función inv(matriz). Solo existe la inversa de matrices cuadradas, siempre y cuando estas no sean singulares. Se define una matriz inversa como aquella que multiplicada por su matriz original da como resultado la matriz identidad (este es uno de los pocos caso en los que se admite la propiedad conmutativa en la multiplicación).

A -1 *A=A*A -1 =I

Calcular la inversa de la siguiente matriz y comprobar el resultado. >> a=magic(5)

a

=

17

24

1

8

15

23

5

7

14

16

4

6

13

20

22

10 21

12

19

3

18

11 25

2

9

>> b=inv(a)

b

=

-0.0049

0.0512

-0.0354

0.0012

0.0034

0.0431

-0.0373

-0.0046

0.0127

0.0015

-0.0303

0.0031

0.0031

0.0031

0.0364

0.0047

-0.0065

0.0108

0.0435

-0.0370

0.0028

0.0050

0.0415

-0.0450

0.0111

Dante Pinto Jeria La comprobación se la realiza mediante la multiplicación de las dos matrices.

Dante Pinto Jeria

La comprobación se la realiza mediante la multiplicación de las dos matrices. >> a*b ans =

1.0000

0.0000

0

0.0000

-0.0000

0.0000

1.0000

0

0.0000

0

0.0000

0.0000

1.0000

0.0000 -0.0000

0.0000

0.0000

0.0000

1.0000

0.0000

-0.0000

0.0000

0.0000

0.0000

1.0000

>> b*a

ans =

1.0000

-0.0000

0

-0.0000

0.0000

0.0000

1.0000

0

0.0000

0.0000

0

0.0000

1.0000

0.0000

0.0000

0.0000

0.0000

-0.0000

1.0000

0.0000

0.0000

0.0000

0.0000

0.0000

1.0000

2.11 Determinante de una Matriz.-

Se calcula mediante det(matriz), el resultado es un número. El determinante solo existe

para matrices cuadradas, siempre y cuando no sean singulares. Calcular el determinante de la matriz:

>> a=magic(3)

a =

8

3

4

1

5

9

6

7

2

>> det(a)

ans =

-360

2.12 Reducción escalonada por filas (reduced row echelon form).-

Se realiza mediante la función rref(matriz). Trabaja sobre matrices rectangulares o

cuadradas. >> rref(magic(4)) ans =

1

0

0

1

0

1

0

3

0

0

1

-3

0

0

0

0

Dante Pinto Jeria >> rref(magic(3)) ans = 1 0 0 0 1 0 0 0

Dante Pinto Jeria

>> rref(magic(3)) ans =

1

0

0

0

1

0

0

0

1

2.13

Rango de una matriz.-

Se calcula mediante rank(matriz). Indica el número de filas diferentes de cero que tiene la

matriz después de realizar una reducción escalonada de filas. Así, por ejemplo, para los dos ejemplos anteriores se tiene:

>> rank(magic(4)) ans =

3

>> rank(magic(3)) ans =

3

2.14

Media aritmética de los elementos de una matriz.-

La media aritmética o promedio se calcula de las columnas de la matriz.

>> mean(magic(4)) ans =

8.5000

8.5000

8.5000

8.5000

Si se quisiera el promedio de todos los elementos de la matriz se teclea:

>>mean(mean(magic(4)))

ans =

8.5000

2.15 Máximos y mínimos.-

Se calculan con max(matriz) y min(matriz) respectivamente. Se calculan por columnas.

>> max(magic(4)) ans =

16

14

15

13

>> min(magic(4)) ans =

4 2

3

1

Para el máximo o mínimo de todos los elementos. >> max(max(magic(4))) ans = 16 >>

Para el máximo o mínimo de todos los elementos. >> max(max(magic(4))) ans =

16

>> min(min(magic(4))) ans =

1

2.16

Generación de números aleatorios.-

Dante Pinto Jeria

Se generan números aleatorios con las funciones rand(m,n) y randn(m,n). La segunda da

números aleatorios normalmente distribuidos.

>>rand(4)

ans =

0.7577

0.1712

0.0462

0.3171

0.7431

0.7060

0.0971

0.9502

0.3922

0.0318

0.8235

0.0344

0.6555

0.2769

0.6948

0.4387

>> rand(2,3)

 

ans =

0.3816

0.7952

0.4898

0.7655

0.1869

0.4456

>> randn(3,4)

ans =

0.6277

-0.8637

-1.1135

-0.7697

1.0933

0.0774

-0.0068

0.3714

1.1093

-1.2141

1.5326

-0.2256

2.17 Resolución de sistemas de ecuaciones lineales.-

Un sistema de ecuaciones lineales tiene una matriz de coeficientes A, un vector de

incógnitas y un vector de términos independientes.

A X = B

Para resolver un sistema de ecuaciones lineales se pueden utilizar dos métodos.

1)

X= A -1 B

2)

X=A\B

Así, por ejemplo, resolver el sistema

Dante Pinto Jeria x 1 -4 x 2 + x 3 =10 3x 1 +3x

Dante Pinto Jeria

x 1 -4 x 2 + x 3 =10

3x 1 +3x 2 - 2x 3 =20

x 1 +6x 2 +3x 3 =30

de las tres formas, para ello primero se guardan los coeficientes n las variables A y B >> A=[1 -4 1;3 3 -2;1 6 3];B=[10;20;30];

Primera forma >> X=inv(A)*B

X =

9

1

5

Segunda forma >> X=A\B

X

=

9.0000

1.0000

5.0000

2.18 Operaciones elemento por elemento.- Se pueden realizar las operaciones elemento por elemento si es que después del nombre de la matriz se pone un punto (.) Así, por ejemplo, si se tienen las siguientes matrices >> a=[1 2 3;4 5 6;7 8 9];b=[2 3 2;2 3 2;2 3 2]; >> a.*b ans =

2

6

6

8

15

12

14

24

18

Si no se hubiese puesto el punto, se habría realizado la multiplicación tradicional de matrices.

Dante Pinto Jeria También funciona con potencias, así por ejemplo, con la misma matriz a

Dante Pinto Jeria

También funciona con potencias, así por ejemplo, con la misma matriz a anterior >> a.^2 ans =

1

4

9

16

25

36

49

64

81

Si no se hubiese utilizado el punto decimal el resultado sería el equivalente a la multiplicación matricial de una matriz por si misma. >> a^2 ans =

30

36

42

66

81

96

102

126

150

2.19 Función meshgrid.-

Esta función tiene la sintaxis [X,Y]=meshgrid(x,y) Transforma el dominio especificado por los vectores x e y en arreglos X e Y que pueden ser usados para la evaluación de funciones de dos variables y gráficas de superficies en 3D. Las filas del arreglo de salida X son copias del vector x y las columnas del arreglo de salida Y

son copias del vector y. Si solo se utiliza un argumento [X,Y]=meshgrid(x),tanto X como Y son copias de x. Esta función resulta como dos ciclos for i for j anidados. >> [X,Y] = meshgrid(1:4, 1:4)

X =

1

2

3

4

1

2

3

4

1

2

3

4

1

2

3

4

Y =

1

1

1

1

2

2

2

2

3

3

3

3

4

4

4

4

2.19 Tabla resumen de operaciones.-

A

continuación se muestra una tabla que resume algunas de las operaciones con vectores, si

es

que se tienen los vectores columna x y y con los siguientes valores

Dante Pinto Jeria 22

Dante Pinto Jeria

Dante Pinto Jeria 22
Dante Pinto Jeria 22
Dante Pinto Jeria 22
Dante Pinto Jeria 2.20 Exportar e importar a EXCEL.- Para exportar a Excel se utiliza

Dante Pinto Jeria

Dante Pinto Jeria 2.20 Exportar e importar a EXCEL.- Para exportar a Excel se utiliza el

2.20 Exportar e importar a EXCEL.- Para exportar a Excel se utiliza el comando xlswrite(archivo,matriz,hoja,rango). Para importar de Excel se utiliza el comando xlsread(archivo,hoja,rango). Así, por ejemplo, si se quiere exportar la matriz mágica de tamaño 5 a una hoja Excel llamada magia y ubicada en la unidad c:

>> a=magic(5); >> xlswrite('c:\magia.xlsx',a)

Si se quiere exportar en una hoja específica y en un rango específico

>>xlswrite('c:\magia.xlsx',a,'Hoja2','C3:G7')

Ahora si es que queremos importar a la variable b los datos de la hoja2 del archivo amgia de Excel, anteriormente guardado, se procede:

>> b=xlsread('c:\magia.xlsx','Hoja2','C3:G7') b =

17

24

1

8

15

23

5

7

14

16

4

6

13

20

22

10

12

19

21

3

11

18

25

2

9

2.3 EJEMPLOS DE APLICACIONES.-

Ejemplo2.1: Crear una matriz de 4*4 con números aleatorios entre 15 y 85. >> 15+fix(70*rand(4)) ans =

69

21

55

72

42

24

19

16

31

80

31

18

43

81

39

26

Ejemplo2.2: Dada una matriz mágica de 5*5 sumar todos los elementos de las columnas impares.

Dante Pinto Jeria >> a=magic(5); >> sum(sum(a(1:2:end,:))) ans = 195 Ejemplo2.3: En una matriz mágica,

Dante Pinto Jeria

>> a=magic(5); >> sum(sum(a(1:2:end,:))) ans =

195

Ejemplo2.3: En una matriz mágica, de tamaño 6, de cada columna impar encontrar el mínimo, e indicar su índice relativo. >> a=magic(6)

a

=

35

1

6

26

19

24

3

32

7

21

23

25

31

9

2

22

27

20

8

28

33

17

10

15

30

5

34

12

14

16

4

36

29

13

18

11

>> [m ind]=min(a(:,1:2:end)) m =

3

2

ind =

2

3

10

4

Ejemplo2.4: De la matriz mágica de tamaño 9, calcular el promedio de las filas múltiplos de tres.

>> a=1+fix(100*rand(9))

a

=

65

19

45

54

48

93

60

51

24

74

37

31

36

24

44

27

9

46

65

63

51

94

85

19

61

27

97

46

79

52

88

20

91

72

81

55

55

9

82

56

23

98

23

3

53

30

93

80

63

18

44

12

93

24

75

78

65

59

23

12

30

74

49

19

49

38

21

44

26

32

49

63

69

44

82

31

32

41

43

58

68

>> mean(a(3:3:end,:)')' ans =

62.4444 50.7778 52.0000 Dante Pinto Jeria Ejemplo2.5: Encontrar el índice, de referencia continua,

62.4444

50.7778

52.0000

Dante Pinto Jeria

Ejemplo2.5: Encontrar el índice, de referencia continua, correspondiente al máximo valor de los elementos de la siguiente matriz de 9*9. a =

al máximo valor de los elementos de la siguiente matriz de 9*9. a = >> find(a==max(max(a)))

>> find(a==max(max(a))) ans =

50

Dante Pinto Jeria CAPÍTULO III GRÁFICOS 3.1 INTRODUCCIÓN.- Matlab tiene muchas rutinas de alto nivel

Dante Pinto Jeria

CAPÍTULO III

GRÁFICOS

3.1 INTRODUCCIÓN.-

Matlab tiene muchas rutinas de alto nivel para gráficas. En Matlab las variables independientes no son generadas de manera automática, sino que el usuario debe

generarlas.

Los gráficos que genera Matlab pueden ser clasificados como en dos y tres dimensiones. Si se desea mantener un gráfico anterior y sobreponer un gráfico posterior, se debe tecleat el comando >> hold on; Se mantienen los gráficos anteriores, hasta que se teclea

>>hold off;

3.2 GRÁFICOS 2D.-

3.2.1 Función plot.- Esta es la más usada y simple de las funciones gráficas. La sintaxis es la siguiente:

plot(Y) plot(X1,Y1, ,Xn,Yn) plot(X1,Y1,EspecLinea, ,Xn,Yn,EspecLinea) plot(X1,Y1, EspecLinea,'NombrePropiedad',ValorPropiedad) plot(axes_handle,X1,Y1, EspecLinea, 'NombrePropiedad',ValorPropiedad) h = plot(X1,Y1, EspecLinea, 'NombrePropiedad',ValorPropiedad)

Los colores y tipos de línea vienen dados según las siguientes tablas:

y

amarillo

 

m

magenta

c

cyan

r

rojo

g

verde

b

azul

w

blanco

k

negro

-

Continua

--

Línea cortada

-.

Línea y punto

*

Estrellas

.

Puntitos

s

Cuadrados

o círculos : Punteado x Marca + Mas ^ Triángulo hacia arriba v Triángulo hacia

o

círculos

:

Punteado

x

Marca

+

Mas

^

Triángulo hacia arriba

v

Triángulo hacia abajo

>

Triángulo a la derecha

<

Triángulo a la izquierda

d

Diamante

p

Pentagrama

h

Hexagrama

Ejemplo3.1:

Dante Pinto Jeria

>> x=0:pi/100:3*pi;y=sin(x); >> plot(x,y,'k-','LineWidth',2); 1 0.8 0.6 0.4 0.2 0
>> x=0:pi/100:3*pi;y=sin(x);
>> plot(x,y,'k-','LineWidth',2);
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
8
9
10

Ejemplo3.2:

>> plot(x,y,'r:','LineWidth',3);

Eje Y

Dante Pinto Jeria 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0
Dante Pinto Jeria
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
8
9
10

Ejemplo3.3: Graficar el seno y el coseno, con una rejilla, con un título, una leyenda, una etiqueta en x y una en y >> x=0:pi/100:3*pi;y1=sin(x);y2=cos(x); >> plot(x,y1,'r-',x,y2,'b--');legend('seno','coseno');title('Dos gráficas, de 0 a 2\pi');xlabel('Eje X');ylabel('Eje Y');grid on;

1

0.8

0.6

0.4

0.2

0

-0.2

-0.4

-0.6

-0.8

-1

Dos gráficas, de 0 a 2

0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 Dos gráficas, de 0 a 2 seno
seno coseno
seno
coseno

0

1

2

3

4

5

Eje X

6

7

8

9

10

Para que aparezca el símbolo π se pone dentro de las comillas simples ’…\pi’

Dante Pinto Jeria Ejemplo3.4: Graficar el logo que aparece en la carátula de este texto,

Dante Pinto Jeria

Ejemplo3.4: Graficar el logo que aparece en la carátula de este texto, cuya ecuación es r=sin(5t/8), con 0≤ t ≤ 16 π

Como está en forma polar, habrá que convertir a la forma rectangular x=sin(5t/8)cos(t); y=sin(5t/8)sin(t)

>> t=0:pi/100:16*pi;r=sin(5*t/8);x=r.*cos(t); y=r.*sin(t); >> plot(x,y,'k-','Linewidth',2);axis equal;axis off;set(gcf,'Color',[1,1,1])

equal;axis off;set(gcf,'Color',[1,1,1]) Se utiliza la función set(gcf,'Color',[1,1,1])

Se utiliza la función set(gcf,'Color',[1,1,1]) para modificar el color dl fondo del gráfico, en este caso se puso el fondo blanco.

Ejemplo3.5: Graficar con marcadores. x = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));

plot(x,y,'--rs','LineWidth',2,

'MarkerEdgeColor','k', 'MarkerFaceColor','g',

'MarkerSize',10)

Dante Pinto Jeria 3 2 1 0 -1 -2 -3 -4 -3 -2 -1 0
Dante Pinto Jeria 3 2 1 0 -1 -2 -3 -4 -3 -2 -1 0
Dante Pinto Jeria
3
2
1
0
-1
-2
-3
-4
-3
-2
-1
0
1
2
3
4

Ejemplo3.6: Realizar un gráfico, modificando los ejes y las marcas de los ejes.

>

x = -pi:.1:pi;

y

= sin(x);

plot(x,y)

set(gca,'XTick',-pi:pi/2:pi)

set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})

1

0.8

0.6

0.4

0.2

0

-0.2

-0.4

-0.6

-0.8

-1

-pi -pi/2 0 pi/2 pi
-pi
-pi/2
0
pi/2
pi

3.2.2 Función plotyy.- Esta función grafica con el eje y tanto a la izquierda como a la derecha de la figura.

plotyy(X1,Y1,X2,Y2) plotyy(X1,Y1,X2,Y2,función) plotyy(X1,Y1,X2,Y2,'funcion1','funcion2') [AX,H1,H2] =

plotyy(X1,Y1,X2,Y2)

plotyy(X1,Y1,X2,Y2,función)

plotyy(X1,Y1,X2,Y2,'funcion1','funcion2')

[AX,H1,H2] = plotyy(

)

Ejemplo3.7:

x = 0:0.01:20;

y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); [AX,H1,H2] = plotyy(x,y1,x,y2,'plot');

Dante Pinto Jeria

200 0.8 150 0.6 100 0.4 50 0.2 0 0 -50 -0.2 -100 -0.4 -150
200
0.8
150
0.6
100
0.4
50
0.2
0
0
-50
-0.2
-100
-0.4
-150
-0.6
-200
-0.8
0 0
2
2
4
4
6
6
8
8
10
10
12
12
14
14
16
16
18
18
20
20

Ejemplo3.8: Modificar las líneas del anterior ejemplo.

x = 0:0.01:20;

y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); [AX,H1,H2] = plotyy(x,y1,x,y2,'plot');set(H1,'LineStyle','--');set(H2,'LineStyle',':')

200 0.8 150 0.6 100 0.4 50 0.2 0 0 -50 -0.2 -100 -0.4 -150
200
0.8
150
0.6
100
0.4
50
0.2
0
0
-50
-0.2
-100
-0.4
-150
-0.6
31
-200
-0.8
0 0
2
2
4
4
6
6
8
8
10
10
12
12
14
14
16
16
18
18
20
20
Dante Pinto Jeria 3.2.3 Funciónes semilogx y semilogy.- Trazan gráficas semilogarítmicas. La sintaxis es: semilogx(Y)

Dante Pinto Jeria

3.2.3 Funciónes semilogx y semilogy.-

Trazan gráficas semilogarítmicas.

La sintaxis es:

semilogx(Y)

semilogy(

)

semilogx(X1,Y1,

semilogx(X1,Y1,EspecLinea,

semilogx(

)

)

,'NombPropiedad',ValorPropiedad,

h

= semilogx(

)

h

= semilogy(

)

)

Ejemplo3.9: Trazar una gráfica con el eje y logarítmico y el eje x normal. >> x = 0:.1:10; semilogy(x,10.^x);grid on;

10

10

10

10

10

10

10

8

6

4

2

0

semilogy(x,10.^x);grid on; 10 10 10 10 10 10 10 8 6 4 2 0   0
 

0

1

2

3

4

5

6

7

8

9

10

3.2.4

Función loglog.-

 

Traza gráficas en escala log-log.

 

La sintaxis es la siguiente:

 

loglog(Y)

loglog(X1,Y1,

)

loglog(X1,Y1,EspecLinea,

 

)

loglog(

,'NombPropiedad',ValorPropiedad,

 

)

h = loglog(

)

Ejemplo3.10: x = logspace(-1,2); loglog(x,exp(x),'r-s','LineWidth',1); grid on; 10 10 10 10 10 10 50 40

Ejemplo3.10:

x = logspace(-1,2);

loglog(x,exp(x),'r-s','LineWidth',1);

grid on;

10

10

10

10

10

10

50

40

30

20

10

0

grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1
grid on; 10 10 10 10 10 10 50 40 30 20 10 0 10 -1

10 -1

10 0

10 1

10 2

3.2.5 Función polar.- Traza gráficas polares. Su sintaxis es:

polar(theta,rho) polar(theta,rho,EspecLinea) polar(manejados_ejes, ) h = polar( )

Ejemplo3.11: Trazar el logo de la carátula. >> t=0:pi/100:16*pi;r=sin(5*t/8); >> polar(t,r,'-k');set(gcf,'Color',[1,1,1])

Dante Pinto Jeria

Dante Pinto Jeria 90 1 120 60 0.8 0.6 150 30 0.4 0.2 180 210

Dante Pinto Jeria

90 1 120 60 0.8 0.6 150 30 0.4 0.2 180 210 330 240 300
90
1
120
60
0.8
0.6
150
30
0.4
0.2
180
210
330
240
300

270

0

3.2.6 Función compass.-

La función brújula, grafica flechas saliendo del origen. La sintaxis es:

compass(U,V) compass(Z) compass( ,EspecLinea) compass(manejador_ejes, ) h = compass( )

Ejemplo3.12: Realizar la gráfica tipo brújula de los valores propios de una matriz. >> Z = eig(randn(20,20));

compass(Z);set(gcf,'Color',[1,1,1])

3.2.7 Función line.-

90 5 120 60 4 3 150 30 2 1 180 210 330 240 300
90
5
120
60
4
3
150
30
2
1
180
210
330
240
300

270

0

Dibuja líneas. La sintaxis es: line line(X,Y) line(X,Y,Z) line(X,Y,Z,' NombPropiedad ',ValorPropiedad,

Dibuja líneas. La sintaxis es:

line

line(X,Y)

line(X,Y,Z)

line(X,Y,Z,'NombPropiedad',ValorPropiedad,

line('XData',x,'YData',y,'ZData',z,

h = line(

)

)

)

Ejemplo3.13:

>>line([0 1],[0 1],'Color','r','LineWidth',4)

1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

3.2.8 Función hist.- Grafica un histograma. La sintaxis es:

n

= hist(Y)

n

= hist(Y,x)

n

= hist(Y,nbins)

)

hist(

hist(manejador_ejes,

[n,xout] = hist(

)

)

Ejemplo3.14:

>> x = -4:0.1:4; y = randn(10000,1); hist(y,x)

Dante Pinto Jeria

Dante Pinto Jeria 450     400       350 300 250   200

Dante Pinto Jeria

450

   

400

 
   

350

300

250

 

200

150

150  
150  
 

100

50

0

         

-5

-4

-3

-2

-1

0

1

2

3

4

5

Ejemplo3.15: Cambiar el color del anterior gráfico de manera que sea rojo con bordes blancos. >> h = findobj(gca,'Type','patch'); set(h,'FaceColor','r','EdgeColor','w')

450 400 350 300 250 200 150 100 50 0 -5 -4 -3 -2 -1
450
400
350
300
250
200
150
100
50
0
-5
-4
-3
-2
-1
0
1
2
3
4
5

El comando findobj encuentra objetos con valores de propiedades específicos.

3.2.9 Función bar, barh.- Dibuja barras verticales y horizontales respectivamente. La sintaxis es:

bar(Y)

bar(x,Y)

bar(

,ancho)

bar(

,'estilo')

bar(

,'color_barra')

bar(

,'NombPropiedad',ValorPropiedad,

)

bar(manejador_ejes, barh(manejador_ejes, h = bar( barh( h = barh( ) ) ) ) ) Ejemplo3.16:

bar(manejador_ejes,

barh(manejador_ejes,

h = bar(

barh(

h = barh(

)

)

)

)

)

Ejemplo3.16:

>> x = -2.9:0.2:2.9; bar(x,exp(-x.*x),'r')

Dante Pinto Jeria

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -3 -2 -1 0
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-3
-2
-1
0
1
2
3

Ejemplo3.17:

>> x = -2.9:0.2:2.9; barh(x,exp(-x.*x),'b')

3

2

1

0

-1

-2

-3

barh(x,exp(-x.*x),'b') 3 2 1 0 -1 -2 -3 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

3.2.10 Función pie.- Realiza la gráfica de una torta. Su sintaxis es:

pie(X)

pie(X,explotar)

pie(

pie(manejador_ejes,

h = pie(

,etiquetas)

)

)

Dante Pinto Jeria Ejemplo3.18: >> pie([1 2 1.4 4 1.5 3]) 11% 8% 23% 16%

Dante Pinto Jeria

Ejemplo3.18:

>> pie([1 2 1.4 4 1.5 3])

11%

8% 23% 16%
8%
23%
16%

31%

12%

Ejemplo3.19: Dibujar una torta haciendo énfasis en la segunda tajada. >> x = [1 3 0.5 2.5 2]; explotar = [0 1 0 0 0]; pie(x,explotar) colormap jet

33%

11% 22% 28%
11%
22%
28%

6%

3.2.13 Función patch.- Crea uno o más polígonos llenados. Su sintaxis es:

patch(X,Y,C) patch(X,Y,Z,C) patch(FV) patch(X,Y,C,'NombrePropiedad',ValorPropiedad ) patch('NombrePropiedad',ValorPropiedad, ) manejador = patch( )

Ejemplo3.20: >> xdato = [2 2 0 2 5; 2 8 2 4 5; 8

Ejemplo3.20:

>> xdato = [2 2 0 2 5;

2

8 2 4 5;

8

8 2 4 8];

ydato = [4 4 4 2 0;

8

4 6 2 2;

4

0 4 0 0];

zdato = ones(3,5); patch(xdato,ydato,zdato,'w')

8

7

6

5

4

3

2

1

0

patch(xdato,ydato,zdato,'w') 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5

0

1

2

3

4

5

6

7

8

Dante Pinto Jeria

Ejemplo3.21: Repetir el anterior ejemplo, pero utilizando vértices y caras. >> verts = [2 4;

2

8

8

0

2

2

4

4

5

5

8;

4;

0;

4;

6;

2;

2;

0;

2;

0 ];

caras = [

1 2

1 3

3;

4;

5 7 6 8 1; 9; Dante Pinto Jeria 11 10 4 ]; >>

5

7

6

8

1;

9;

Dante Pinto Jeria

11 10 4 ]; >> p=patch('Faces',caras,'Vertices',verts,'FaceColor','r');

8 7 6 5 4 3 2 1 0 0 1 2 3 4 5
8
7
6
5
4
3
2
1
0
0
1
2
3
4
5
6
7
8

3.2.14 Función triplot.- Esta función grafica mallas triangulares. Su sintaxis es:

triplot(TRI,x,y) triplot(TRI,x,y,color) h = triplot( ) triplot( ,'param','value','param','value' )

Ejemplo3.22: Dados los índices y coordenadas siguientes, dibujar la malla de elementos finitos triangulares. Después de almacenar las coordenadas y los índices en las variables coorde e indices, respectivamente, se teclea:

>> triplot(indices, coorde(:,1), coorde(:,2),'k');

Dante Pinto Jeria 10 9 8 7 6 5 4 3 2 1 0  

Dante Pinto Jeria

10 9 8 7 6 5 4 3 2 1 0
10
9
8
7
6
5
4
3
2
1
0
 

0

1

2

3

4

5

6

7

8

9

10

indices =

1

2

4

2

5

4

2

3

5

4

5

6

1

4

7

4

8

7

4

6

8

7

8

9

1

7

10

7

11

10

7

9

11

10

11

12

12

11

13

11

14

13

11

9

14

13

14

15

coorde =

2.0000

5.0000

1.0000

2.5000

0

0

3.5000

3.0000

2.5000

0.5000

5.0000

1.0000

5.0000

5.0000

6.5000

3.0000

8.0000

5.0000

3.5000

7.0000

6.5000

7.0000

5.0000

9.0000

Dante Pinto Jeria 7.5000 9.5000 9.0000 7.5000 10.0000 10.0000 3.2.15 Función step.- Dibuja la respuesta

Dante Pinto Jeria

7.5000

9.5000

9.0000

7.5000

10.0000

10.0000

3.2.15 Función step.-

Dibuja la respuesta paso de sistemas lineales invariantes en el tiempo. Su sintaxis es:

step step(sys) step(sys,t) step(sys1,sys2, ,sysN) step(sys1,sys2, ,sysN,t) y = step(sys,t) [y,t] = step(sys) [y,t,x] = step(sys) % solamente par modelos en el espacio de estados

Ejemplo3.23: Graficar la respuesta de la función de transferencia s/(s 2 +2s+3) frente a una entrada escalón (paso). >> step([1 ],[1 2 3])

Step Response

0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 1 2 3 4 5
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
0
1
2
3
4
5
6
7
8
Amplitude

Time (sec)

3.2.16 Función impulse.-

Da la respuesta a una función impulso. Su sintaxis es:

impulse

impulse(sys)

impulse(sys,t)

Ejemplo3.24: Graficar la respuesta de la función de transferencia s/(s 2 +2s+3) frente a una entrada impulso. >> impulse([1 ],[1 2 3])

Impulse Response Dante Pinto Jeria 0.3 0.25 0.2 0.15 0.1 0.05 0 -0.05 0 1

Impulse Response

Dante Pinto Jeria

0.3 0.25 0.2 0.15 0.1 0.05 0 -0.05 0 1 2 3 4 5 6
0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
0
1
2
3
4
5
6
7
8
Amplitude

Time (sec)

3.2.17 Función rlocus.- Grafica la localización de raíces de una función de transferencia. Su sintaxis es:

rlocus(sys)

rlocus(sys1,sys2,

Ejemplo3.25: Graficar la localización de raíces de la siguiente función de transferencia.

)

de raíces de la siguiente función de transferencia. ) >> h = tf([2 5 1],[1 2

>> h = tf([2 5 1],[1 2 3]); rlocus(h)

Root Locus

1.5 1 0.5 0 -0.5 -1 -1.5 -2.5 -2 -1.5 -1 -0.5 0 0.5 Imaginary
1.5
1
0.5
0
-0.5
-1
-1.5
-2.5
-2
-1.5
-1
-0.5
0
0.5
Imaginary Axis

Real Axis

3.2.18 Función subplot.- Crea gráficos en mosaico. La sintaxis es:

h = subplot(m,n,p) or subplot(mnp) subplot(m,n,p,'replace')

Dante Pinto Jeria subplot(m,n,P) subplot(h) subplot('Position',[left bottom width height]) subplot( h = subplot( ,

Dante Pinto Jeria

subplot(m,n,P)

subplot(h) subplot('Position',[left bottom width height])

subplot(

h = subplot(

, prop1, value1, prop2, value2, )

)

Ejemplo3.26:

>> subplot(2,2,[1 3])

subplot(2,2,2)

subplot(2,2,4)

 

1

 

0.9

 

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0

 
 

0

0.5

1

Ejemplo3.27:

1

 

0.8

 

0.6

0.4

0.2

0

0

0.5

1

1

 

0.8

 

0.6

0.4

0.2

0

0

0.5

1

>> subplot(2,2,1);subplot(2,2,2);subplot(2,2,3);subplot(2,2,4)

  0.6 0.4 0.2 0 0 0.5 1 >> subplot(2,2,1);subplot(2,2,2);subplot(2,2,3);subplot(2,2,4) 44
Dante Pinto Jeria 3.3 GRÁFICOS 3D.- 3.3.1 Función mesh, meshc, meshz.- Realiza la gráfica en

Dante Pinto Jeria

3.3 GRÁFICOS 3D.-

3.3.1 Función mesh, meshc, meshz.- Realiza la gráfica en 3D de mallas. La función meshc, dibuja un contorno debajo de la función. La función meshz dibuja una cortina debajo del dibujo en 3D. Su sintaxis es:

mesh(X,Y,Z) mesh(Z) mesh( ,C) mesh( ,'NombreProp',ValorPropiedad, mesh(manejador_ejes, ) meshc( ) meshz( ) h = mesh( )

)

Ejemplo3.28:

>> [X,Y] = meshgrid(-2:.1:2, -2:.1:2); Z = X .* exp(-X.^2 - Y.^2); mesh(X,Y,Z)

0.5

0

-0.5

2

1 1 0 0 -1 -1 -2 -2
1
1
0
0
-1
-1
-2
-2

2

Se puede hacer una animación en tiempo real de la gráfica, haciendo clic en el ícono

2 1 1 0 0 -1 -1 -2 -2 2 Se puede hacer una animación en
2 1 1 0 0 -1 -1 -2 -2 2 Se puede hacer una animación en
Dante Pinto Jeria Y luego con las flechas del teclado o con el ratón y

Dante Pinto Jeria

Y luego con las flechas del teclado o con el ratón y presionando el botón izquierdo, se hace rotar la figura.

Ejemplo3.29: Utilizar meshc >> [X,Y] = meshgrid(-2:.1:2, -2:.1:2); Z = X .* exp(-X.^2 - Y.^2); meshc(X,Y,Z)

0.5

0

-0.5

2

1 1 0 0 -1 -1 -2 -2
1
1
0
0
-1
-1
-2
-2

Ejemplo3.30: Utilizar meshz >> [X,Y] = meshgrid(-2:.1:2, -2:.1:2); Z = X .* exp(-X.^2 - Y.^2); meshz(X,Y,Z)

0.5

0

-0.5

2

1 1 0 0 -1 -1 -2 -2
1
1
0
0
-1
-1
-2
-2

2

2

Dante Pinto Jeria 3.3.2 Función surf, surfc.- Esta función grafica un superficie sombreada, en 3D.

Dante Pinto Jeria

3.3.2 Función surf, surfc.-

Esta función grafica un superficie sombreada, en 3D. Y la función surfc, grafica lo mismo,

pero con un contorno en la parte inferior. Su sintaxis es

surf(Z)

surf(Z,C)

surf(X,Y,Z)

surf(X,Y,Z,C)

surf(

surf(manejador_ejes,

surfc(

h = surf(

,'NombPropiedad',ValorPropiedad)

)

)

)

Ejemplo3.31:

>> [X,Y] = meshgrid(-2:.1:2, -2:.1:2); Z = X .* exp(-X.^2 - Y.^2); surf(X,Y,Z)

0.5

0

-0.5

2

1 1 0 0 -1 -1 -2 -2
1
1
0
0
-1
-1
-2
-2

2

3.3.3 Función polt3.-

Realiza la gráfica de curvas en 3D.La sintaxis es:

plot3(X1,Y1,Z1,

plot3(X1,Y1,Z1,EspecLinea,

plot3(

h = plot3(

Ejemplo3.32:

>>t = 0:pi/50:10*pi;plot3(sin(t),cos(t),t);grid on;axis square

)

)

,'NombrePropiedad',ValorPropiedad,

)

)

Dante Pinto Jeria 40 30 20 10 0 1 0.5 0.5 0 0 -0.5 -0.5
Dante Pinto Jeria 40 30 20 10 0 1 0.5 0.5 0 0 -0.5 -0.5
Dante Pinto Jeria
40
30
20