Está en la página 1de 70

Introducción al MATLAB

1
Contenido del Curso

1. Entorno de MATLAB

2. Comandos Básicos

3. Tratamiento de Escalares, Vectores y Matrices

4. Instrucciones de control: IF-FOR-WHILE

5. Ordenamiento de vectores y matrices

2
Comandos
Básicos de
MATLAB
3
Entorno de MATLAB

MATLAB MATrix LABoratory

 Programa basado en Matrices

 Vectores y escalares también pueden ser


considerados como matrices

4
Icono de MATLAB

5
Ruta de trabajo Histórico de comandos

Ventana de comando

6
Definiendo una Matriz
 Array: Es un conjunto de valores organizados
en filas y columnas, que se les designa un
nombre.
Fila 1

Fila 2

Fila 3
arr(3,2)
arr(7) Fila 4

Col 1Col 2 Col 3Col 4 Col 5


7
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”
coma

 La lista de elementos de una matriz está delimitada


por [ ]

8
Definiendo una Matriz
 Escalar >> 25 Matriz 1x1
 Vector Fila >> [3 -4 6] Matriz 1x3
 Vector Columna >> [5; 10;-3; 6] Matriz 4x1
5 
10 
 
 3
 
6  41

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


2 4 
5  8 
 
 2 0  32 9
Indexado de Matrices

1 2 3 4 5
A= 4
1
10
6
1
11
6
16
2
21

1
2
2 8 1.2 7 9 12 4 17
25 22
A(1:5,5) A(1:end,end)
3 7.2 3 5 8
7 13 1 18
11 23 A(:,5) A(:,end)
A(21:25) A(21:end)’
A(3,1) 4 0 4
0.5 9 4 14 5 19
56 24
A(3) 5 10 15 20 25
5 23 83 13 0 10
A(4:5,2:3)
A([9 14;10 15])

10
Definiendo una Matriz

11
Valores Especiales
• pi: valor  hasta 15 dígitos significativos
• i, j: sqrt(-1), número imaginario
• Inf: infinito (división por 0)
• NaN: Not-a-Number (división de cero por cero)
• clock: fecha y hora momentánea en la forma de
un vector fila de 6 elementos conteniendo el
año, mes, día, hora, minuto y segundo
• date: fecha actual en string como 16-Feb-2010
• eps: épsilon es la menor diferencia entre dos
números
• ans: almacena el resultado de una expresión
12
Formato de Números
>> valor = 12.345678901234567;
format short  12.3457
format long  12.34567890123457
format short e  1.2346e+001
format long e  1.234567890123457e+001
format short g  12.346
format long g  12.3456789012346
format rat  1000/81

13
Archivo de Datos

• save filename var1 var2 …


>> save myfile.mat x y  binary
>> save myfile.dat x –ascii  ascii
• load filename
>> load myfile.mat  binary
>> load myfile.dat –ascii  ascii

14
Funciones Integradas
• result = function_name( input );
– abs, sign
– log, log10, log2
– exp
– sqrt
– sin, cos, tan
– asin, acos, atan
– max, min
– round, floor, ceil, fix
– mod, rem
• help elfun  Ayuda de las funciones matemáticas
elementales
15
Comandos Básicos

16
Funciones para la Manipulación
de Matrices
• transpose (’): Matriz Transpuesta
• rot90: Rotar Matriz 90
• tril: Parte Triangular Inferior de una Matriz
• triu: Parte Triangular Superior de una Matriz
• cross: Vector del producto cruzado
• dot: Vector dot product
• det: Determinante de la Matriz
• inv: Inversa de la Matriz
• eig: Evalúa los eigenvalues y eigenvectors
• rank: Rango de la matriz
17
sum
Suma de los elementos de cada columna de una matriz

2 4 
A  5  8 
 2 0 
 
sum( A)  [9  4]

18
Transpuesta ( ’ )
Transpuesta de una matriz

5 
10 
A 
  3
 
6 

A transpuesta
A '   5 10  3 6

19
diag
 Extrae la diagonal de uma matriz cuadrada

20
Genera una matriz nxn con
números enteros desde 1
hasta n^2, cuya suma de
magic cada fila y columna es igual.
El orden n debe ser igual o
mayor de 3.
A = magic(4)
>> sum(M)
ans = >> sum(M)
ans =
ans =
16 2 3 13 34 34 34 34
34 34 34 34
>> sum(M')'
5 11 10 8 >> sum(M')'
ans =
ans =
9 7 6 12 34
34
34
34
34
4 14 15 1 34
34
34
>> sum(diag(M))
>> sum(diag(M))
ans =
ans =
34
34

21
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
Suma de Matrices

 2 4   4 14   2 18 
5  8    1 8  6 0 
     
 2 0   3 10   1 10 

26
Indexación 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
Indexación de Matrizes
 Suma de los Elementos de la 2a fila:

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

ans =
34
Redimensionamiento Automático
 Para la Matriz

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

>> 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):
n) primeros m elementos de la n-ésima
columna
 A(:, n):
n) todos los elementos de la n-ésima columna
 A(:, end):
end) todos los elementos de la última columna
 A(m, 1:n):
1:n) primeros n elementos de la m-ésima fila
 A(m, :):
:) todos los elementos de la m-ésima fila
 A(end,:):
A(end,:) todos los elementos de la última fila
El operador “:” (dos puntos)
 Matriz Bidimensional: A(i,j) es el elemento de la
i-esima fila, j-esima columna

 A(1,4) = 13
 A(3,2) = 6

34
El operador ‘:’ y Matrices

>> A(1:4,1) >> A(:,1)


ans = ans =
16 O 16
5 5
9
9
4
4
Funciones de Creación de Matrices

 zeros:
zeros matriz de ceros
 ones:
ones matriz de unos
 rand:
rand matriz de números aleatórios
con distribución uniforme
 randn:
randn matriz de números aleatórios
con distribución normal (Gaussiana)
Funciones de Creación de Matrices
>> Z = zeros(3,5)

Filas Columna

Z =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Funciones de Creación 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 Creación de Matrices
>> N = rand(2,4)
N =
0.95013 0.60684 0.8913 0.45647
0.23114 0.48598 0.7621 0.018504

rand : genera números o


vectores aleatorios distribuidos
uniformemente.
Exclusión 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
 - : substracción
 / : división de matrices
 * : multiplicación de matrices
 ^ : potencia de una matriz
 inv : inversa de una matriz
Operadores Aritméticos para Matrices

+ : suma
- : substracción
./ : división elemento a elemento
.* : multiplicación elemento a elemento
.^ : potencia elemento a elemento
Aritmética x Algebra Lineal

>> A = magic(4); >> A = magic(4);


>> B = A+A >> C = A-A
B = C =
32 4 6 26 0 0 0 0
10 22 20 16 0 0 0 0
0 0 0 0
18 14 12 24 0 0 0 0
8 28 30 2
Aritmética x Algebra Lineal

>> A = magic(4); >> A = magic(4);


>> B = A./A >> C = A/A
B = Warning: Matrix is close to singular
or badly scaled. Results may be
inaccurate. RCOND = 9.796086e-018.
1 1 1 1
1 1 1 1 C =
1 0 0 0
1 1 1 1
-0.67 -1 2 0.67
1 1 1 1 -0.04 -0.13 1.13 0.04
0 0 0 1
Aritmética x Algebra Lineal

>> A = magic(4); >> A = magic(4);


>> B = A.*A >> C = A*A
B = C =
256 4 9 169 345 257 281 273
257 313 305 281
25 121 100 64
281 305 313 257
81 49 36 144 273 281 257 345
16 196 225 1
Aritmética x Algebra Lineal

>> A = magic(4); >> A = magic(4);


>> B = A.^2 >> C = A^2
B = C =
256 4 9 169 345 257 281 273
257 313 305 281
25 121 100 64
281 305 313 257
81 49 36 144 273 281 257 345
16 196 225 1
Comando find
Para encontrar elementos de una matriz
A = [9 -2 4 5 -5 0 3 4]

>>x =find(A==4)
Condición lógica

x=
Indices de los elementos
3 8 con valor igual a 4

>>A(x)
ans= 4 4

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

>>x =find(A==14)
Condición lógica
x=
4 Indices de los elementos
8 con valor igual a 14
>>A(x)
ans= 14
14
48
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 Condición lógica
7
Indices de los elementos
9
con valor mayor que 2 y
>>A(x) menor que 10
ans= 7
5
3

49
Comandos round/ ceil / floor
Usados 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 50
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

51
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

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

53
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')

54
Comando subplot
Syntax: subplot(rows,cols,index)
subplot(rows,cols,index)

»»subplot(2,2,1);
subplot(2,2,1);
»» ……

»»subplot(2,2,2)
subplot(2,2,2)
»» ...
...

»»subplot(2,2,3)
subplot(2,2,3)
»» ...
...

»»subplot(2,2,4)
subplot(2,2,4)
»» ...
...
55
Comando stem
t = 0:0.1:10;
y = sin(t);
stem(t,y1)
grid
title('onda seno')
xlabel('eje x')
ylabel('eje y')

56
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

57
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

58
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

59
Problema 2
 Determinar el indice de t, donde la función
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

60
Funciones m-file
Abrir un
editor

61
Funciones m-file

Editor para
generar Ventana de
programas con comando
extensión *.m

62
63
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

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

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

66
Funciones escritas por el
usuario

Uso de la
función

67
Problema 4
 Para la ecuación

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 máximo
Determinar el valor de t, donde h es cero

68
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

69
Problema 5
 Generar 10000 números aleatorios, con
distribución Gaussiana, con valor medio 10 y
desvio padrón 2

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

70

También podría gustarte