Вы находитесь на странице: 1из 31

Introdução ao MATLAB

MATLAB Básico

www.opencadd.com.br
Introducción a MATLAB

Ayuda en linea

• El comando de ayuda > > ayuda


• La ventana de ayuda > > helpwin
• El comando lookfor > > lookfor
» ayuda cd
Cambiar
discos compactos el directorio de trabajo actual.
CD directorio de especificación establece el directorio actual a la especificada.
CD .. mueve al directorio por encima de la actual.
CD, por sí mismo, imprime el directorio actual.

WD = Cd devuelve el directorio actual como una cadena.

Utilice la forma funcional de CD, como CD ( 'directorio-spec'),


cuando la especificación del directorio se almacena en una cadena.

Ver también PWD.

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

Los cálculos en la línea de comandos


MATLAB como una calculadora Asignación de Variables

»- 5 / (4,8 + 5,32) ^ 2 » a = 2;

ans = » b = 5;

- 0,0488 »a^b

»( 3 + 4i) * (3-4i) ans = Resultados asignados


pantalla
ans = 32 a “ans” si el nombre
no especificados
25 » x = 5/2 * pi;
suprime la salida de
» cos (pi / 2) » y = sin (x)

ans = y=
de la función punto y coma
6.1230e-017 1

» exp (acos (0,3)) » z = asin (y) () Paréntesis para entradas


ans = z=

3.5470 1.5708

Números almacenados en formato de coma flotante de


» cmd_line doble precisión
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Trabajar con archivos y variables


• CD / PWD, LS / DIR - directorios que navegan

• ¿QUÉ - muestra los archivos dentro de un directorio (agrupados


por tipo)

• ! - invocar sistema operativo


• QUE - identifica el objeto referenciado por nombre dado
(función / variable)
• CLARO - eliminar la función / variable de la memoria

• Whos - listas de área de trabajo variables y detalles (tamaño, uso de


memoria, tipo de datos)

• TAMAÑO - devuelve el tamaño de la matriz

Ref: Comandos de utilidades


Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

navegador de espacio de trabajo

variables de línea de comandos

guardados en MATLAB espacio de

trabajo

» espacio de trabajo
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Editor de la tabla

Para las matrices

numéricas de edición 2-D

haga doble clic /


Abierto

» ans openvar
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Trabajar con matrices

MATLAB == Laboratorio MATrix

» durer de carga » detalle de carga


» imagen (X); » imagen (X);
» mapa de colores (mapa) » mapa de colores (mapa)

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

La matriz en MATLAB
columnas
(norte)

1 2 3 4 5
A= 1

10
6 11 dieciséis

2
21

1
4 1 6 A (2,4)

8 1.2 25
2 7 12 17 22
9 4
2

Filas (m) 3 7,2 5 3 8


7
13
1
18
11
23
A (17)

4 0 0.54 9
4
14
5
19
56 24

25
5 23 83 13 10
5 10 15 20
0 Rectangular Matrix:
escalar: 1-por-1 array
Vector: m-por-1 array
elementos de la matriz pueden ser 1-por-n Matrix
números o caracteres matriz: m-por-n array

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

Introducción de matrices numéricas

separador Row: punto » a = [1 2; 3 4]

y coma (;), a= Utilizar


1 2 corchetes []
separador de la columna: el 3 4
espacio / coma (,)
» b = [- 2,8, sqrt (-7), (3 + 5 + 6) * 3/4]
b=
- 2.8000 0 + 2.6458i 10.5000
» b (2,5) = 23
Matrices deben ser b=
rectangulares.
- 2.8000 0 + 2.6458i 10.5000 0 0
(Set indefinido
0 0 0 0 23.0000
elementos a cero)

Cualquier expresión de MATLAB se puede introducir

como un elemento de la matriz

» num_array1
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Introducción de matrices numéricas - cont.

expansión escalar » w = [1 2; 3 4] + 5 W =

6 7
8 9

secuencias creando: operador » x = 1: 5

de dos puntos (:) x=


1 2 3 4 5
» y = 2: -0,5: 0
y=
1.5000 1.0000 0.5000 2.0000 0
» z = rand (2,4)
Las funciones de utilidad para la
z=
creación de matrices.
(Ref: comandos de utilidad) 0,6068 0,8913 0,4565 0,9501
0,4860 0,7621 0,0185 0,2311

» num_array2
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Numérica concatenación Array - []


Use [] para combinar las » a = [1 2; 3 4]

matrices existentes como a= Utilizar


matriz “elementos” 1 2 corchetes []
3 4
» cat_a = [a, 2 * a; 3 * a, 4 * a; 5 * a, 6 * a] cat_a =
separador Row: punto
y coma (;), 1 2 2 4
3 4 6 8
separador de la columna: el 3 6 4 8
4*a
espacio / coma (,) 9 12 12 dieciséis

5 10 6 12
15 20 18 24

La matriz resultante
debe ser
rectangular.

» num_cat
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Subíndices de matriz / Indexación

1 2 3 4 5
A= 4
1

10
6

1
11
6
dieciséis

2
21

8 1,2 9 25
2 7 12 17 22
4
2
A (1: 5,5) A A (1: extremo, final) A

3 7,2 5 3 8
7
13
1
18
11
23
(:, 5) (:, final)

A (21:25) A (21: extremo) '

A (3,1) 4 0 0,5 4
4 9 14
5
19
56 24

A (3)
25
5 23 83 13 10
5 10 15 20
0
A (4: 5,2: 3)
A ([9 14; 10 15])
• Uso () paréntesis para especificar el índice
• operador de dos puntos (:) especifica gama / ALL
• [] Para crear la matriz de subíndices de índice
• 'Fin' especifica valor de índice máximo

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

Ejercicio: Creación de matrices

• Crear una matriz de 5x5 Pascal (" P_mat ")

• Extraer elementos para crear vectores fila para las


primeras 5 filas del triángulo de Pascal 111121
133114641
(Buscar patrones en los lugares en los elementos " P_mat ")

• Combinar los vectores en una sola matriz con


ceros por encima de la diagonal 1 5 10. . .
El triángulo de Pascal

fila1 =
"P_mat" 1 fila2
111111234513 = 100001100012
6 10 15 1 4 10 20 35 1 11 100133101464
5 15 35 70 Row3 = 1
1 2 1 row4
=
1 3 3 1 row5 =

14641

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

Solución: Creación de matrices (1)


» P_mat = pascal (5) % Crear matriz de Pascal

» row1 = P_mat (1) % Extracto de Filas

» fila2 = P_mat (2: 4: 6) .....


» row5 = P_mat (5: 4: 21)

» new_mat = row1 % Crear nuevo Matrix


» new_mat (2,1: 2) = fila2 .....
» new_mat (5,1: 5) = row5

% NOTA: forma generalizada:


% Nmax = longitud (P_mat);
% Rown = P_mat (N: Nmax-1: (N-1) * Nmax + 1)
% New_mat (N, 1: N) = Rown

» create_mat
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Solución: Creación de matrices (2)


» P_mat = pascal (5) % Crear matriz de Pascal

Reorganizar% Matrix - Pascal triángulo en modo de tapa superior del triángulo% Matriz
horizontalmente (izquierda-derecha):% - También es posible usar FLIPLR ():

» temp = P_mat (1: 5, 5: -1: 1)

% Extracto diagonales (filas del triángulo de Pascal)


» row1 = diag (temp, 4)'
» fila2 = diag (temp, 3)'
» Row3 = diag (temp, 2)'
» row4 = diag (temp, 1)'
» row5 = diag (temp)'

% Crear nuevo Matrix como antes

» create_mat
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Solución: Creación de matrices (3)


» P_mat = pascal (5) % Crear matriz de Pascal

Reorganizar% Matrix - Pascal triángulo en la parte baja del tirón% triángulo matriz
vertical (arriba-abajo):% - También es posible usar FLIPUD ():

» temp1 = P_mat (5: -1: 1, 1: 5)

% De extracto de matriz triangular inferior:


» temp2 = tril (temp1)

% Crear Nueva Matriz de clasificación por columnas de "Temp 2":

» new_mat = sort (temp2)

» create_mat
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Matrices y Álgebra Lineal

Los operadores de matriz operadores Array () Matrix funciones habituales de inv


paréntesis () matriz inversa

'Comp. transponer '. matriz transpuesta det () determinante

^ poder . ^ Alimentación de la matriz rango () rango matriz

* multiplicación .* array mult. eig () vectores propios y valores

/ división ./ División array svd () valor singular dec.

\ División de la izquierda norma) norma (matriz / vector

+ adición

- sustracción

(En orden de prioridad)

» operaciones de ayuda » ayuda matfun


Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

La multiplicación de matrices

• Dimensiones internas deben ser iguales

• Dimensión de matriz resultante = dimensiones más exteriores


de matrices multiplicadas

• elementos resultantes = producto escalar de las filas de la primera


matriz con las columnas de la segunda matriz
» a = [1 2 3 4; 5 6 7 8]; [2x4]
» b = onas (4,3); [4x3]
»c=a*b [2x4] * [4x3] [2x3]
c=
10 10 10
26 26 26 una (segunda fila) .b (tercera columna)

» mat_mult
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Resolución de ecuaciones simultáneas


el uso de “División de Izquierda”

[A] = mxn {x}


[A] {x} = {b} {X} =? = nx1 {b} =
MX1

• Si [A] es la matriz cuadrada (m = n): » x = inv (A) * b;


» x = A \ b;
{X} = [A] - 1 { segundo}
Advertencia de error si
singular si casi singular

• Para el sistema sobredeterminado (m> n): » x = A \ b;


usando regresión de mínimos cuadrados “ajuste de curva” de datos

Advertencia: si el rango deficiente (columnas dependientes) - solución no es único

• Para el sistema indeterminado (m <n):


» x = A \ b;
usando factorización QR con pivotamiento columna

Nunca único

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

Ejemplo: Resolución de ecuaciones

• Resolver este sistema de ecuaciones simultáneas:

» A = [-1 1 2; 3 -1 1; -1 3 4];
» b = [2; 6; 4];
» x = inv (A) * b
- X 1 + X 2 + 2x 3 = 2 3x 1 - X 2 + X
3= 6
x=
1.0000
- 1.0000
2.0000
- X 1 + 3x 2 + 4x 3 = 4
»x=A\b
x=
1.0000
- 1.0000
2.0000

» solve_examp
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

La multiplicación de matriz

• Matrices deben tener las mismas dimensiones

• Dimensiones de la matriz resultante = dimensiones de matrices


multiplicadas

• elementos = producto de los elementos correspondientes de las


matrices originales resultante
» a = [1 2 3 4; 5 6 7 8];
» b = [1: 4; 1: 4];
» c = a. * b
c=
1 4 9 dieciséis

5 12 21 32 c (2,4) = a (2,4) * B (2,4)

Las mismas reglas se aplican para otras operaciones de matriz


» array_mult
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Operaciones de matriz: Ejemplo

• En la mayoría de los idiomas - bucles de uso:


» tic; para i = 1: 1 000
Densidad (I) = Masa (I) / (Longitud (I) * Ancho (I) * Altura (I));
fin; toc
elapsed_time =
Uso de TIC y TOC para medir el
0,0500 tiempo transcurrido

• En MATLAB - utilizar Operaciones de matriz:


» tic; Densidad = Mass./(Length.*Width.*Height); toc
elapsed_time =
código vectorizado es mucho más
0 rápido que los bucles

» array_examp
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Operaciones booleanas

Los operadores booleanos =


» Masa = [-2 10 NaN 30 -11 Inf 31];
= Igual a
» all_pos = all (Masa> = 0)
all_pos =
> mas grande que
0
< menos que
» each_pos = Masa> = 0
~ no each_pos =

yy 0 1 0 1 0 1 1

| o
» pos_fin = (Masa> = 0) y (isFinite (masa))
pos_fin =
esta vacio()
0 1 0 1 0 0 1
isFinite (), etc.. . .

alguna()
1 = TRUE 0 =
todos() FALSE

» bool_ops
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Ejercicio: Las operaciones con matrices

• Se le da los datos de medición de corriente aplicada vs voltaje de


CC para un circuito de “recuadro negro”

• Determinar la resistencia lineal del circuito


Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Solución: Las operaciones con matrices

% Assign datos cargados:


» A = voltaje; b = corriente;

% Uso de división izquierda

»x=A\b
Adaptación inicial

% Usando pseudoinverse
» pseudo_inv_A = inv (A '* A) * A';
un mejor ajuste
» x = pseudo_inv_A * b

% Repita utilizando datos lineal


» índices = find (tensión <8);
» A = tensión (índices); b = actuales (índices); .....

» mat_ops (Utiliza: >> >> mat_ops_setup.m y mat_ops.mat)


Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

matrices de cadenas

• Creado usando solo delimitador de comillas ( ')

» cadena = 'Hola'
str =
Hola,
» str2 = 'isn''t MATLAB grande?'
str2 =
No se MATLAB grande?

• Cada carácter es un elemento de matriz separada


(16 bits de memoria por carácter)

la re , vector de 1x9
str = Hola

• Indexación mismo que para las matrices numéricas

» string_array
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Array cadena concatenación

Usando operador []: Cada » cadena = 'Hola';


vector 1x9
fila debe ser misma » str1 = 'Todo el mundo!';
longitud
» new_str = [str, '', str1]
new_str =
separador Row: punto
¡Hola a todos! 1x19 vectores
vectores
y coma (;),
» str2 = 'isn''t MATLAB grande?';
» new_str2 = [new_str; str2] new_str2 =
separador de la columna: el
espacio / coma (,)
¡Hola a todos! No se MATLAB
matriz de 2x19
grande? acolchado) 1x19

Para las cadenas de diferente longitud:

• STRVCAT
» new_str3 = strvcat (str, str2) new_str3 = Hola,
• STR2MAT no es gran MATLAB?
matriz de 2x19 (cero

» string_cat
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Trabajar con matrices de Cuerda

comparaciones de series

• STRCMP - comparar cadenas enteras


• Strncmp - comparar los primeros caracteres 'N'
• FINDSTR - encuentra subcadena dentro de una cadena más grande

La conversión entre las matrices numéricas y de cadena:

• NUM2STR - convertir de numérico para matriz de cadenas

• STR2NUM - convertir de cadena a matriz numérica

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

Matrices de cadenas: Ejercicio

• Crear una matriz de 5x5 mágica (" METRO")

• Utilizar " METRO" para crear una matriz de cadenas que mostrará la
siguiente manera:
» disp (string_array)
5x5 magia Matrix:
Carácter de nueva línea

'A B C D E'
1 17 24 1 8 15
2 23 5 7 14 16
PISTA: Crear
3 4 6 13 20 22
filas por
4 10 12 19 21 3 separado y
5 11 18 25 2 9 concatenar

carácter de tabulación

Derechos de autor • 1984 - 1998 por The MathWorks, Inc.


Introducción a MATLAB

Matrices de cadenas: Solución

» M = mágica (5)
» M_string = num2str (M)

» epígrafe = [ '5x5 magia Matrix:', char (10)]


» row0 = [char (9), '' 'A' 'B '' '' '' C '' '' D '' '' E ''']
» row1 = [ '1', char (9), M_string (1, :)]
» fila2 = [ '2', char (9), M_string (2, :)]
» Row3 = [ '3', char (9), M_string (3, :)]
» row4 = [ '4', char (9), M_string (4, :)]
» row5 = [ '5', char (9), M_string (5, :)]

» string_array = strvcat (partida, row0, row1, fila2, Row3, row4, row5)

» string_soln
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.
Introducción a MATLAB

Las matrices multidimensionales

» A = pascal (4);
» A (:,:, 2) = mágica (4)
A (:,:, 1) =
página N
1 1 1 1
10 0 0
01 0 0
1 2 3 4
00 1 0 1 3 6 10
00 0 1
1 4 10 20
00 0 0 A (:,:, 2) =
00 0 0
Página 1 dieciséis 2 3 13 dieciséis 2 3 13
5 11 10 0 0 80 0
11 1
00
1
0 0
5 11 10 8
9 7 6 12
12 3 4
4 14 15 1 9 7 6 12
13 6 10
1 4 10 20 4 14 15 1
» A (:,:, 9) = diag (los (1,4));

» mult_dim
Derechos de autor • 1984 - 1998 por The MathWorks, Inc.

Вам также может понравиться