PRCTICA de MATLAB
Sesin 0
2
MATLAB como paquete de programas
3
MATLAB como paquete de programas
MATLAB
4
MATLAB como paquete de programas
Simulink
5
MATLAB como paquete de programas
Stateflow
6
Un poco de historia
7
Ventajas y desventajas de MATLAB
Ventajas
Amplio soporte matemtico
Alta precisin
Amplio soporte de funciones ya desarrolladas
Rpido prototipado
Integracin con dispositivos hardware
Una comunidad muy extendida
Magnfica ayuda
Comercial
Desventajas
Gestin oscura de la memoria
Problemas eventuales de velocidad
Comercial
Distribucin de ejecutables
8
Motivacin para este curso
MATLAB Michael Jackson
Septiembre 2006 33.300.000 38.500.000
9
Planteamiento del curso
10
Programa
11
Cronograma del curso
12
Sesin 1: Operaciones con matrices y vectores.
Funciones de librera.
Definicin de la matriz A
Definicin de la matriz B
como A transpuesta
Si no se asigna a nadie, el
resultado siempre se asigna Definicin de e1 como un
a la variable ans vector columna
Multiplicacin de A por e1
(matriz por vector)
13
Sesin 2: Otros tipos de datos en MATLAB.
Programacin en MATLAB.
14
Sesin 3: Grficos bidimensionales. Grficos
tridimensionales.
15
Sesin 4: Interfaces de usuario en MATLAB.
Generacin de programas autnomos
16
Sesin 5: Libreras de inters prctico
17
Sesin 6: Interaccin de MATLAB con Office y
Visual Basic
18
Sesin 7: Desarrollo de un proyecto
Su nombre aqu
19
Organizacin temporal
20
Lecturas recomendadas
21
Recursos
22
Recursos
23
Recursos
24
Bibliografa
25
Entorno de MATLAB
Current
directory
Command
window
Command
history
26
Entorno de MATLAB
Workspace
Command
window
Command
history
27
Entorno de MATLAB: Ayuda
28
Entorno de MATLAB: Ayuda
29
Entorno de MATLAB: Ayuda
Comando help
Ayuda sobre
tpicos generales
30
Entorno de MATLAB: Ayuda
Comando help
sobre tpicos
generales
Ayuda sobre
comando load
31
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 1
2
Definicin de vectores y matrices
Definicin de la matriz A
Definicin de la matriz B
como A transpuesta
Si no se asigna a nadie, el
resultado siempre se asigna Definicin de e1 como un
a la variable ans vector columna
Multiplicacin de A por e1
(matriz por vector)
3
Definicin de vectores y matrices
Definicin de e1 como
vector columna (3x1)
Definicin de e2 como
(3x1)x(1x3)=3x3 vector fila (1x3)
(1x3)x(3x1)=1x1
(1x3)x(1x3)=Error
4
Operaciones con vectores y matrices
No muestra el resultado
Multiplicacin matricial
Multiplicacin elemento a
elemento
5
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 1
2
Definicin de vectores y matrices
Definicin de la matriz A
Definicin de la matriz B
como A transpuesta
Si no se asigna a nadie, el
resultado siempre se asigna Definicin de e1 como un
a la variable ans vector columna
Multiplicacin de A por e1
(matriz por vector)
3
Definicin de vectores y matrices
Definicin de e1 como
vector columna (3x1)
Definicin de e2 como
(3x1)x(1x3)=3x3 vector fila (1x3)
(1x3)x(3x1)=1x1
(1x3)x(1x3)=Error
4
Operaciones con vectores y matrices
No muestra el resultado
Multiplicacin matricial
Multiplicacin elemento a
elemento
5
Operaciones con vectores y matrices
+ adicin o suma
sustraccin o resta
* multiplicacin
' traspuesta
^ potenciacin
\ divisin-izquierda
/ divisin-derecha
.* producto elemento a elemento
./ y .\ divisin elemento a elemento
.^ elevar a una potencia elemento a elemento
6
Un poco de lgebra
Comentario
Resolucin de un
sistema de ecuaciones
Llamada a funcin
Producto escalar
7
Definicin de vectores y matrices
Matriz
identidad
Matriz
cuadrada de 1s
Matriz no Matriz
cuadrada de 0s cuadrada de 0s
8
Definicin de vectores y matrices
Vector
de 1 a 10
Vector de 1 a
10 cada 3
Vector de 1 a
11 cada 3
Matriz de 1s
con la forma Vector 10 a 2
de otra matriz cada 2
9
Definicin de vectores y matrices
Reestructuracin de
una matriz
10
Indexacin de matrices
Extraccin de una
submatriz
11
Indexacin de matrices
Extraccin de
una fila
Extraccin de una
columna
Asignacin de una
columna
12
Indexacin de matrices
Acceso a una
coordenada no existente
Acceso a varios
Acceso a varios ndices al mismo
ndices al mismo tiempo
tiempo
Seleccin de los
ndices por una
condicin
13
Indexacin de matrices
14
Indexacin de matrices
Eliminacin de una
columna
Comprobar si est
vaca
Condicin falsa
Asignar una
matriz vaca
Condicin
verdadera
15
Condiciones
Porcentaje de
nmeros mayores
que 0
16
Condiciones
Diferentes tipos
Encontrar valores
de datos
mayores que 0
Encontrar valores
& and menores que 0
| or
~ negacin lgica Valores menores que 0
o
mayores que 0
17
Condiciones e indexacin
Sustituir valores
mayores que 0 por 1
Sustituir valores
menores que 0 por -1
18
Funciones
Funcin aplicada a
un escalar
Funcin aplicada a
un vector
Funcin aplicada a
Funcin con un una matriz
argumento de
retorno
19
Funciones
Las funciones
pueden considerar
las matrices como
una matriz y no
como una coleccin
de elementos
20
Funciones
Operaciones
elemento a
elemento
21
Funciones
Explorar las
funciones
matemticas
22
Entrada/Salida
Salvar todo el
workspace
Cargar todo el
workspace
23
Ejercicio final
24
Ejercicio final
25
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 2
2
Tipos de datos: Cadenas
Puede contener
Una cadena es comillas dobles
una matriz
De cadena a ASCII
De ASCII a cadena
3
Tipos de datos: Cadenas
Concatenacin de cadenas
Apilamiento de cadenas como concatenacin de
no vlido vectores
Apilamiento de cadenas
correcto Las cadenas
son matrices
Se ha rellenado la primera
cadena con el tamao de
la segunda
4
Tipos de datos: Cadenas
Imprimir en Imprimir en
una cadena consola
Extraer token
Remplazar
Buscar
5
Tipos de datos: Hipermatrices
Definicin de
una hipermatriz
Acceso a una
hipermatriz
Definicin de
una hipermatriz
6
Tipos de datos: Hipermatrices
Definicin de
una hipermatriz
Extraccin de
una capa
Extraccin de
una capa
7
Tipos de datos: Estructuras
Declaracin de un
campo de tipo
Declaracin cadena
de un campo
numrico
Declaracin de
una estructura
Campos de una Acceso a una
estructura estructura
8
Tipos de datos: Estructuras
Estructuras
anidadas
Array de estructuras con
el primer elemento vaco
Completar el primer
elemento del array
9
Tipos de datos: Arrays de celdas
Array 1x2
Acceso al
Aadir array con {}
elemento al
array
Array 2x2
10
Tipos de datos: Arrays de celdas y estructuras
Array 1x3
Conversin a
De vuelta a struct
celdas: 3x1
Transpuesta a 1x3
La transpuesta no
afecta a los contenidos
11
Programacin: Control
for i=1:5 A=rand(2,3) A=zeros(3,4);
for j=1:5 for columna=A for i=1:size(A,1)
A(i,j)=1/(i+j-1); disp(columna) for j=1:size(A,2)
end end A(i,j)=abs(i-j);
end end
for x=1.0:-0.1:0.0 end
for i=1:5 disp(x)
for j=1:5 if x<0.5 break; end
if i==j end
A(i,j)=2;
elseif abs(i-j)==1 a=[10 20 30 40];
A(i,j)=-1; for i=1:length(a)
else a(i)=a(i)/i;
A(i,j)=0; end
end a
end
end a=[10 20 30 40]./[1:length(a)]
12
Programacin: Control
method = 'Bilinear';
% Precisin de la mquina
switch lower(method) eps=1;
case {'linear','bilinear'} while (1+eps)>1
disp('Method is linear') eps=eps/2;
case 'cubic' end
disp('Method is cubic') eps=eps*2
case 'nearest'
disp('Method is nearest')
% Contar las lneas de cdigo de magic.m
otherwise
fid=fopen('magic.m', 'r');
disp('Unknown method.')
count=0;
end
while ~feof(fid)
linea = fgetl(fid);
if isempty(linea) | strncmp(linea,'%',1)
continue
end
count=count+1;
end
fclose(fid);
disp(sprintf('%d lneas', count));
13
Programacin: Funciones
function [mean,stdev]=stat(x)
% Esta funcin calcula la media y la desviacin tpica de x
% Uso: [mean,stdev]=stat(x)
n=length(x);
mean=sum(x)/n;
stdev=sqrt(sum((x-mean).^2/n));
end
function [mean,stdev]=stat(x)
help stat n=length(x);
[media,desviacion]=stat([1 2 3 4 5]); mean=media();
stdev=sqrt(sum((x-mean).^2/n));
function [mean,stdev]=stat(x)
n=length(x); function mean=media()
mean=media(x); mean=sum(x)/length(x);
stdev=sqrt(sum((x-mean).^2/n)); end
end
function mean=media(x)
mean=sum(x)/length(x);
Subfuncin Funcin
anidada 14
Entorno de MATLAB: Debugger
Lnea actual
Workspace de Llamada a la
la funcin funcin
Breakpoint Control de la
ejecucin
15
Programacin: Funciones
function varargout=atan3(varargin)
if nargin==1
rad=atan(varargin{1});
elseif nargin==2
rad=atan2(varargin{1},varargin{2});
else
disp('Error: ms de dos argumentos')
return
end function [x0, y0] = myplot(x, y, npts, angle, subdiv)
varargout{1}=rad; % MYPLOT Plot a function.
varargout{2}=rad*180/pi; % MYPLOT(x, y, npts, angle, subdiv)
end % The first two input arguments are
% required; the other three have default values.
...
if nargin < 5, subdiv = 20; end
if nargin < 4, angle = 10; end
if nargin < 3, npts = 25; end
...
if nargout == 0
plot(x, y)
else
x0 = x;
y0 = y;
end
16
Programacin: funciones vs scripts (batches)
houdini
% File: houdini.m
m = magic(4); % Assign 4x4 magic square to m.
t = m .^ 3; % Cube each element of m. Workspace: m,t
disp(t); % Display the value of t.
houdini(4)
% File: houdini.m
function houdini(sz)
m = magic(sz); % Assign 4x4 magic square to m. Workspace:
t = m .^ 3; % Cube each element of m.
disp(t); % Display the value of t.
[m,t]=houdini(4)
% File: houdini.m
function [m,t]=houdini(sz)
m = magic(sz); % Assign 4x4 magic square to m. Workspace: m,t
t = m .^ 3; % Cube each element of m.
disp(t); % Display the value of t.
17
Programacin: Control
function matrixMultiply(A, B)
try
X = A * B
catch
disp '** Error multiplying A * B'
end
A = [1 2 3; 6 7 2; 0 1 5];
B = [9 5 6; 0 4 9];
matrixMultiply(A, B)
18
Programacin: Entrada/Salida
Consola/Teclado:
input/disp
echo, diary
Cadena
sscanf,strread/sprintf
Fichero:
load/save
dlmread/dlmwrite
tblread/tblwrite
xlsread/xlswrite
fopen, fread, fgetl, textscan/fwrite, fclose
importdata
uiimport
Clipboard:
clipboard
19
Programacin: Ejecucin por celdas
Ejecucin por
celdas
20
Programacin: Documentacin
help MiToolBox
MiToolBox (Directorio) % Esta toolbox sirve para ...
contents.m %
% Familia de funciones 1
mifuncion1.m % mifuncion1 - Sirve para ...
% mifuncion2 - Sirve para ...
mifuncion2.m ...
help mifuncion1
function y=mifuncion1(x)
% Esta funcin no hace nada
% Uso: y=mifuncion1(x)
% Entradas:
% x : vector de entrada para
% no hacer nada con l
% Salidas:
% y : vector de salida
y=x
21
Programacin: Publicacin HTML de scripts
22
Programacin: Publicacin HTML de scripts
23
Ejercicio final 1: Entrada/Salida
# Ao Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic Total
1959 1345 1246 1252 1254 1188 1202 1243 1202 1192 1270 1312 1361 15067
# Dcada de los 60
1960 1369 1331 1351 1252 1321 1275 1325 1322 1336 1393 1456 1610 16341
1961 1622 1422 1528 1433 1488 1418 1467 1506 1514 1573 1653 1711 18335
1962 1741 1639 1755 1557 1572 1585 1653 1653 1642 1730 1828 1902 20257
...
Ejercicio:
Leer el fichero Evolucion demanda comentada.txt
separando los aos, los datos mensuales y los datos totales.
Pedir al usuario el mes y los aos que desea representar
Representar los datos solicitados
24
Ejercicio final 2: Clculo cientfico
Ejercicio:
Leer el fichero Evolucion demanda comentada.txt por medio de
una funcin que recibe el nombre de fichero como parmetro
Denominemos x[n] a los datos mensuales
n=1 para enero de 1959
n=2 para febrero de 1959
n=12 para diciembre de 1959
n=13 para enero de 1960
etc.
Suavizar los datos ledos mediante la frmula
x[n 2] + x[n 1] + x[n] + x[n + 1] + x[n + 2]
y[n] =
5
Representar la demanda y la demanda suavizada en un mismo
grfico
25
Ejercicio 2: Clculo cientfico
18000
x[n]
y[n]
16000
14000
12000
10000
8000
6000
4000
2000
0
0 50 100 150 200 250 300 350 400 450 500
26
Y si sobra tiempo
27
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 3
2
Grficos bidimensionales
Plot
Etiquetas
de los ejes
Leyenda
Ejes
Ttulo
3
Grficos bidimensionales
Zoom
Marcas de
los ejes
4
Grficos bidimensionales
Grid
Handle
Anotaciones
5
Grficos bidimensionales
6
Grficos bidimensionales
7
Grficos bidimensionales
Gestin grfica de
las propiedades
8
Grficos bidimensionales
Grficos
logartmicos
9
Grficos bidimensionales
Subplots
10
Grficos bidimensionales
hold
11
Grficos bidimensionales
12
Grficos bidimensionales
13
Grficos bidimensionales
14
Grficos bidimensionales
Colormap
15
Grficos bidimensionales
16
Grficos bidimensionales
17
Grficos bidimensionales
18
Grficos bidimensionales
19
Grficos bidimensionales
20
Grficos bidimensionales
21
Grficos bidimensionales
22
Grficos bidimensionales
23
Grficos bidimensionales
24
Grficos tridimensionales
25
Grficos bidimensionales
26
Grficos bidimensionales
27
Grficos bidimensionales
28
Animaciones
29
Imgenes
30
Grficos tridimensionales
31
Grficos tridimensionales
32
Grficos tridimensionales
33
Grficos tridimensionales
34
Grficos tridimensionales
35
Grficos tridimensionales
36
Grficos tridimensionales
37
Grficos tridimensionales
38
Grficos tridimensionales
39
Grficos tridimensionales
40
Grficos tridimensionales
41
Grficos tridimensionales
42
Grficos tridimensionales
43
Grficos tridimensionales
44
Demos
45
Ejercicio Final 1:
46
Ejercicio Final 2
18000
16000
14000
12000
Demanda
10000
8000
6000
4000
2000
0
0 2 4 6 8 10 12
Mes
47
Ejercicio Final 3
0.9
0.8
0.7
Demanda normalizada
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12
Mes
48
Ejercicio Final 4
0.9
0.8
0.7
Demanda normalizada
0.6
0.5
0.4
0.3
0.2
0.1
1 2 3 4 5 6 7 8 9 10 11 12
Mes
49
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 4
2
Graphical User Interfaces: GUIs
3
GUIs Botn de ejecucin:
Salvar como Interfaz
Diseo del Mi_primer_GUI ejecutndose
interfaz
Cdigo
generado
4
GUIs Funcin
Mi_primer_GUI
5
GUIs
Cdigo de
inicializacin.
Generado
automticamente
6
GUIs
Funcin llamada
antes de abrir el
interfaz
Funcin llamada al
cerrar el interfaz
7
GUIs
Funcin de
inicializacin
8
GUIs
Funcin llamada al
crear el objeto
density
Funcin llamada al
modificar el objeto
density
9
GUIs
Funcin llamada al
crear el objeto
volume
Funcin llamada al
modificar el objeto
volume
10
GUIs
Funciones llamadas
al pulsar Calculate
o Reset
Funcin llamada
cuando cambian los
botones de unidades
11
GUIs
Objetos del
interfaz
Propiedades
de los objetos
12
GUIs
13
GUIs: Creacin
Crear un nuevo
GUI
14
GUIs: Creacin
Redimensionar
el canvas
15
GUIs: Creacin
Salvar
16
GUIs: Creacin
Aadir un panel
17
GUIs: Creacin
Aadir una
etiqueta
18
GUIs: Creacin
Aadir el resto
de etiquetas
19
GUIs: Creacin
Aadir dos
variables de
edicin
20
GUIs: Creacin
Modificar la
funcin Callback
21
GUIs: Creacin
Aadir una
funcin de
inicializacin
22
GUIs: Creacin
Aadir etiquetas
para la masa
23
GUIs: Creacin
Modificar la
funcin de
inicializacin
24
GUIs: Creacin
Crear funcin
update_masa
25
GUIs: Creacin
Ejecutar GUI
26
GUIs
27
GUIs
28
Ejercicio final
29
Ejercicio final
30
Generacin de autoejecutables
31
Generacin de autoejecutables
32
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 5
2
Libreras de inters prctico
3
Libreras de inters prctico
4
Libreras de inters prctico
5
Libreras de inters prctico
6
Libreras de inters prctico
7
Libreras de inters prctico
8
Libreras de inters prctico
9
Libreras de inters prctico
10
Libreras de inters prctico
11
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 6
2
Interaccin con Word
3
Interaccin con Word
4
Interaccin con Powerpoint
5
Interaccin con Access
6
Interaccin con Access
7
Interaccin con Access
8
Interaccin con Excel: Excel Link
9
Interaccin con Excel: Excel Link
10
Interaccin con Excel: Excel Link
11
Interaccin con Excel: Excel Builder
12
Interaccin con Excel: Excel Builder
13
Interaccin con Visual Basic
14
Ejercicio
15
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 7
2
Algo de series temporales: Curve Fitting Tool
3
Algo de series temporales: Distribution Fitting Tool
4
Algo de series temporales: Time Series Tool
5
Algo de series temporales: Filter Design Tool
6
Algo de series temporales: Signal Processing Tool
7
Su nombre aqu
Su nombre aqu