Sunteți pe pagina 1din 52

The MathWorks

MATLAB & SIMULINK

CURSO DE MATLAB
Nivel I

The MathWorks

MATLAB & SIMULINK

SESIN N 1: FUNDAMENTOS DE MATLAB

The MathWorks

MATLAB & SIMULINK

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

Entorno de trabajo de Matlab

Workspace: Variables en uso Command Window: Instrucciones y sus resultados

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 (-).

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

The MathWorks

MATLAB & SIMULINK

Operadores Matemticos & Asignacin


Potencia Multiplicacin Divisin ^ * / \ .^ .* ./ .\ a^b a*b a/b b\a a.^b a.*b a./b b.\a

Nota:

56/8 == 8\56

- (unrio) + (unrio) Adicin + Sustraccin Asignacin =

a + b a - b a = b

(asigna b a a)

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.

The MathWorks

MATLAB & SIMULINK

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

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.

The MathWorks

MATLAB & SIMULINK

Formatos de visualizacin
Formato format long format short e format long e format hex format bank Caracterstica 16 dgitos 5 dgitos ms exponente 16 dgitos ms exponente sistema hexadecimal 2 decimales Ejemplo 0.00402414486922 4.0241e-003 4.024144869215292e-003 3f707b9f29b8eae2 0.00

format +
format rat format short

signo +,- 0
aproximacin racional formato por defecto

+
2/497 0.0040

The MathWorks

MATLAB & SIMULINK

Matrices en MatLab

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

The MathWorks

MATLAB & SIMULINK


Columnas (n) 2 3 4
1

La matriz en MatLab
1 5
16

A=

1
2

4 8

10 1.2 5

1 9 7 4 13

11

6 4 1 5 0

2 25

21

A (2,4)

12

17

22

Filas (m) 3 4 5

7.2 3 0 23
4

13

18

11 23 56 24 10
25

A (17)

0.5 9 83
10

14

19

15

20

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

The MathWorks

MATLAB & SIMULINK

Creacin de matrices numricos


a=[1 2;3 4] a = 1 3 2 4

corchetes rectangulares

b=[-2.8, sqrt(-7), (3+5+6)*3/4]

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

b = -2.8000 b = 0 + 2.6458i 10.5000 b(2,5) = 23

-2.8000
0

0 + 2.6458i
0

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

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

The MathWorks

MATLAB & SIMULINK

Expansin Escalar
Expansin escalar: Suma de matriz + escalar
w=[1 2;3 4] + 5 w = 6 7 8 9 x = 1:5 x = 1 2 y = 2:-0.5:0 y = 2.0000 1.5000 z = rand(2,4) z = 0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 0.4565 0.0185 3 4 5

Creacin de secuencias: operador punto y coma (:)

1.0000

0.5000

Funcin de uso prctico para crear matrices.

The MathWorks

MATLAB & SIMULINK

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

The MathWorks

MATLAB & SIMULINK

Extraccin desde una matriz


1 2 3 4 5

A=

1
2 3

4 8

10

11

6 4 1 5 0

16

21

1.2 7 5
8

9 12 7 13 4 14

17

25 22 11 23 56 24 10 25
A(1:5,5) A(1:end,end) A(:,5) A(:,end) A(21:25) A(21:end)

7.2 3 0 23
4

18

A(3,1) A(3)

4 5

0.5 9

19

83 10 1315

20

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

The MathWorks

MATLAB & SIMULINK

Concatenacin de matrices
Use [] para combinar los matrices como elementos de una matriz
a=[1 2;3 4] a = 1 3 2 4 4*a; 5*a, 6*a]

corchetes rectangulares []

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

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

4 8 8 16 12 24

4*a

La matriz resultante siempre es rectangular

The MathWorks

MATLAB & SIMULINK

Ejercicio 4
Crea la siguiente matriz (P)
1 2 3 4 5 6 7 8 2 3 4 5 3 4 5 6 4 5 6 7 8 9 10 11 5 6 7 8 9 10 11 12 6 7 7 8 8 9 9 10 10 11 12 13 11 12 13 14 8 9 10 11 12 13 14 15

6 7 7 8 8 9 9 10

Aplicando operaciones de extraccin de matriz y concatenacin crea la siguiente matriz (Q)


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

6 7 7 8 8 9 9 10

The MathWorks

MATLAB & SIMULINK

Borrar filas o columnas


A=[1 5 9;4 3 2.5; 0.1 10 3i+1] A = 1.0000 4.0000 0.1000 A(:,2)=[] A = 1.0000 9.0000 5.0000 3.0000 10.0000 9.0000 2.5000 1.0000+3.0000i

4.0000
0.1000 A(2,2)=[] ???

2.5000
1.0000 + 3.0000i

Indexed empty matrix assignment is not allowed.

The MathWorks

MATLAB & SIMULINK

Multiplicacin de matrices
a = [1 2 3 4; 5 6 7 8]; b = ones(4,3); c = a*b c = 10 26 10 26 10 26 [2x4]*[4x3] [2x4] [4x3] [2x3]

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

Multiplicacin punto
a = [1 2 3 4; 5 6 7 8]; b = [1:4; 1:4]; c = a.*b c = 1 5 4 12 9 21 16 32 c(2,4) = a(2,4)*b(2,4)

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

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

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).

The MathWorks

MATLAB & SIMULINK

Matemtica Elemental

The MathWorks

MATLAB & SIMULINK

Matemticas elementales
Operadores lgicos Funciones matemticas Polinomios e interpolacin

The MathWorks

MATLAB & SIMULINK

Operaciones lgicas
= = equal to > < greater than less than
Mass = [-2 10 NaN 30 -11 Inf 31]; each_pos = Mass>=0 each_pos = 0 1 0 1 0 1 1 all_pos = all(Mass>=0) all_pos = 0 all_pos = any(Mass>=0) all_pos = 1 pos_fin = (Mass>=0)&(isfinite(Mass)) pos_fin = 0 1 0 1 0 0 1

>= greater or equal <= less or equal ~ & | not and or

isfinite(), etc. . . . all(), any() find

Nota:
1 = TRUE 0 = FALSE

The MathWorks

MATLAB & SIMULINK

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

The MathWorks

MATLAB & SIMULINK

Funciones matemticas elementales


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

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

The MathWorks

MATLAB & SIMULINK

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)

The MathWorks

MATLAB & SIMULINK

Autovalores y autovectores de una matriz.

Autovalores y autovectores de una matriz. >>eig(A) (vector columna) >>[V,D]=eig(A)

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

The MathWorks

MATLAB & SIMULINK

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

1 2 0 2 5 1 4 10 1

>> A=[1 2 0; 2 5 -1;4 10 -1]; >> [V,D]=eig(A) >> diag(D)

The MathWorks

MATLAB & SIMULINK

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

1 2 0 2 5 1 4 10 1

>> A=[1 2 0; 2 5 -1;4 10 -1]; >> [V,D]=eig(A) >> diag(D)

The MathWorks

MATLAB & SIMULINK

Tipos de datos
Matrices reales:
double single

Otros
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

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

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.

The MathWorks

MATLAB & SIMULINK

Identificacin del tipo de dato


Descripcin del tipo de dato:

Identificacin lgica

The MathWorks

MATLAB & SIMULINK

Conversin entre tipos numricos


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

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

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.

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

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);

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

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:

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.

The MathWorks

MATLAB & SIMULINK

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

The MathWorks

MATLAB & SIMULINK

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

S-ar putea să vă placă și