Está en la página 1de 63

1 1

Introduccin al MATLAB
Angel Ayala Herrera
2 2
Contenido del Curso
1. Entorno de MATLAB

2. Comandos Bsicos

3. Tratamiento de Escalares, Vectores y Matrices

4. Instrucciones de control: IF-FOR-WHILE

5. Ordenamiento de vectores y matrices

6. Lectura y escritura de archivos de audio

7. Lectura y escritura de archivos de imgenes
3 3


Comandos Bsicos de
MATLAB


4
Entorno de MATLAB

MATLAB MATrix LABoratory

Programa basado en Matrices

Vectores y escalares tambin pueden ser
considerados como matrices


Icono de MATLAB

5

6
Ventana de comando
Histrico de comandos
Ruta de trabajo
Definiendo una Matriz
Los elementos de una fila son separados por
espacios o comas

El final de cada fila es indicado por un punto y
coma

La lista de los elementos de una matriz es
delimitada por [ ]
7
8
Definiendo una Matriz
Escalar >> 25 Matriz 1x1

Vector Fila >> [3 -4 6] Matriz 1x3

Vector Columna >> [5; 10;-3; 6] Matriz 4x1



Matriz >> [2 4; 5 -8; 2 0] Matriz 3x2


4 1
5
10
3
6

(
(
(
(
(

3 2
2 4
5 8
2 0

(
(

(
(

Definiendo una Matriz
9
Comandos Bsicos
10
sum
Suma de los elementos de cada columna de una matriz
11
2 4
5 8
2 0
( ) [9 4]
A
sum A
(
(
=
(
(


=
Transpuesta ( )
Transpuesta de una matriz
12
| |
5
10
3
6
' 5 10 3 6
A
A
(
(
(
=
(
(

=
A transpuesta
diag
Extrae la diagonal de uma matriz cuadrada
13
magic
A = magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

14
fliplr Espejo Horizontal
Espejo horizontal de una matriz

>> A
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
fliplr Espejo Horizontal
>> fliplr(A)
A =
13 2 3 16
8 11 10 5
12 7 6 9
1 14 15 4
flipud Espejo Vertical
Espejo vertical de una matriz

>> A
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
flipud Espejo Vertical
>> flipud(A)
A =
4 15 14 1
9 6 7 12
5 10 11 8
16 3 2 13
19
Suma de Matrices
2 4 4 14 2 18
5 8 1 8 6 0
2 0 3 10 1 10

( ( (
( ( (
+ =
( ( (
( ( (

Indexacin de Matrizes
Matriz Bidimensional: A(i,j) es el
elemento de la i-sima fila, j-sima
columna

A = 16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

A(2,3) = 11

Indexacin de Matrizes
Suma de los Elementos de la 2
a
fila:



>> A(2,1) + A(2,2) + A(2,3) + A(2,4)

ans =
34

Redimensionamiento Automtico
Para la Matriz

A = 16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1



Redimensionamiento Automtico
>> X = A;
>> X(5,5) = 29
X =
16 3 2 13 0
5 10 11 8 0
9 6 7 12 0
4 15 14 1 0
0 0 0 0 29
El operador : (dos puntos)
>> 1:10
ans =
1 2 3 4 5 6 7 8 9 10

>> 1:3:27
ans =
1 4 7 10 13 16 19 22 25

El operador : (dos puntos)
>> 60:-7:0
ans =
60 53 46 39 32 25 18 11 4

>> 0:pi/4:pi
ans =
0 0.7854 1.5708 2.3562 3.1416

El operador : y Matrices
A(1:m, n): primeros m elementos de la n-sima
columna
A(:, n): todos los elementos de la n-sima columna
A(:, end): todos los elementos de la ltima columna
A(m, 1:n): primeros n elementos de la m-sima fila
A(m, :): todos los elementos de la m-sima fila
A(end,:): todos los elementos de la ltima fila
El operador : (dos puntos)
Matriz Bidimensional: A(i,j) es el elementos de la
i-esima fila, j-esima columna





A(1,4) = 13
A(3,2) = 6
27
El operador : y Matrices
>> A(1:4,1)
ans =
16
5
9
4
>> A(:,1)
ans =
16
5
9
4
O
O Operador : y Matrizes
>> A(:,4)
ans =
13
8
12
1
>> A(:,end)
ans =
13
8
12
1
O
Funciones de Creacin de Matrices
zeros: matriz de ceros
ones: matriz de unos
rand: matriz de nmeros aleatrios
con distribucin uniforme
randn: matriz de nmeros aleatrios
con distribucin normal (Gaussiana)
Funciones de Creacin de Matrices
>> Z = zeros(3,5)


Z =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

Filas Columna
Funciones de Creacin de Matrices
>> Q = 4*ones(5,5)
Q =
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4

Funciones de Creacin de Matrices
>> N = rand(2,4)
N =
0.95013 0.60684 0.8913 0.45647
0.23114 0.48598 0.7621 0.018504
Exclusin de Filas o Columnas
>> X = A;
>> X(:,2) = []
X =
16 2 13
5 11 8
9 7 12
4 14 1

Algebra Lineal para Matrices
+ : suma
- : substraccin
/ : divisin de matrices
* : multiplicacin de matrices
^ : potencia de una matriz
inv : inversa de una matriz

Operadores Aritmticos para Matrices
+ : suma
- : substraccin
./ : divisin elemento a elemento
.* : multiplicacin elemento a elemento
.^ : potencia elemento a elemento


Aritmtica x Algebra Lineal
>> A = magic(4);
>> B = A+A
B =
32 4 6 26
10 22 20 16
18 14 12 24
8 28 30 2

>> A = magic(4);
>> C = A-A
C =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

Aritmtica x Algebra Lineal
>> A = magic(4);
>> B = A./A
B =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1


>> A = magic(4);
>> C = A/A
Warning: Matrix is close to singular
or badly scaled. Results may be
inaccurate. RCOND = 9.796086e-018.
C =
1 0 0 0
-0.67 -1 2 0.67
-0.04 -0.13 1.13 0.04
0 0 0 1
Aritmtica x Algebra Lineal
>> A = magic(4);
>> B = A.*A
B =
256 4 9 169
25 121 100 64
81 49 36 144
16 196 225 1

>> A = magic(4);
>> C = A*A
C =
345 257 281 273
257 313 305 281
281 305 313 257
273 281 257 345


Aritmtica x Algebra Lineal
>> A = magic(4);
>> B = A.^2
B =
256 4 9 169
25 121 100 64
81 49 36 144
16 196 225 1

>> A = magic(4);
>> C = A^2
C =
345 257 281 273
257 313 305 281
281 305 313 257
273 281 257 345




Comando find
Para encontrar elementos de una matriz
A = [9 -2 4 5 -5 0 3 4]

>>x =find(A==4)

x =
3 8

>>A(x)
ans= 4 4
41
Condicin lgica
Indices de los elementos
con valor igual a 4


Comando find
Para encontrar elementos de una matriz
A = 1 14 5
7 1 14
2 10 3

>>x =find(A==14)
x =
4
8
>>A(x)
ans= 14
14
42
Condicin lgica
Indices de los elementos
con valor igual a 14


Comando find
Para encontrar elementos de una matriz
A = 1 14 5
7 1 14
2 10 3

>>x =find(A>2 & A<10)
x =
2
7
9
>>A(x)
ans= 7
5
3
43
Condicin lgica
Indices de los elementos
con valor mayor que 2 y
menor que 10
Comando round/ ceil / floor
Usado para redondeo
Redondeo
round(1.2)=1
round(1.5)=2

Redondeo para arriba
ceil(1.2) = 2
ceil(1.8) = 2

Redondeo para abajo
floor(1.2) = 1
floor(1.8) = 1


44
Comando abs/ sqrt/ log/ log2/
log10
Valor absoluto abs(-2.3) = 2.3

Raiz cuadrada sqrt(4) = 2

Logaritmo neperiano base e log(16) = 2.077

Logaritmo en base 2 log2(16) = 4

Logaritmo en base 10 log10(100) = 2


45
Comando plot
x = 0:0.1:10; %variacion del eje x
y = sin(x); %variacion del eje y
plot(x,y) %Grafica x versus y

46
Comando plot
t = 0:0.1:10;
y = sin(t);
plot(t,y)
grid
title('onda seno')
xlabel('eje x')
ylabel('eje y')
47
Comando plot
t = 0:0.1:10;
y1 = sin(t);
y2 = cos(t)
plot(t,y1,t,y2)
grid
title('onda seno y onda coseno')
xlabel('eje x')
ylabel('eje y')
legend('seno', 'coseno')

48
Comando stem
t = 0:0.1:10;
y = sin(t);
stem(t,y1)
grid
title('onda seno')
xlabel('eje x')
ylabel('eje y')



49
Comando min / max
A = [2 -3 6 -8 3]

[valor, indice] = min(A)
valor = -8
indice = 4

[valor, indice] = max(A)
valor = 6
indice = 3

50
Problema 1
Para la matriz A, Substituir los elementos de las
filas 2 a 3 y columnas 1 a 2 por una matriz
cuadrada B, de unos de orden 2

A =
3 -2 5
5 6 9
-3 5 10

B =
1 1
1 1

51
Problema 1
A =[3 -2 5; 5 6 9; -3 5 10]
B = ones(2,2)
A(2:3,1:2) = B

A =
3 -2 5
1 1 9
1 1 10


52
Problema 2
Determinar el indice de t, donde la funcin
y=t^2 es minima

t = -10:0.1:10;
y = t.^2;
plot(t,y)
[valor, indice] = min(y)
indice=101
t(indice)= 0



53
Funciones m-file
54
Abrir un
editor
Funciones m-file

55
Ventana de
comando
Editor para
generar
programas con
extensin *.m

56
Funciones m-file
Para ejecutar el programa
1. Desde el editor presionar la tecla F5
2. Desde la ventana de comando, llamar al archivo
ejemplo.m


57
Tecla:F5
Problema 3
Realizar un programa para construir
una Matriz


A = [3 5; 9 1]
B = [-2 3]
C = [10; 15]
D = 1
58
Funciones escritas por el usuario

59
Funciones escritas por el
usuario

60
Uso de la
funcin
Problema 4
Para la ecuacin

t = 0:0.1:100;
h = 60+2.13*t.^2 - 0.0013*t.^4+0.00003*t.^4.751

Realizar un programa para
Graficar t vs h
Determinar el valor de t, donde h es mximo
Determinar el valor de t, donde h es cero
61
Problema 4
t = 0:0.1:100;
h = 60 + 2.13*t.^2 - 0.0013*t.^4 + 0.00003*t.^4.751
[valor, indice] = max(h)
t(indice)
z = find(h >= 0)
t(z(end))

plot(t,h),grid


62
Problma 5
Generar 10000 nmeros aleatorios, con
distribucin Gaussiana, com valor medio 10 y
desvio padrn 2

>> r = 10 + 2*randn(1,10000)
>> hist(r)

63