2. ¿Qué es MatLab?
MATrix LABoratory
LENGUAJE DE COMPUTACIÓN TÉCNICA
FÁCIL USO
MÚLTIPLES HERRAMIENTAS PARA APLICAR EN
TODAS LAS ÁREAS DEL CONOCIMIENTO
• PODEROSO SISTEMA DE VISUALIZACIÓN DE DATOS
Y DISEÑO DE INTERFAZ GRÁFICA
• AMPLIA DOCUMENTACIÓN
5. VENTANA DE COMANDOS
(PARA ESCRIBIR COMANDOS
EN MATLAB)
ENTORNO-ESCRITORIO DE MATLAB
Barra de menús
Barra de
herramientas
Navegador del
Directorio actual
Navegador del
workspace
Historial de
comandos
Botón de inicio
8. ENTORNO-WORKSPACE
Consiste en un conjunto de variables
(llamadas arreglos) construidas
durante una sesión de MATLAB y
almacenadas en memoria. Las
variables son añadidas al workspace
a través del uso de funciones,
ejecuciones de archivos M y
cargando Workspace almacenados
>> A=[9 8 7 6 5 4 3 2 1];
>> B=[6 7];
Todos los datos ingresados
al MATLAB son
almacenados en forma de
matriz o un arreglo
multidimensional
11. Los vectores son un caso particular de las matrices, para operaciones
numéricas generalmente se usan vectores
Vector fila Vector columna
FUNDAMENTOS DE MATLAB
Creación de matrices
En forma general Matlab define a una variable como una matriz o vector :
12. COMANDOS BÁSICOS
•ver : Muestra la versión del código de licencia y las toolboxes
disponibles.
• save nombre : Guarda todas las variables del Workspace en el archivo
nombre.mat.
• save nombre1 a : Guarda las variables a del Workspace en el archivo
nombre1.mat.
• load nombre : Carga de variables.
• clear a : Borra la variable almacenada en el Worspace.
• who : Para saber qué variables han sido ya introducidas.
• help : Se teclea seguido de un comando, función o archivo y
aparecerá una descripción.
FUNDAMENTOS DE MATLAB
17. >> a=150/0
a=
Inf
>> clear b
>> b=0/0
b=
NaN
>> Inf-Inf
ans =
NaN
>> c=15+sqrt(-1)
c=
15.0000 + 1.0000i
>> Inf/Inf
ans =
NaN
FUNDAMENTOS DE MATLAB
VARIABLES ESPECIALES
• Matlab opera normalmente en
formato double según el formato
IEEE.
• Los números que son más grandes de
representar son considerados
infinito.
• Maneja correctamente los valores
Inf (infinito) y NaN (not-a-number).
• Genera complejos automaticamente
18. Calcular E: a) X=4
b) X=1,2,3,..,10
FUNDAMENTOS DE MATLAB
19. Ejemplo 4.
Encuentre el valor de los catetos de un triángulo rectángulo que tiene
una hipotenusa igual a 50 y un ángulo de 65°
>> h=50;teta=65*pi/180;
>> a=50*cos(teta)
a=
2.113091308703497e+001
>> b=50*sin(teta)
b=
4.531538935183249e+001
Ejemplo 5.
Encuentre el logaritmo en base 7 de 25
>> x=log(25)/log(7)
x=
1.654174950693832
FUNDAMENTOS DE MATLAB
20. Ejemplo 6.
En un triángulo rectángulo se conoce que uno de sus catetos tiene 10
unidades y la hipotenusa de 15 unidades encuentre el ángulo entre ellos
>> alfa=acos(10/15)*180/pi
alfa =
4.818968510422140e+001
Ejemplo 7.
FUNDAMENTOS DE MATLAB
Ejemplo 8.
Convertir las coordenadas cartesianas a cilíndricas y viceversa
Convertir las coordenadas cartesianas a esféricas y viceversa
22. rem (m,n) Resto de la división entera de n entre m: rem(m,n)=m-n*fix(m/n)
mod (m,n) Resto de la división entera de n entre m: mod(m,n)=m-n*floor(m/n)
• sign (a)
• abs(a)
signo de a (1 ó 0 ó -1)
Valor absoluto a
• gcd(m,n) Máximo común divisor
• lcm(m,n) Mínimo común múltiplo
• max(a,b)
• min(a,b)
Máximo de los valores entre a y b
Mínimo de los valores entre a y b
• nthroot(x,n) raíz n-ésima de x
FUNDAMENTOS DE MATLAB
OPERACIONES MATRICIALES BÁSICAS
23. Los sub índices en MATLAB empiezan en uno.
FUNDAMENTOS DE MATLAB
VECTORES Y MATRICES
24. size(A) : Devuelve el valor [número de filas, número de columnas] de la matriz A.
size(A,1) :
size(A,2) :
length(A) :
Devuelve el número de filas de la matriz A.
Devuelve el número de columnas de la matriz A.
Si A es un vector (fila o columna) devuelve el número de elementos
del vector.
Variablesmatriciales
Para crear una variable (o cambiar su valor) basta colocarla a la izquierda del
operador asignación (=). Podemos evaluar una expresión en MATLAB almacenando
el resultado en una variable.
variable = expresión
o simplemente para obtener el resultado
expresión
Cuyo valor se asigna a una variable interna llamada ans .
FUNDAMENTOS DE MATLAB
VECTORES Y MATRICES
Dimensionesde una matriz
25. VECTORES Y MATRICES
Operaciones con matrices
Existen 2 tipos de operaciones con matrices. Las operaciones matriciales que se rigen por las reglas
conocidas del álgebra lineal: suma (+), resta (-), producto (*), división (/) y potencia (^); y las
operaciones con matrices que se rigen elemento a elemento: producto e.e. (.*) , división e.e. (./) y
potencia e.e. (.^) .
También son válidas, y en las mismas condiciones, a división por la izquierda () y la división por la
izquierda e.e. (.).
FUNDAMENTOS DE MATLAB
26. VECTORES Y MATRICES
Operaciones con matrices
Para aplicar las operaciones e.e. entre matrices se requieren que los operandos tengan el
mismo tamaño (aplicados entre escalares producen el mismo resultado que las
operaciones habituales).
FUNDAMENTOS DE MATLAB
31. VECTORES Y MATRICES
Formas de construir matrices
[A1 A2 A3 …] ó horzcat(A1,A2,…)
Crea una matriz pegando las matrices A1,A2,… , (todas deben tener igual número de filas).
[A1;A2;A3 …] ó vertcat(A1,A2,…)
Crea una matriz apilando las matrices A1,A2,… , una debajo de otra (todas deben tener igual
número de columnas).
Juntando matrices
Usando funciones predefinidas
A’ : Devuelve la matriz transpuesta de A.
inv(A) : Devuelve la matriz inversa de A.
triu(A) : Devuelve la matriz triangular superior de la matriz A.
tril(A) : Devuelve la matriz triangular inferior de la matriz A.
diag(V) : Crea una matriz diagonal con el vector V en la diagonal.
diag(A) : Extrae la diagonal principal de la matriz A como vector columna.
eye(n) : Crea la matriz identidad de orden n.
eye(m,n) : Crea la matriz de tamaño mxn con unos en la diagonal principal y ceros en el resto.
FUNDAMENTOS DE MATLAB
toeplitz(v) define una matriz simétrica de diagonal constante con v como primera fila y
primera columna
32. VECTORES Y MATRICES
Formas de construir matrices
Usando funciones predefinidas
eye(size(A)) : Crea una matriz del mismo tamaño que A con unos en la diagonal principal
y ceros en el resto.
ones(n): Crea una matriz de unos de nxn.
ones(m,n) : Crea una matriz de unos de mxn.
ones(size(A)) : Crea una matriz de unos del mismo tamaño que A.
zeros(n) : Crea una matriz de ceros de nxn.
zeros(m,n) : Crea una matriz de ceros de mxn.
zeros(size(A)) : Crea una matriz de ceros del mismo tamaño que A.
linspace(a,b,n) : Crea un vector con n valores equiespaciados entre a y b.
logspace(a,b,n) : Crea un vector con n valores equiespaciados logaritmicamente entre
10^a y 10^b.
rand(n) : Devuelve una matriz nxn con valores pseudoaleatorios extraidas de una
distribución uniforme en el intervalo (0,1).
rand(m,n) : Devuelve una matriz mxn con valores pseudoaleatorios extraidas de una
distribución uniforme en el intervalo (0,1).
FUNDAMENTOS DE MATLAB
33. VECTORES Y MATRICES
Formas de construir matrices
Usando funciones predefinidas
eye(size(A)) : Crea una matriz del mismo tamaño que A con unos en la diagonal principal
y ceros en el resto.
randi(imax,n) : Devuelve una matriz nxn con valores enteros pseudoaleatorios extraidos
de una distribución uniforme discreta en el intervalo (1:imax).
randi(imax,m,n) ó randi(imax,[m,n]) : Devuelve una matriz mxn con valores enteros
pseudoaleatorios extraidos de una distribución uniforme discreta en el intervalo (1:imax).
randi([imin imax],m,n) ó randi([imin imax],[m,n]) : Devuelve una matriz mxn con valores
enteros pseudoaleatorios extraidos de una distribución uniforme discreta en el intervalo
(imin:imax).
magic(n) : Devuelve una matriz nxn de enteros desde 1 hasta n^2 con igual suma de filas y
columnas. El orden de n debe ser un escalar mayor o igual a 3
FUNDAMENTOS DE MATLAB
randn(n) : Devuelve una matriz nxn con valores pseudoaleatorios extraidos de una
distribución normal (media 0 y varianza 1)
36. VECTORES Y MATRICES
Formas de construir matrices
Usando el operador:
En el caso particular donde p=1, se puede escribir a:b en lugar de a:1:b
Entonces se pueden generar vectores y crearlo , V=a:p:b.
V(n) : Devuelve el n-ésimo elemento del vector V.
V(end) ó V(length(V)) : Devuelve el último elemento del vector V.
V(n1:n2) : Devuelve los elementos de V entre el n1-ésimo y el n2-ésimo.
V(n1:p:n2) : Devuelve el vector de los elementos de V entre el n1-ésimo y el n2-ésimo,
tomados de p en p.
V(n2:-p:n1) : Devuelve el vector de los elementos de V entre el n2-ésimo y el n1-ésimo,
tomados de p en p.
V(1:end) ó V(1:lengh(V)) : Devuelve el propio vector V.
V(:) : Devuelve todos los elementos de V como una ccolumna.
FUNDAMENTOS DE MATLAB
38. VECTORES Y MATRICES
Formas de construir matrices
Usando el operador:
En el caso de matrices hay que seleccionar filas y columnas
A(m,n) : Devuelve el elemento amn de la matriz A.
A(m,:) : Devuelve la fila m-ésima de la matriz A.
A(end,:) ó A(size(A,1),:) : Devuelve la última fila de la matriz A.
A(:,n) : Devuelve la columna n-esima de la matriz A.
A(:,:) : Devuelve la matriz A.
FUNDAMENTOS DE MATLAB
>> B=A(end,2:end)
B =
18 25 2 9
>> 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
39. VECTORES Y MATRICES
Formas de construir matrices
Indexando matrices a partir de vectores
V(J) ó V([j1 j2 j3 …]) : Devuelve el vector formado por los elementos de V indicados por J.
Es decir el vector [V(j1) V(j2) V(j3) … ]
A(I,:) ó A([i1 i2 i3 … ],:) : Define una matriz formada por la filas de A indicadas por I.
Es decir las filas i1-ésima,i2-ésima,etc. de A en ese orden.
A(:,J) ó A(:,[j1 j2 j3 … ]) : el mismo caso anterior para las columnas.
A(I,J) : Como en el caso anterior para elementos de esas filas y esas columnas.
A(m1:m2,:) : Define la submatriz de A formada por las filas entre la m1-ésima y la m2-ésima.
A(:,n1:n2) : Define la submatriz de A formada por las columnas entre la m1-ésima y la m2-
ésima.
A(m1:m2,n1:n2) : Devuelve la submatriz A formada por los elementos de las filas y las
columnas indicadas.
FUNDAMENTOS DE MATLAB
40. 0.1493 0.8143
0.2575 0.2435
0.8407 0.9293
0.2543 0.3500
0.1966
0.2511
0.6160
0.4733
0.3517
0.8308
0.5853
0.5497
0.9172
0.2858
0.7572
0.7537
>> a(3,4)=58
a=
0.1493 0.8143
0.2575 0.2435
0.8407 0.9293
0.2543 0.3500
0.1966
0.2511
0.6160
0.4733
0.3517
0.8308
58.0000
0.5497
0.9172
0.2858
0.7572
0.7537
FUNDAMENTOS DE MATLAB
Cambiar valores de matrices
V(n)=d : Sustituye el n-ésimo elemento del vector V por el valor d.
A(m,n)=d : Sustituye el amn elemento de la matriz A por el valor d.
A(n)=d : Sustituye el n-ésimo elemento del vector A(:) por el valor d.
>> a=rand(4,5)
a=
43. VECTORES Y MATRICES
Formas de construir matrices
Matrices como vectores
Aunque las matrices se introducen por filas, MATLAB las almacena como una columna
colocando las columnas de la matriz una debajo de otra. Esto permite acceder a los
elementos de una matriz con un solo índice.
A(:) : Devuelve un vector columna formado por las columnas de la matriz A una detrás de
otra.
A(n) : Devuelve en n-ésimo elemento del vector columna A(:).
A(K) : Siendo K una matriz, devuelve una matriz del mismo tamaño que la matriz K, formada
por los elementos de A indiciados por los elementos correspondientes de K. Es decir el
elemento ij será el kij-ésimo elemento de A(:), A(kij).
reshape(A,m,n) : Devuelve una matriz del mxn cuyas columnas se forman tomando los
elementos sucesivos de A(:). Si A tiene menos o más elementos de mxn se produce un error.
Nota: Las matrices de índices deben contener valores válidos. Si A es mxn, deben ser:
Los valores pueden estar repetidos
FUNDAMENTOS DE MATLAB
44. Eliminar elementos dematrices
Asignando la matriz vacía “[]” , podemos eliminar el contenido de las variables:
V(I)=[] : Elimina los elementos del vector V indiciados por I. Devuelve el V resultante
A(I,:)=[] : Elimina las filas de la matriz A indiciadas por I .
A(:,J)=[] : Elimina las columnas de la matriz A indiciadas por J .
A(K)=[] : Elimina los elementos de A indiciados por K. Devuelve A como un vector fila .
A(I,J)=D : Sustituye los elementos de A indiciados con los vectores I y J, por los
elementos correspondientes de la matriz D. Las matrices A(I,J) y D deben ser del
mismo tamaño.
A(K)=D : Sustituye los elementos de A indiciados con la matriz K por los elementos
correspondientes de la matriz D, dicha indexación es por columnas.
Cambiar valores de matrices
FUNDAMENTOS DE MATLAB
45. • Traza de A: b=trace(A)
FUNDAMENTOS DE MATLAB
OPERACIONES MATRICIALES BÁSICAS
46. • Rango de A: rank(A)
• Polinomio característico de A : poly(A)
• Matriz triangular inferior a partir de la matriz A : tril(A)
• Matriz triangular superior a partir de la matriz A : triu(A)
• Devuelve los indices distintos de cero : find(A)
• Intercambia la matriz de izquierda a derecha : fliplr(A)
• Intercambia la matriz de arriba abajo : flipud(A)
• gira la matriz 90° en sentido antihorario : rot90(A)
• gira la matriz nx90 : rot90(A,n)
• estas funciones operan elemento a elemento : exp,log,sqrt
FUNDAMENTOS DE MATLAB
OTRAS FUNCIONES UTILIZADAS
47. 8
3
4
1
5
9
6
7
2
>> Asc=reshape(A,1,9)
Asc =
8 3 4 1 5 9 6 7 2
La funciones min y max no
sólo te da el mayor valor
sino también su posición
Reshape
ordena a una
matriz por
columnas
FUNDAMENTOS DE MATLAB
MÁS FUNCIONES DEFINIDAS
>> A=magic(3)
A=
49. >> A = zeros (2,3); B = ones (2,3);
>> cat (1,A,B) % las concatena una debajo de la otra
ans =
000
000
111
111
>> cat (2,A,B) % las concatena una al lado de la otra
ans =
000111
000111
>> cat (3,A,B) % las concatena como distintas capas de una hipermatriz
ans(:,:,1) =
000
000
ans(:,:,2) =
111
111
FUNDAMENTOS DE MATLAB
MATRICES DE N DIMENSIONES
50. Name Size Bytes Class Attributes
c 276x3968x3 35426304 uint8
>> c=imread('labo.jpg');
>> imshow(c)
>> gris=((c(:,:,1)+c(:,:,2)+c(:,:,3))/3);
>> imshow(gris)
FUNDAMENTOS DE MATLAB
MATRICES DE N DIMENSIONES
>> c=imread('labo.jpg');
>> whos c
51. OPERACIONES MATRICIALES BÁSICAS
1.-Evaluar la siguiente polinomio :
Para 20 puntos de x en el rango de 0 a 10.
2.-valuar la solución de la ecuación de segundo orden coeficientes:
FUNDAMENTOS DE MATLAB
52. >> x = [1 2 3]; y = [4 5 6];
>> cross (x,y) % producto
vectorial
ans =
-3 6 –3
>> dot (x,y) % producto
escalar
ans =
32
Estos conceptos
son my utilizados
para definir
magnitudes
física s
FUNDAMENTOS DE MATLAB
FUNCIONES PARA OPERAR CON VECTORES
55. Tipo de dato Rango de valores Función de conversión
Entero con signo de 8 bits int8
Entero con signo de 16 bits int16
Entero con signo de 32 bits int32
Entero con signo de 64 bits int64
Entero sin signo de 8 bits uint8
Entero sin signo de 16 bits uint16
Entero sin signo de 32 bits uint32
Entero sin signo de 64 bits uint64
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
57. A=
16 23 0 7 14
22 4 6 13 15
3 5 12 19 21
9 11 18 20 2
10 17 24 1 8
>> b=logical(A)
b=
1 1 0 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1
1
1
1
1
>> whos b
Name Size Bytes Class Attributes
b 5x5 25 logical
Recordar que las
variables lógicas
son de 1 byte por
elemento
FUNDAMENTOS DE MATLAB
TIPOS DE DATOS
TIPOS LÓGICOS
Las variables lógicas pueden tomar los valores true (1) y false (0).
La función logical(A) produce una variable lógica con el mismo número de elementos
de A sea distinto de cero o igual a cero.
58. AttributesName Size Bytes Class
b 1x5 5 logical
FUNDAMENTOS DE MATLAB
TIPOS DE DATOS
TIPOS LÓGICOS
CREACIÓN DE UN ARREGLO LÓGICO
>> X=[true true false true false]
X=
1 1 0 1 0
>> whos X
Name Size Bytes Class Attributes
X 1x5 5 logical
>> a=[2.1 NaN 4.5 Inf 4];
>> b=isfinite(a)
b=
1 0 1 0 1
>> whos b
59. Name Size Bytes Class Attributes
str 1x15 30 char
>> str(8)
ans =
e
>> nombres=char('Rafael','Ana','Maria')
nombres =
Rafael
Ana
Maria
>> whos nombres
Name Size Bytes Class Attributes
nombres 3x6 36 char
FUNDAMENTOS DE MATLAB
TIPOS DE DATOS
CADENA DE CARACTERES
>> str='Curso de Matlab';
>> whos str
60. >> A='cafe';
>> B='mate';
>> A==B
ans =
0 1 0 1
>> strcmp(A,'cafe')
ans =
1
FUNDAMENTOS DE MATLAB
TIPOS DE DATOS
CADENA DE CARACTERES
62. ESTRUCTURA Y CELL ARRAYS
>> dato.x=12;
>> dato.y=123;
>> dato.color='verde';
>> dato
dato =
x: 12
y: 123
color: 'verde'
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
63. >> dato.x=12;
>> dato.y=123;
>> dato.color='verde';
>> dato
dato =
x: 12
y: 123
color: 'verde'
>> dato.(campo)
ans =
verde
FUNDAMENTOS DE MATLAB
TIPOS DE DATOS
ESTRUCTURA Y CELL ARRAYS
>> alumno.nombre='Pablo';
>> alumno.apellido1='Fernandez';
>> alumno.apellido2='Garcia';
>> alumno.edad=15;
>> alumno
alumno =
nombre: 'Pablo'
apellido1: 'Fernandez'
apellido2: 'Garcia'
edad: 15
64. ESTRUCTURA Y CELL ARRAYS
>> c={12,'rojo',magic(4)}
c=
[12] 'rojo' [4x4 double]
>> d1{1}=12;
>> d1{2}='rojo';
>> d1{3}=magic(4);
>> d1
d1 =
[12] 'rojo' [4x4 double]
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
>> c={[true false true],[12.5 25 pi exp(1)],'verde',alumno}
c =
[1x3 logical] [1x4 double] 'verde' [1x1 struct]
65. ESTRUCTURA Y CELL ARRAYS
>> ss{1,1}=12;
>> ss{1,2}='rojo';
>> ss{1,3}=magic(4);
>> ss{2,1}=ones(3);
>> ss{2,2}=43;
>> ss{2,3}='texto';
>> ss
ss =
[ 12] 'rojo' [4x4 double]
[3x3 double] [ 43] 'texto'
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
73. NO olvidarse que para
calcular la matriz inversa a
la matriz A, ésta debe ser
cuadrada y debe tener
determinante
FUNDAMENTOS DE MATLAB
RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
75. Luego aplicamos Gauss-Jordan
FUNDAMENTOS DE MATLAB
RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
A diferencia del caso anterior
aquí puedo tener una
cantidad de ecuaciones
distintas a la cantidad de
variables
El sistema expresado en su forma aumentada tiene la forma:
76. >> A=[2 3 1 1;3 -2 -4 -3; 5 -1 -1 4]
A=
2 3 1 1
3 -2 -4 -3
5 -1 -1 4
>> rref(A)
ans =
1 0
0 1
0 1
0 -1
0 0 1 2
Ejercicio:
Obtener la solución al siguiente
sistema
FUNDAMENTOS DE MATLAB
RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
77. Para un cierto escalar lambda .
En este caso lambda es autovalor de A, y se dice que x es autovector asociado al
autovalor lambda
FUNDAMENTOS DE MATLAB
VALORES Y VECTORES PROPIOS DE UNA MATRIZ
Un vector no nulo x es un autovector de A si Ax es múltiplo de x. Es decir x es
autovector si: