Fundamentos de
MATLAB
KRAQ
UNIVERSIDADNACIONAL DE INGENIERIA
FACULTAD DEINGENIERIA ELECTRICA YELECTRONICA
¿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
Aplicaciones de MATLAB
Aeroespacial
Biomédica
Sistemas de control
Procesamiento de imágenes
Procesamiento de Audio
Diseño de filtros
Base de datos
Finanzas
SISTEMA MATLAB
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
Botón de desacople
(undock)
ENTORNO-ESCRITORIO DE MATLAB
Botón de inicio
CREA UN EDITOR
ENTORNO-EL EDITOR
EDITOR CREADO
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
COMANDOS DE INICIO
FUNDAMENTOS DE MATLAB
Formato de visualización de números
FUNDAMENTOS DE MATLAB
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 :
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
FUNDAMENTOS DE MATLAB
OPERACIONES NUMÉRICAS
Ejemplo 1.
DECLARACIÓN DE VARIABLES
FUNDAMENTOS DE MATLAB
FUNDAMENTOS DE MATLAB
(1,2)
(4,6)
D
y
x0
Ejercicio:
Calcular el volumen de un cono circular
recto trucado
FUNDAMENTOS DE MATLAB
VARIABLES ESPECIALES
>> 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
Calcular E: a) X=4
b) X=1,2,3,..,10
FUNDAMENTOS DE MATLAB
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
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
FUNDAMENTOS DE MATLAB
Calcular el
módulo de :
Ejemplo 9.
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
Los sub índices en MATLAB empiezan en uno.
FUNDAMENTOS DE MATLAB
VECTORES Y MATRICES
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
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
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
FUNDAMENTOS DE MATLAB
Ejemplo 8.
>> A‘
ans =
1 4
2 5
3 6
7
8
9
>> B=A‘
B=
1 4
2 5
3 6
7
8
9
>> B*A
ans =
66 78 90
78 93 108
90 108 126
>> A=[1 2;3 4]
A=
1 2
3 4
>> A*2
ans =
2 4
6 8
>> A-4
ans =
-3 -2
-1 0
>> A/10
ans =
0.1000 0.2000
0.3000 0.4000
Recordar que el
resultado es una
matriz simétrica
FUNDAMENTOS DE MATLAB
VECTORES Y MATRICES
Operaciones con matrices
Ejercicios:
>> A
A=
1 2
3 4
>> B
B=
3 2
1 4
>> A./B
ans =
0.3333 1.0000
3.0000 1.0000
>> A.B
ans =
3.0000 1.0000
0.3333 1.0000
>> B.*A
ans =
3 4
3 16
FUNDAMENTOS DE MATLAB
OPERACIONES MATRICIALES BÁSICAS
>> A/B
ans =
0.2000 0.4000
0.8000 0.6000
>> AB
ans =
-5.0000 0
4.0000 1.0000
>> A.*B
ans =
3 4
3 16
El producto
elemento a
elemento es
conmutativo
VECTORES Y MATRICES
Operaciones con matrices
FUNDAMENTOS DE MATLAB
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
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
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)
VECTORES Y MATRICES
FUNDAMENTOS DE MATLAB
VECTORES Y MATRICES
FUNDAMENTOS DE MATLAB
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
ACCESO A ELEMENTOS DE UNA MATRIZ
FUNDAMENTOS DE MATLAB
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
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
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=
>> a(2:3,1:4)=zeros(2,4)
a=
0.1493 0.8143 0.1966 0.3517 0.9172
0 0 0 0 0.2858
0 0 0 0 0.7572
0.2543 0.3500 0.4733 0.5497 0.7537
a=
0.1493
0.2575
0.8407
0.2543
0.8143
0.2435
0.9293
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
VECTORES Y MATRICES
0.3517
1.0000
1.0000
0.5497
0.9172
0.2858
0.7572
0.7537
a=
0.1493 0.8143 0.1966 0.3517 0.9172
0 0 0 0 0.2858
0 0 0 0 0.7572
0.2543 0.3500 0.4733 0.5497 0.7537
>> a([2,3],[2,4])=ones(2,2)
a=
0.1493 0.8143 0.1966
0 1.0000 0
0 1.0000 0
0.2543 0.3500 0.4733
FUNDAMENTOS DE MATLAB
VECTORES Y MATRICES
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
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
• Traza de A: b=trace(A)
FUNDAMENTOS DE MATLAB
OPERACIONES MATRICIALES BÁSICAS
• 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
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=
FUNDAMENTOS DE MATLAB
MÁS FUNCIONES DEFINIDAS
>> 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
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
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
>> 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
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
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
-700
-1000
-300
-100
-300
-600
-600
-200
-500
700
-800
900
100 1000 -200 200 1000 800
800 -700 0 -500 500 700
400 700 -800 -400 -300 -500
-700 300 200 200 200 200
>> int8(A)
ans =
-128 -128 -128 -128 -128 -128
-128 -100 -128 -128 127 127
100 127 -128 127 127 127
127 -128 0 -128 127 127
127 127 -128 -128 -128 -128
-128 127 127 127 127 127
>> uint8(A)
ans =
0 0 0 0 0 0
0 0 0 0 255 255
100 255 0 200 255 255
255 0 0 0 255 255
255 255 0 0 0 0
0 255 200 200 200 200
FUNDAMENTOS DE MATLAB
TIPOS DE DATOS
>> A=100*randi([-10 10],6)
A=
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.
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
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
>> 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
CADENA DE CARACTERES
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
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
>> 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
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]
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
Identificación del tipo de dato
TIPOS DE DATOS
FUNDAMENTOS DE MATLAB
Operaciones y funciones lógicas
Operaciones Relacionales
FUNDAMENTOS DE MATLAB
>> A=magic(4)
A=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> j=A>10
j=
1 0
0 1
0 0
0 1
0
0
0
1
1
0
1
0
>> A(j)=-10
A=
-10 2 3 -10
5 -10 10 8
9 7 6 -10
4 -10 -10 1
FUNDAMENTOS DE MATLAB
Operacionesy funciones lógicas
OperacionesRelacionales
Una de las aplicaciones más importantes de las variables lógicas es separar o extraer
elementos de una matriz o un vector que cumplen cierta condición
>> A=magic(4)
A=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> b=isprime(A)
b=
0 1 1 1
1 1 0 0
0 1 0 0
0 0 0 0
>> A(b)=0
A=
0 2
5 11
0 7
0 0
3 13
0 0
0 0
0 0
>> b=~b
b=
1 0
0 0
1 0
1 1
0
1
1
1
0
1
1
1
FUNDAMENTOS DE MATLAB
Operaciones y funciones lógicas
Operaciones Relacionales
En el siguiente ejemplo resalta la localización de los números primos en la matriz
cuadrada mágica, usando indexación lógica se establece los no primos en cero.
Operaciones lógicos
FUNDAMENTOS DE MATLAB
Funciones lógicas
FUNDAMENTOS DE MATLAB
RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
FUNDAMENTOS DE MATLAB
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
RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
FUNDAMENTOS DE MATLAB
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:
>> 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
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:
VALORES Y VECTORES PROPIOS
FUNDAMENTOS DE MATLAB
FUNDAMENTOS DE MATLAB
VALORES Y VECTORES PROPIOS
Muchas Gracias por su
atención!!!!

Fundamentos de matlab

  • 1.
    Fundamentos de MATLAB KRAQ UNIVERSIDADNACIONAL DEINGENIERIA FACULTAD DEINGENIERIA ELECTRICA YELECTRONICA
  • 2.
    ¿Qué es MatLab? MATrixLABoratory 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
  • 3.
    Aplicaciones de MATLAB Aeroespacial Biomédica Sistemasde control Procesamiento de imágenes Procesamiento de Audio Diseño de filtros Base de datos Finanzas
  • 4.
  • 5.
    VENTANA DE COMANDOS (PARAESCRIBIR 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
  • 6.
  • 7.
    CREA UN EDITOR ENTORNO-ELEDITOR EDITOR CREADO
  • 8.
    ENTORNO-WORKSPACE Consiste en unconjunto 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
  • 9.
  • 10.
    Formato de visualizaciónde números FUNDAMENTOS DE MATLAB
  • 11.
    Los vectores sonun 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
  • 13.
    FUNDAMENTOS DE MATLAB OPERACIONESNUMÉRICAS Ejemplo 1.
  • 14.
  • 15.
  • 16.
    Ejercicio: Calcular el volumende un cono circular recto trucado FUNDAMENTOS DE MATLAB VARIABLES ESPECIALES
  • 17.
    >> a=150/0 a= Inf >> clearb >> 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 elvalor 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 untriá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
  • 21.
    FUNDAMENTOS DE MATLAB Calcularel módulo de : Ejemplo 9.
  • 22.
    rem (m,n) Restode 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 índicesen MATLAB empiezan en uno. FUNDAMENTOS DE MATLAB VECTORES Y MATRICES
  • 24.
    size(A) : Devuelveel 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 Operacionescon 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 Operacionescon 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
  • 27.
  • 28.
    >> A‘ ans = 14 2 5 3 6 7 8 9 >> B=A‘ B= 1 4 2 5 3 6 7 8 9 >> B*A ans = 66 78 90 78 93 108 90 108 126 >> A=[1 2;3 4] A= 1 2 3 4 >> A*2 ans = 2 4 6 8 >> A-4 ans = -3 -2 -1 0 >> A/10 ans = 0.1000 0.2000 0.3000 0.4000 Recordar que el resultado es una matriz simétrica FUNDAMENTOS DE MATLAB VECTORES Y MATRICES Operaciones con matrices Ejercicios:
  • 29.
    >> A A= 1 2 34 >> B B= 3 2 1 4 >> A./B ans = 0.3333 1.0000 3.0000 1.0000 >> A.B ans = 3.0000 1.0000 0.3333 1.0000 >> B.*A ans = 3 4 3 16 FUNDAMENTOS DE MATLAB OPERACIONES MATRICIALES BÁSICAS >> A/B ans = 0.2000 0.4000 0.8000 0.6000 >> AB ans = -5.0000 0 4.0000 1.0000 >> A.*B ans = 3 4 3 16 El producto elemento a elemento es conmutativo
  • 30.
    VECTORES Y MATRICES Operacionescon matrices FUNDAMENTOS DE MATLAB
  • 31.
    VECTORES Y MATRICES Formasde 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 Formasde 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 Formasde 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)
  • 34.
  • 35.
  • 36.
    VECTORES Y MATRICES Formasde 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
  • 37.
    ACCESO A ELEMENTOSDE UNA MATRIZ FUNDAMENTOS DE MATLAB
  • 38.
    VECTORES Y MATRICES Formasde 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 Formasde 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.84070.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=
  • 41.
    >> a(2:3,1:4)=zeros(2,4) a= 0.1493 0.81430.1966 0.3517 0.9172 0 0 0 0 0.2858 0 0 0 0 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537 a= 0.1493 0.2575 0.8407 0.2543 0.8143 0.2435 0.9293 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 VECTORES Y MATRICES
  • 42.
    0.3517 1.0000 1.0000 0.5497 0.9172 0.2858 0.7572 0.7537 a= 0.1493 0.8143 0.19660.3517 0.9172 0 0 0 0 0.2858 0 0 0 0 0.7572 0.2543 0.3500 0.4733 0.5497 0.7537 >> a([2,3],[2,4])=ones(2,2) a= 0.1493 0.8143 0.1966 0 1.0000 0 0 1.0000 0 0.2543 0.3500 0.4733 FUNDAMENTOS DE MATLAB VECTORES Y MATRICES
  • 43.
    VECTORES Y MATRICES Formasde 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 Asignandola 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 deA: b=trace(A) FUNDAMENTOS DE MATLAB OPERACIONES MATRICIALES BÁSICAS
  • 46.
    • Rango deA: 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 = 83 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=
  • 48.
    FUNDAMENTOS DE MATLAB MÁSFUNCIONES DEFINIDAS
  • 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 BytesClass 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.-Evaluarla 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
  • 53.
  • 54.
  • 55.
    Tipo de datoRango 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
  • 56.
    -700 -1000 -300 -100 -300 -600 -600 -200 -500 700 -800 900 100 1000 -200200 1000 800 800 -700 0 -500 500 700 400 700 -800 -400 -300 -500 -700 300 200 200 200 200 >> int8(A) ans = -128 -128 -128 -128 -128 -128 -128 -100 -128 -128 127 127 100 127 -128 127 127 127 127 -128 0 -128 127 127 127 127 -128 -128 -128 -128 -128 127 127 127 127 127 >> uint8(A) ans = 0 0 0 0 0 0 0 0 0 0 255 255 100 255 0 200 255 255 255 0 0 0 255 255 255 255 0 0 0 0 0 255 200 200 200 200 FUNDAMENTOS DE MATLAB TIPOS DE DATOS >> A=100*randi([-10 10],6) A=
  • 57.
    A= 16 23 07 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 BytesClass 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 BytesClass 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
  • 61.
    CADENA DE CARACTERES TIPOSDE DATOS FUNDAMENTOS DE MATLAB
  • 62.
    ESTRUCTURA Y CELLARRAYS >> 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 CELLARRAYS >> 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 CELLARRAYS >> 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
  • 66.
    Identificación del tipode dato TIPOS DE DATOS FUNDAMENTOS DE MATLAB
  • 67.
    Operaciones y funcioneslógicas Operaciones Relacionales FUNDAMENTOS DE MATLAB
  • 68.
    >> A=magic(4) A= 16 23 13 5 11 10 8 9 7 6 12 4 14 15 1 >> j=A>10 j= 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 >> A(j)=-10 A= -10 2 3 -10 5 -10 10 8 9 7 6 -10 4 -10 -10 1 FUNDAMENTOS DE MATLAB Operacionesy funciones lógicas OperacionesRelacionales Una de las aplicaciones más importantes de las variables lógicas es separar o extraer elementos de una matriz o un vector que cumplen cierta condición
  • 69.
    >> A=magic(4) A= 16 23 13 5 11 10 8 9 7 6 12 4 14 15 1 >> b=isprime(A) b= 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 >> A(b)=0 A= 0 2 5 11 0 7 0 0 3 13 0 0 0 0 0 0 >> b=~b b= 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 FUNDAMENTOS DE MATLAB Operaciones y funciones lógicas Operaciones Relacionales En el siguiente ejemplo resalta la localización de los números primos en la matriz cuadrada mágica, usando indexación lógica se establece los no primos en cero.
  • 70.
  • 71.
  • 72.
    RESOLUCIÓN DE SISTEMASDE ECUACIONES LINEALES FUNDAMENTOS DE MATLAB
  • 73.
    NO olvidarse quepara 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
  • 74.
    RESOLUCIÓN DE SISTEMASDE ECUACIONES LINEALES FUNDAMENTOS DE MATLAB
  • 75.
    Luego aplicamos Gauss-Jordan FUNDAMENTOSDE 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 31 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 ciertoescalar 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:
  • 78.
    VALORES Y VECTORESPROPIOS FUNDAMENTOS DE MATLAB
  • 79.
  • 80.
    Muchas Gracias porsu atención!!!!