You are on page 1of 51

The MathWorks

MATLAB &
SIMULINK

CURSO DE MATLAB
Nivel

Prof: Miguel Angel Chicchn Apaza

mchicchona@uni.pe
987803029

UNIVERSIDAD NACIONAL DE
INGENIERA
FACULTAD DE INGENIERIA ELECTRICA Y
ELECTRONICA
CCIESAM

The MathWorks

MATLAB &
SIMULINK

SESIN N 1:
FUNDAMENTOS DE
MATLAB

MATLAB &
SIMULINK

The MathWorks

Objetivo
Se presenta las variables del MatLab
como almacenes de datos.
Dos operaciones esenciales son
enfatizadas:
creacin de variables
acceso a los datos contenidos en las variables.

Operaciones de MatLab para clculos


con datos.

The MathWorks

MATLAB &
SIMULINK

Que es Matlab?
Programa para la realizacin de
clculos matemticos.
Ofrece gran facilidad para operar
sobre
matrices
(MATrix
LABoratory).
Dispone de un lenguaje de
programacin
interpretado.

The MathWorks

MATLAB &
SIMULINK
trabajo
de

Entorno de
Matlab

Command
Window:
Instrucciones y
sus resultados

Workspace:
Variables en
uso
Command
History:
ltimas
instrucciones
ejecutadas

The MathWorks

MATLAB & SIMULINK

Nombre de las Variables


El nombre de las variable es case sensitive.
El nombre de las variables puede contener hasta 63
caracteres.
El nombre de las variables se puede iniciar en una letra
seguido de letras, dgitos o sub-lneas.
No se puede iniciar en (_), no puede contener el signo (-).

6 /36

The MathWorks

MATLAB & SIMULINK

Variables Especiales
ans
pi
eps
inf
NaN
i, j
realmin
realmax

Nombre de variable por defecto para resultados


Valor de
la mayor precisin de un nmero en matlab
Infinito
No es un nmero (0/0)
i = j = sqrt(-1) = raz cuadrada de -1
El nmero real positivo ms pequeo
El nmero real positivo ms grande

7 /36

The MathWorks

MATLAB & SIMULINK

Operadores Matemticos &


Asignacin
Potencia ^
.^
a^b
Multiplicacin *
.*
Divisin /
./
a/b
\
.\
b\a
Nota:

a.^b
a*b
a./b
b.\a

a.*b

56/8 == 8\56

- (unrio) + (unrio)
Adicin
+
a + b
Sustraccin a - b
Asignacin
=
a = b (asigna b a a)
8 /36

The MathWorks

MATLAB & SIMULINK

Otros smbolos
>> lnea de comando
. . . Continua la sentencia en la siguiente lnea
, separa sentencias y datos
% comentario y fin de lnea
; (1) suprime la salida
(2) separa lneas en una matriz
: especifica un rango de datos.

9 /36

MATLAB & SIMULINK

The MathWorks

Ejercicio 1
Calcula el resultado de las siguientes operaciones:
2(4-1)/18 + (8-6)75/(7+9)+
3/4-5
cos(pi)
sin(pi/2)
f = (3+2i)(-2-3i)
log(32)+log(4-54)-log10(100)

10 /36

The MathWorks

MATLAB & SIMULINK

Formatos de visualizacin
Por defecto, si un resultado es un nmero entero, lo
ofrecer como tal. Si no lo es, lo har con 4 cifras
decimales (redondeando a la cuarta cifra). Si el
resultado es un nmero grande, lo expresar en
notacin cientfica.
Este formato que usa por defecto se puede modicar
en el men File/Preferences Numeric Format.
No obstante, independientemente del formato que se
est utilizando, la representacin interna del nmero
siempre es la misma, lo nico que cambia es la forma
en que lo vemos en la pantalla.
11 /36

The MathWorks

MATLAB & SIMULINK

Formatos de visualizacin
Formato

Caracterstica

Ejemplo

format long

16 dgitos

0.00402414486922

format short e

5 dgitos ms exponente

4.0241e-003

format long e

16 dgitos ms exponente

4.024144869215292e-003

format hex

sistema hexadecimal

3f707b9f29b8eae2

format bank

2 decimales

0.00

format +

signo +,- 0

format rat

aproximacin racional

2/497

format short

formato por defecto

0.0040

12 /36

The MathWorks

MATLAB & SIMULINK

Matrices en MatLab

13 /36

The MathWorks

MATLAB & SIMULINK

Operaciones con Matrices


1.
2.
3.
4.
5.
6.
7.
8.

Matrices en MatLab
Indexado de matrices
Creacin de matrices numricas
Expansin escalar
Concatenacin
Borrar filas y columnas
Extraccin desde un matriz
Multiplicacin de matrices

14 /36

MATLAB & SIMULINK

The MathWorks

La matriz en MatLab
Columnas
(n)
2
3
4

A=

10

11

16

21

1.2

12

17

25

22

7.2 3

13

18

11 23

0.5 9

14

19

56 24

23

13

15

20

10

1
2

Filas (m) 3

83

10

Matriz rectangular:
Escalar: matriz de 1X1
Vector: matriz de mX1
matriz de 1Xn
Matriz: matriz de mXn

A (2,4)

A (17)

25

15 /36

MATLAB & SIMULINK

The MathWorks

Creacin de matrices numricos

NOTA:
1) Separador de fila
punto y coma (;)
2) Separador de columna
espacio o coma (,)

a=[1 2;3
a =
1
3
b=[-2.8,
b =
-2.8000
b(2,5) =
b =
-2.8000
0

4]

corchetes
rectangulares

2
4
sqrt(-7), (3+5+6)*3/4]
0 + 2.6458i
23
0 + 2.6458i
0

10.5000

10.5000
0

0
0

0
23.0000

1. Cada expresin de MatLab puede ser ingresada como un elemento


de una matriz (internamente es otra matriz)
2. En MatLab, los matrices siempre son rectangulares

16 /36

The MathWorks

MATLAB & SIMULINK

Ejercicio 2
1. Define una matriz A de dimensin 2x4 donde A(i,j)= i+j.
Coloca en la 2 fila y 2 columna el nmero .
Haciendo una sola asignacin, crea desde A, la matriz B, tal que B
sea cuadrada y contenga toda la matriz A

2. Define una matriz C de dimensin 3 x 2, tal que C(i,j) = i*j.


Coloca en la posicin fila 4 y columna 4, el valor de 3+3i

17 /36

The MathWorks

MATLAB & SIMULINK

Expansin Escalar
Expansin escalar:
Suma de matriz + escalar

Creacin de secuencias:
operador punto y coma (:)

Funcin de uso prctico


para crear matrices.

w=[1
w=[1 2;3
2;3 4]
4] ++ 55
ww ==
66
77
88
99
xx == 1:5
1:5
xx ==
11
22
33
44
yy == 2:-0.5:0
2:-0.5:0
yy ==
2.0000
2.0000 1.5000
1.5000 1.0000
1.0000
zz == rand(2,4)
rand(2,4)
zz ==
0.9501
0.9501 0.6068
0.6068 0.8913
0.8913
0.2311
0.2311 0.4860
0.4860 0.7621
0.7621

55

0.5000
0.5000

00

0.4565
0.4565
0.0185
0.0185

18 /36

MATLAB & SIMULINK

The MathWorks

Ejercicio 3

Suma a cada uno de los elementos de la matriz A, el valor


de 3 y asgnalo a la matriz D
Suma solo al elemento de la fila 2 y columna 2 de la matriz A el
valor de 5.

Define E = [1 2 3 4 5], F = [2 3 4 5 6]
Suma los elementos de E y F, uno a uno y asgnalos a G

Crea una matriz de 6x6 con valores aleatorios entre 1 y


11.
Crea la siguiente matriz con una sola asignacin:
1
2
3
4
5
6

2
3
4
5
6
7

3
4
5
6
7
8

4 5
5 6
6 7
7 8
8 9
9 10

6
7
8
9
10
11

round
19 /36

MATLAB & SIMULINK

The MathWorks

Extraccin desde una matriz


1

A=

A(3,1)
A(3)

11

16

1.2 7

9 12

17

7.2 3

7 13

18

11 23

0.5 9

4 14

19

56 24

23

15

20

10

10

83

10

13

21

25 22

A(1:5,5) A(1:end,end)
A(:,5)
A(:,end)
A(21:25) A(21:end)

25

A(4:5,2:3)
A([9 14;10 15])
20 /36

The MathWorks

MATLAB & SIMULINK

Concatenacin de matrices
Use [] para combinar los
matrices como
elementos de una matriz

Separador de fila
punto y coma (;)
Separador de columna
espacio o coma (,)

a=[1 2;3 4]
a =
1
2
3
4
cat_a=[a, 2*a; 3*a,
cat_a =
1
2
2
3
4
6
3
6
4
9
12
12
5
10
6
15
20
18

corchetes
rectangulares []
4*a; 5*a, 6*a]
4
8
8
16
12
24

4*a

La matriz resultante siempre es rectangular


21 /36

MATLAB & SIMULINK

The MathWorks

Ejercicio 4
Crea la siguiente matriz (P)
1
2
3
4

2
3
4
5

3
4
5
6

4
5
6
7

5
6
7
8

6 7
7 8
8 9
9 10

8
9
10
11

5
6
7
8

6 7
7 8
8 9
9 10

8
9
10
11

9
10
11
12

10
11
12
13

12
13
14
15

11
12
13
14

Aplicando operaciones de extraccin de matriz y


concatenacin crea la siguiente matriz (Q)
5
6
7
8

6 7
7 8
8 9
9 10

8
9
10
11

9
10
11
12

10
11
12
13

11
12
13
14

12
13
14
15

1
2
3
4

2
3
4
5

4
5
6
7

5
6
7
8

6 7
7 8
8 9
9 10

8
9
10
11

3
4
5
6

22 /36

The MathWorks

MATLAB & SIMULINK

Borrar filas o columnas


A=[1
A=[1 55 9;4
9;4 33 2.5;
2.5; 0.1
0.1 10
10 3i+1]
3i+1]
AA ==
1.0000
5.0000
9.0000
1.0000
5.0000
9.0000
4.0000
3.0000
2.5000
4.0000
3.0000
2.5000
0.1000
10.0000
1.0000+3.0000i
0.1000
10.0000
1.0000+3.0000i
A(:,2)=[]
A(:,2)=[]
AA ==
1.0000
9.0000
1.0000
9.0000
4.0000
2.5000
4.0000
2.5000
0.1000
1.0000
0.1000
1.0000 ++ 3.0000i
3.0000i
A(2,2)=[]
A(2,2)=[]
???
??? Indexed
Indexed empty
empty matrix
matrix assignment
assignment is
is not
not allowed.
allowed.

23 /36

The MathWorks

MATLAB & SIMULINK

Multiplicacin de matrices
aa == [1
[1 22 33 4;
4; 55 66 77 8];
8];
bb == ones(4,3);
ones(4,3);
cc == a*b
a*b
cc ==
10
10
10
10
10
10
26
26
26
26
26
26

[2x4]*[4x3]

[2x4]
[4x3]
[2x3]

a(2da fila).b(3ra columna)

Multiplicacin punto
aa == [1
[1 22 33 4;
4; 55 66 77 8];
8];
bb == [1:4;
[1:4; 1:4];
1:4];
cc == a.*b
a.*b
cc ==
11
44
99
16
16
55
12
21
32
12
21
32

c(2,4) = a(2,4)*b(2,4)
24 /36

The MathWorks

MATLAB & SIMULINK

Ejercicio 5
Elimina la primera y ltima columna de las matrices P y Q
para obtener las matrices R y S.
Multiplica P*Q
Calcular la multiplicacin punto P.*Q

Aplica los mismos operadores a R y S

25 /36

The MathWorks

MATLAB & SIMULINK

Funciones para manipular matrices


zeros:
ones:
eye:
rand:
diag:
size:
fliplr:
flipud:
repmat:

Crea un matriz de ceros


Crea un matriz de unos
Matriz identidad
Nmeros aleatorios uniformemente distribuidos
Matriz diagonal y diagonal de una matriz
Dimensiones de la matriz
Invierte la matriz de derecha a izquierda
Invierte la matriz de arriba hacia abajo
Replica la matriz

26 /36

The MathWorks

MATLAB & SIMULINK

Funciones para manipular matrices


transpose('): Transpuesta de la matriz
rot90:
Girar la matriz 90
tril:
La parte triangular baja de una matriz
triu:
La parte triangular superior de una matriz
cross:
Producto cruz de vectores
dot:
Producto punto de vectores
det:
Determinante de la matriz
inv:
Inversa de la matriz
eig:
Calcula los eigenvalues y eigenvectors.
rank:
Rango de la matriz
Si a = (1,2,3) y b = (4,5,6), el producto cruz a b es:
a b = (1,2,3) (4,5,6) = ((2 6 - 3 5),-(1 6 - 3 4),+(1 5 - 2 4)) = (-3,6,-3).
27 /36

The MathWorks

MATLAB & SIMULINK

Matemtica Elemental

28 /36

The MathWorks

MATLAB & SIMULINK

Matemticas elementales
Operadores lgicos
Funciones matemticas
Polinomios e interpolacin

29 /36

MATLAB & SIMULINK

The MathWorks

Operaciones lgicas
= = equal to
>

greater than

<

less than

>= greater or equal


<= less or equal
~

not

&

and

or

isfinite(), etc. . . .

Mass = [-2 10 NaN 30 -11 Inf 31];


Mass = [-2 10 NaN 30 -11 Inf 31];
each_pos = Mass>=0
each_pos = Mass>=0
each_pos
each_pos ==
00
11
00
11
00
11
all_pos = all(Mass>=0)
all_pos = all(Mass>=0)
all_pos
all_pos ==
00
all_pos = any(Mass>=0)
all_pos = any(Mass>=0)
all_pos
all_pos ==
11
pos_fin = (Mass>=0)&(isfinite(Mass))
pos_fin = (Mass>=0)&(isfinite(Mass))
pos_fin
pos_fin ==
00
11
00
11
00
00

11

11

all(), any()
find

Nota:
1 = TRUE
0 = FALSE

30 /36

The MathWorks

Ejemplo:

>> A=magic(4)
A=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> j=A>10
j=
1001
0100
0001
0110
>> isa(j,'logical')
ans =
1
>> A(j)=-10
A=
-10 2 3 -10
5 -10 10 8
9 7 6 -10
4 -10 -10 1

MATLAB & SIMULINK

31 /36

The MathWorks

MATLAB & SIMULINK

Funciones matemticas elementales


abs
Valor absoluto
sign
Funcin signo
sin, cos seno y coseno
asin, acos
arco seno y arco coseno
exp
exponencial
log, log10 logaritmo natural y base 10
ceil, floor menor mayor y el mayor menor.
fix
Redondeo hacia cero
round
Redondeo al entero ms cercano
gcd
Mximo comn divisor
lcm
Mnimo comn mltiplo
sqrt
Raz cuadrada

32 /36

The MathWorks

MATLAB & SIMULINK

Funciones matemticas elementales


real, imag
Parte real de imaginaria de un nmero
complejo
rem
Residuo despus de la divisin
max, min
Mximo y mnimo de matrices
mean, median Promedio y mediana de matrices
std, var
desviacin estndar y varianza
sort
orden ascendente
sum, prod
suma y producto de elementos
trapz
Integracin numrica trapezoidal
cumsum, cumprod:
Suma y producto acumulativo
diff, gradient
diferencias y gradiente numrico
33 /36

MATLAB & SIMULINK

The MathWorks

OPERADORES PARA LA RESOLUCIN DE


SISTEMAS DE ECUACIONES LINEALES
Considerando el sistema:

Ax = b

donde x y b son vectores columna, y A una matriz cuadrada invertible.


La resolucin de este sistema de ecuaciones se puede escribir en las 2
formas siguientes:
x = inv(A)*b
x = A\b
El operador divisin-izquierda por una matriz (barra invertida \) equivale a
pre-multiplicar por la inversa de esa matriz.
A\b, produce un resultado aunque la matriz no sea cuadrada y aunque no
sea invertible.
Por ejemplo si el sistema esta sobredeterminado (ms ecuaciones que
incgnitas) se calcula la solucin que minimiza la norma 2 de Ax-b
(solucin de mnimos cuadrados)
34 /36

The MathWorks

MATLAB & SIMULINK

Autovalores y autovectores de una matriz.

Autovalores y autovectores de una matriz.


>>eig(A) (vector columna)
>>[V,D]=eig(A)
35 /36

The MathWorks

MATLAB & SIMULINK

Ejercicio
Se considera la matriz A. Calcular el determinante de la matriz A.
Resolver el sistema siendo b un vector columna igual a (1 2 3)
A=

6 18 2

7 2 4
4 10 6

Sustituir en la matriz A el elemento de la fila 1 columna 3 por 10 y


hacer lo mismo.
A=[6 18 2;7 2 4;4 10 6];
d=det(A)
b=[1;2;3];
sol=A\b
A(1,3)=-10
d=det(A)
sol=A\b
A*sol-b

36 /36

MATLAB & SIMULINK

The MathWorks

Ejercicio
Se considera la matriz A. Calcular los autovectores y
autovalores
A=

5 1
4 10 1

>> A=[1 2 0; 2 5 -1;4 10 -1];


>> [V,D]=eig(A)
>> diag(D)
37 /36

MATLAB & SIMULINK

The MathWorks

Tipos de datos
Matrices reales:

Otros

double
single

char
logical
cell
struct

Matrices enteras:
int8, uint8
int16, uint16
int32, uint32
int64, uint64

realmin ->2.2251e-308, realmax -> 1.7977e+308, eps -> 2.2204e-016


realmin -> 1.1755e-038, realmax -> 3.4028e+038, eps -> 1.1921e-007
38 /36

The MathWorks

MATLAB & SIMULINK

Tipos de datos: Matrices dispersas


Las matrices dispersas ahorran memoria y los clculos son ms
eficientes
s = sparse(1000,1000);
s(2,11) = 2;
s(992,875) = 3;
s(875,992) = 4.7;

Todas las operaciones de matrices funcionan


con matrices dispersas.
Si se vuelve ineficiente, se convierte automticamente a matriz
normal
s=s+3; % s deja de ser dispersa

39 /36

The MathWorks

MATLAB & SIMULINK

Todos los tipos de datos


Matlab tiene en total 15 tipos de datos que se
utilizan para formar matrices o arrays.

40 /36

The MathWorks

MATLAB & SIMULINK

Identificacin del tipo de dato


Descripcin del tipo de dato:

Identificacin lgica

41 /36

The MathWorks

MATLAB & SIMULINK

Conversin entre tipos numricos


La conversin se realiza utilizando el nombre
del tipo como si fuese una funcin.

42 /36

The MathWorks

MATLAB & SIMULINK

Funciones de redondeo

round: redondea al entero ms prximo


floor: redondea hacia Inf
ceil: redondea hacia +Inf
fix: redondea hacia cero

43 /36

The MathWorks

MATLAB & SIMULINK

Cadenas de caracteres
En Matlab las cadenas de caracteres son
vectores de tipo char (igual que en C)

Para utilizar variables que contengan ms de una cadena de caracteres es necesario


que todas las cadenas tengan la misma longitud. Esto se facilita con la funcin de
conversin char:
>> nombres = char('Rafael', 'Ana');
Utilizando cell arrays se puede almacenar cadenas de distintas longitudes.
44 /36

The MathWorks

MATLAB & SIMULINK

Comparacin de cadenas de caracteres


El operador == trata las cadenas como vectores.

strcmp: compara cadenas y retorna 1 para cierto


y 0 para falso. (OJO: distinto que en C).
Otras funciones de comparacin: strncmp,
strcmpi, strncmpi
45 /36

The MathWorks

MATLAB & SIMULINK

Otras funciones de cadenas de caracteres:


strrep: tpico find-and-replace
cadena=strrep(cadena,'busca','sustituye');

findstr: busca una cadena dentro de otra


posicion = findstr('busca', cadena);

strcat: concatena 2 o ms cadenas


texto = strcat(cadena1, cadena2, cadena3);

sprintf: construye una cadena a partir de


variables. Equivale a sprintf de C
cadena=sprintf('Tengo %6.2f EUR',mi_dinero);
46 /36

The MathWorks

MATLAB & SIMULINK

Estructuras y cell arrays


Las estructuras permite almacenar valores de diferente
naturaleza bajo un nombre de variable

No requiere definicin previa


se accede a los campos igual que en C
Vectores de estructuras se obtienen dinmicamente aadiendo
elementos

47 /36

The MathWorks

MATLAB & SIMULINK

Estructuras y cell arrays


Se puede acceder a un campo concreto poniendo el
nombre del campo en una cadena de caracteres:

48 /36

The MathWorks

MATLAB & SIMULINK

Cell arrays
Un cell array permite construir vectores en las que cada
elemento es de un tipo diferente:

Se utilizan llaves { } en lugar de corchetes [ ] o parntesis ( ).


La diferencia con las estructuras es que se accede a los valores
utilizando un ndice en lugar del nombre del campo.
Trabajar con estructuras es muy ineficiente.
49 /36

The MathWorks

MATLAB & SIMULINK

Cell arrays
Un cell array permite construir matrices en las que cada
fila es diferente:

50 /36

The MathWorks

MATLAB & SIMULINK

Cell arrays
Utilizando ( ) accedo a un elemento, que es tipo cell
Utilizando { } accedo al valor

51 /36

You might also like