Documente Academic
Documente Profesional
Documente Cultură
MATLAB
2019
ÍNDICE GENERAL
Índice General ii
Índice de Cuadros iv
Índice de Figuras v
I INTRODUCCIÓN A MATLAB 1
1.1 ¿Qué es Matlab? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Entorno de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Utilización de la ventana de comandos . . . . . . . . . . . . . . . . . . . 3
1.4 Formato de visualización de números . . . . . . . . . . . . . . . . . . . . 4
1.5 Funciones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7 Números complejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.8 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
II ARRAYS 8
2.1 Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Tamaño de un vector o matriz . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Vectores y matrices usuales . . . . . . . . . . . . . . . . . . . . . 11
2.2.3 Rango, inversa y determinante de una matriz . . . . . . . . . . . . 12
2.2.4 Operaciones sobre un vector o matriz . . . . . . . . . . . . . . . . 12
2.3 Variables lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
ii
Índice General
IV FICHEROS SCRIPT 29
4.1 Ejecución de un fichero Script . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Lectura y escritura de variables interactivas . . . . . . . . . . . . . . . . . 30
4.3 Importación y exportación de datos . . . . . . . . . . . . . . . . . . . . . 31
4.3.1 Importación de datos . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 Exportación de datos . . . . . . . . . . . . . . . . . . . . . . . . 33
V FICHEROS FUNCTION 35
5.1 Creación de un fichero de función . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Estructura de un fichero de función . . . . . . . . . . . . . . . . . . . . . 36
5.3 Ejemplos de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.4 Funciones simbólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.4.1 Construcción de funciones simbólicas . . . . . . . . . . . . . . . . 37
5.4.2 Conversión de formato simbólico a inline . . . . . . . . . . . . . . 38
5.5 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
VI PROGRAMACIÓN EN MATLAB 41
6.1 Estructuras condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1.1 if-else-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1.2 if-elseif-else-end . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.1.3 switch-case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2 Estructuras de repetición o bucles . . . . . . . . . . . . . . . . . . . . . . 45
6.2.1 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2.2 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.3 Ruptura de bucles de repetición . . . . . . . . . . . . . . . . . . . . . . . 45
6.3.1 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.3.2 continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.4 Ejemplos de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.5 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
A ANEXOS. 46
1.1 Resumen de funciones de Matlab . . . . . . . . . . . . . . . . . . . . . . 46
iii
ÍNDICE DE CUADROS
iv
ÍNDICE DE FIGURAS
v
Índice de Figuras
vi
I
CAPÍTULO
INTRODUCCIÓN A MATLAB
1
1.2 Entorno de trabajo | Capitulo I
Figura No 1.1:
Entorno gráfico de Matlab.
Figura No 1.2:
Ventana del Editor para la edición de código Matlab.
2
1.3 Utilización de la ventana de comandos | Capitulo I
Figura No 1.3:
Ventana de Ayuda abierta.
Figura No 1.4:
Ventana de Gráficos representando un gráfico Matlab.
3
1.4 Formato de visualización de números | Capitulo I
• El comando clc (teclear clc y pulsar Enter ) borra la Ventana de Comandos. Este
comando limpia la ventana de los comandos ejecutados pero no borra las variables
previamente definidas.
• El comando clear (teclear clear y pulsar Enter ) borra las variables del Workspace.
Figura No 1.5:
Ejemplo de una ventana de comandos.
4
1.5 Funciones básicas | Capitulo I
El usuario puede controlar el número de decimales con que aparece en pantalla el valor
de las variables (en el menú FILE >PREFERENCES > COMMAND WINDOW).
» Nombre de la función(argumento)
Cuadro No 1.3 :
Funciones matemáticas elementales.
Función Descripción
sqrt(x) Raíz cuadrada
exp(x) Exponencial
abs(x) Valor absoluto
log(x) Logaritmo natural de base e (ln)
log10(x) Logaritmo en base 10
factorial(x) Función factorial x!
Cuadro No 1.4 :
Funciones trigonométricas.
Función Función Función Descripción
Seno, Arcoseno, Seno Hiperbólico del ángulo x
sin(x) asin(x) sinh(x)
(x en radianes)
Coseno, Arcocoseno, Coseno Hiperbólico del
cos(x) acos(x) cosh(x)
ángulo x (x en radianes)
Tangente, Arcotangente, Tangente Hiperbólico
tan(x) atan(x) tanh(x)
del ángulo x (x en radianes)
Cotangente, Arcocotangente, Cotangente
cot(x) acot(x) coth(x)
Hiperbólico del ángulo x (x en radianes)
Cuadro No 1.5 :
Funciones de redondeo.
Función Descripción
round(x) Redondea al entero más próximo
fix(x) Redondea hacia cero
ceil(x) Redondea hacia infinito
floor(x) Redondea hacia menos infinito
sign(x) Función de signo. Devuelve 1 si x>0,-1 si x<0, y 0 si x=0
5
1.6 Variables | Capitulo I
Figura No 1.6:
Funciones trigonométricas seno y coseno.
1.6 Variables
Una variable es un nombre compuesto por una letra al cual se le asigna un valor numérico,
que puede ser utilizado en expresiones matemáticas, funciones y cualquier otro tipo de
comando. Una variable es el nombre de una posición de memoria a la cual se le asigna un
valor que puede ser reemplazado y por tanto el antiguo es eliminado.
• Numéricos: Por defecto se trabaja con números reales del tipo llamado double
(abreviatura de doble precisión).
• Caracteres: Formados por cualquiera de los caracteres del código ASCII. Cada
carácter ocupa un elemento de la matriz de la variable asociada del tipo char array.
La forma de definir un carácter es encerrarlo entre comillas simples ’a’.
• Lógicos: Son los formados por los valores verdadero y falso, y sus valores se asocian
a los valores numéricos 1 (verdadero) y 0 (falso).
1 >> z =3+4* i
2 z =
3 3.0000 + 4.0000 i
4 >> % Parte real de un complejo :
6
1.8 Problemas propuestos | Capitulo I
5 >> real ( z )
6 ans =
7 3
8 >> % Parte imaginaria de un complejo :
9 >> imag ( z )
10 ans =
11 4
12 >> % Conjugado de un complejo :
13 >> conj ( z )
14 ans =
15 3.0000 - 4.0000 i
16 >> % M d u l o de un complejo :
17 >> abs ( z )
18 ans =
19 5
20 >> % R e p r e s e n t a c i n g r f i c a de un complejo en un ←-
diagrama polar :
21 >> compass ( z )
Figura No 1.7:
Representación gráfica de un complejo en un diagrama polar.
7
II
CAPÍTULO
ARRAYS
Todas las variables en Matlab son arrays. Un escalar es simplemente un array de un solo
elemento. Un vector es un array con una sola fila o columna de elementos. Una matriz es
un array con elementos distribuidos en filas y columnas.
2.1 Vectores
nombre de la variable=[elementos del vector]
1 >> v =[0:2:12]
2 v =
3 0 2 4 6 8 10 12
8
2.2 Matrices | Capitulo II
a:h:b. Entonces, si lo que conocemos del vector es que la primera coordenada vale
0, la última 12 y que tiene 7 elementos, escribiremos:
• Para acceder a los elementos de un vector se escribe el nombre del vector y entre
paréntesis su indice:
1 >> v (3)
2 ans =
3 4
• v(m:n) se refiere a todos los elementos comprendidos entre las posiciones m y n del
vector v.
1 >> v (2:5)
2 ans =
3 2 4 6 8
2.2 Matrices
Las matrices se escriben como los vectores, pero separando las filas mediante un punto
y coma.
9
2.2 Matrices | Capitulo II
Figura No 2.1:
La matriz en Matlab.
10
2.2 Matrices | Capitulo II
11
2.3 Variables lógicas | Capitulo II
Cuadro No 2.1 :
Operadores aritméticos de arreglo de datos.
A.*B, es la multiplicación elemento por elemento de los arreglos A y B, los cuales deben
.*
tener el mismo tamaño.
A./B, es la matriz con elementos A(i,j)/B(i,j), A y B deben tener el mismo tamaño, al menos
./
que uno sea un escalar.
A. \ B, es la matriz con elementos B(i,j)/A(i,j), A y B deben tener el mismo tamaño, al
. \
menos que uno sea un escalar.
A. B̂, es la matriz con elementos A(i,j) elevados a la potencia B(i,j), A y B deben tener el
.ˆ
mismo tamaño, al menos que uno sea un escalar.
Para matrices:
12
2.4 Polinomios | Capitulo II
• == igual a ...
• >= mayor o igual que ...
• <= menor o igual que ...
• = negación...
• && conjunción "y"
• || disyunción "o"
2.4 Polinomios
Los polinomios constituyen una clase de función de gran importancia, debido a que son
fáciles de evaluar y, por ello, muy utilizadas para aproximar funciones. Matlab representa
el polinomio de grado n: p(x) = a1 xn + a2 xn−1 + ... + an x + an+1 mediante el vector:
p = [a1 , a2 , ..., an , an+1 ], cuyos elementos (coeficientes) están ordenados de mayor a menor
grado, incluyendo los coeficientes nulos. Sean p y q los vectores que representan los
polinomios p(x) y q(x):
13
2.5 Problemas propuestos | Capitulo II
14
III
CAPÍTULO
REPRESENTACIÓN GRÁFICA
1. Creación de abscisas y ordenadas: Crear un vector con los valores del eje de
abscisas (x) y otro con el de ordenadas (y). Las dimensiones de los vectores x e y
deben ser iguales; de hecho, y se calcula a partir de x.
2. Representación: ejecutar una instrucción gráfica.
Cuadro No 3.1 :
Funciones gráficas.
Función Descripción
plot (x,y) eje x e y lineal.
semilogx(x,y) eje x en logarítmico y eje y en lineal.
semilogy(x,y) eje y en logarítmico y eje x en lineal.
loglog(x,y) eje x e y en logarítmico.
stem(x,y) el trazo de las coordenadas (x,y) parte del eje de abscisas.
stairs(x,y) el trazo de las coordenadas (x,y) es de forma escalonada.
15
3.1 Gráficos bidimensionales | Capitulo III
Figura No 3.1:
Función plot(x,y).
Figura No 3.2:
Función semilogx(x,y).
1 x = 0:1000;
2 y = log ( x ) ;
3 semilogx (x , y )
16
3.1 Gráficos bidimensionales | Capitulo III
Figura No 3.3:
Función loglog(x,y).
1 x = logspace ( -1 ,2) ;
2 y = exp ( x ) ;
3 loglog (x ,y , ’ -s ’)
4 grid on
Figura No 3.4:
Función stem(x,y).
17
3.1 Gráficos bidimensionales | Capitulo III
Figura No 3.5:
Función stairs(x,y).
3. Ejes de representación: Se pueden cambiar los valores inicial y final de los ejes de
la representación mediante la función: axis([xmin xmax ymin ymax]).
Cuadro No 3.2 :
Funciones axis.
Función Descripción
axis([xmin xmax ymin ymax]) Define los límites de los ejes.
axis off Visualiza un gráfico sin fondo de ejes.
axis square Utiliza líneas de ejes con longitudes iguales.
Figura No 3.6:
Función axis([xmin xmax ymin ymax]).
18
3.1 Gráficos bidimensionales | Capitulo III
1 x = linspace (0 ,2* pi ) ;
2 y = sin ( x ) ;
3 plot (x ,y , ’ -o ’)
4 axis ([0 2* pi -1.5 1.5])
Figura No 3.7:
Función axis off.
1 surf ( peaks )
2 axis off
1 x = linspace (0 ,10) ;
2 y = sin ( x ) ;
3 plot (x , y )
4 grid on
5 grid minor
19
3.1 Gráficos bidimensionales | Capitulo III
Figura No 3.9:
Función subplot.
1 subplot (2 ,2 ,1) ;
2 x = linspace ( -3.8 ,3.8) ;
3 y_cos = cos ( x ) ;
4 plot (x , y_cos ) ;
5 title ( ’ Subplot 1: Cosine ’)
6
7 subplot (2 ,2 ,2) ;
20
3.1 Gráficos bidimensionales | Capitulo III
Figura No 3.10:
Ventana de Gráficos representando un gráfico Matlab.
1 >> x = pi *( -1:0.01:1) ;
2 >> y = x .* sin ( x ) ;
3 >> plot (x , y )
4 >> hold on % Mantiene en la misma ventana ←-
grafica los dibujos anteriores
5 >> grid on
6 >> plot (x , cos ( x ) , ’ro - ’ ,x ,y , ’ bp : ’)
7 >> xlabel ( ’ Tiempo ’)
8 >> ylabel ( ’ Valor ’)
9 >> legend ( ’ cos ( x ) ’ , ’y ’)
10 >> title ( ’ Grafico de ejemplo ’)
11 >> gtext ( ’ curva ’)
21
3.2 Gráficos tridimensionales | Capitulo III
1 x = -1:0.1:1; % 1. G e n e r a c i n de la malla
2 y = -1:0.1:1;
3 [X , Y ]= meshgrid (x , y ) ;
4 Z = X .^2+ Y .^2; % 2. E v a l u a c i n de la f u n c i n .
5 surf (X ,Y , Z ) % 3. R e p r e s e n t a c i n de la superficie .
Figura No 3.11:
Ejemplo de generación de gráfico tridimensional.
1. plot3(x,y,z):
1 t = 0: pi /50:10* pi ;
2 st = sin ( t ) ;
3 ct = cos ( t ) ;
4 plot3 ( st , ct , t )
22
3.2 Gráficos tridimensionales | Capitulo III
Figura No 3.12:
Función plot3.
2. mesh(x,y,z): dibuja una malla de alambres con el color determinado por Z, por lo
que el color es proporcional a la altura de la superficie.
Figura No 3.13:
Función mesh.
1 [X , Y ] = meshgrid ( -8:.5:8) ;
2 R = sqrt ( X .^2 + Y .^2) + eps ;
3 Z = sin ( R ) ./ R ;
4 mesh (X ,Y , Z )
23
3.3 Gráficos específicos | Capitulo III
Figura No 3.14:
Función surf.
Figura No 3.15:
Función meshc.
1 figure
2 [X , Y ] = meshgrid ( -3:.125:3) ;
3 Z = peaks (X , Y ) ;
4 meshc ( Z )
24
3.3 Gráficos específicos | Capitulo III
Figura No 3.16:
Función pie.
25
3.3 Gráficos específicos | Capitulo III
1 y = [1 2 3; 4 5 6];
2 ax1 = subplot (1 ,2 ,1) ;
3 bar ( ax1 , y )
4
Figura No 3.17:
Función bar.
26
3.4 Gráficos de propósito especial | Capitulo III
Figura No 3.18:
Función histogram.
Figura No 3.19:
Funciones convexhull, delauney, voronoi.
27
3.5 Problema propuesto | Capitulo III
expresan en función del ángulo t como: r=a+bcost, z=bsent, con t ∈ [0,2π ]. Al girar
entorno a Z, el punto (r,0,z) recorre las posiciones (x,y,z), siendo: x=rcoss, y=rsens, siendo
s ∈ [0,2π] el ángulo de giro. Esta parametrización representa la superficie tórica mediante
el siguiente código:
1 a =2;
2 b =1;
3 s =0: pi /10:2* pi ;
4 t =0: pi /10:2* pi ;
5 [T , S ]= meshgrid (t , s ) ;
6 R = a + b * cos ( T ) ;
7 Z = b * sin ( T ) ;
8 X = R .* cos ( S ) ;
9 Y = R .* sin ( S ) ;
10 mesh (X ,Y , Z )
11 axis equal
12 pause
13 surf (X ,Y , Z )
14 axis equal
Figura No 3.20:
Gráfico de un toro.
28
IV
CAPÍTULO
FICHEROS SCRIPT
Para escribir un programa o fichero de comandos habrá que crear un fichero que tenga
extensión .m, los pasos a seguir son:
Figura No 4.1:
Creación de fichero script.
29
4.1 Ejecución de un fichero Script | Capitulo IV
30
4.3 Importación y exportación de datos | Capitulo IV
5 El programa ha terminado :
6 A =
7 0.27862 0.9266
8 0.57438 0.34119
9 0.27862 0.9266
10 0.57438 0.34119
3. Salidad con formato fprintf: Además de exhibir tanto texto como valores de
matrices, podemos especificar el formato que se usará al exhibir los valores, y también
saltos de línea. La sintaxis es la siguiente: fprintf (formato, matrices)
El formato contiene el texto y las especificaciones de formato para las salidas, y va
seguido de los nombres de las matrices por exhibir. Dentro de los formatos se usan
los especificadores y es necesario que utilice un operador de precisión para especificar
el número de dígitos después del punto decimal:
• %e: valores se exhiben en notación exponencial.
• %f: valores se exhiben en notación decimal.
• %d: valores se exhiben en entero con signo.
• %g: valores usarán %e o %f el que sea más corto.
• n: la cadena se exhibirá hasta donde aparezca y el resto de la información se
exhibirá en la siguiente línea.
5 A1 =
6 5.5 8.8 7.7 9.9
7 5500 8800 7700 9900
8 X is 5.50 meters or 5500.000 mm
9 X is 8.80 meters or 8800.000 mm
10 X is 7.70 meters or 7700.000 mm
11 X is 9.90 meters or 9900.000 mm
%4.2f especifica que la salida es un número con un ancho de campo de cuatro dígitos,
incluidos dos dígitos después del punto decimal.
31
4.3 Importación y exportación de datos | Capitulo IV
otras aplicaciones. Microsoft Excel utiliza datos altamente compatibles con bastantes tipos
de aplicaciones y para transferir datos desde/hacia hojas de cálculo Excel se utilizan los
siguientes comandos:
• La ubicación del archivo debe ser el directorio de trabajo actual o bien estar en la
ruta de búsqueda.
• Si el archivo Excel importado tiene más de una hoja de cálculo sólo se importan los
datos de la primera de las hojas.
Figura No 4.3:
Hoja de cálculo ’base.xlsx’
32
4.3 Importación y exportación de datos | Capitulo IV
• Si se desean los datos numéricos, los datos de texto y los datos combinados del
archivo de Excel sin procesar.
33
4.3 Importación y exportación de datos | Capitulo IV
Figura No 4.4:
Hoja de cálculo resultante ’exportacion.xlsx’
Figura No 4.5:
Hoja de cálculo resultante ’base.xlsx’
34
V
CAPÍTULO
FICHEROS FUNCTION
35
5.2 Estructura de un fichero de función | Capitulo V
Una de las diferencias de los archivos de tipo function respecto a los ficheros script es la
posibilidad de utilizar argumentos, tanto de entrada ("datos") como de salida ("resultados").
Su funcionamiento es análogo a otras funciones de Matlab.
Es conveniente que los nombres de la función y del fichero coincidan. Para ejecutar la
function se realiza como en las órdenes normales, es decir, en la ventana de comandos o
en otro fichero script. Los argumentos tanto de entrada como de salida pueden ser varios,
separados por comas. Las variables definidas en la función son locales, es decir, los nombres
de las variables pueden ser los mismos que en otros programas o funciones.
1 function [ x1 , x2 ]= raices (a ,b , c )
2 % Funcion que calcula en x1 y x2 las raices de un ←-
polinomio de segundo grado ax ^2+ bx + c =0
3 x1 =( - b + sqrt ( b *b -4* a * c ) ) /(2* a ) ;
4 x2 =( -b - sqrt ( b *b -4* a * c ) ) /(2* a ) ;
5 end
36
5.4 Funciones simbólicas | Capitulo V
1 syms x
2 f =(2* x ^2 -1) /( x ^3 -2* x ^2+2* x -1)
1 >> syms x
2 f =(2* x ^2 -1) /( x ^3 -2* x ^2+2* x -1)
3 f =
4 (2* x ^2 - 1) /( x ^3 - 2* x ^2 + 2* x - 1)
5 >> subs (f ,x ,0) % f (0) , sustituye x por 0 en f :
6 ans =
7 1
8 >> solve ( f ) % Resuelve la ecuacion f ( x ) =0
9 ans =
10 -2^(1/2) /2
11 2^(1/2) /2
12 >> diff ( f ) % Calcula la derivada de f
13 ans =
14 (4* x ) /( x ^3 - 2* x ^2 + 2* x - 1) - ((2* x ^2 - ←-
1) *(3* x ^2 - 4* x + 2) ) /( x ^3 - 2* x ^2 + 2* x - 1) ^2
37
5.5 Problemas propuestos | Capitulo V
Si lo que queremos es que las operaciones sean elemento a elemento, se realiza con la
combinación de la orden inline y vectorize.
38
A
CAPÍTULO
ANEXOS.
45
Anexos
46
Anexos
47
Anexos
48
Anexos
49
Anexos
50
Anexos
51