Professional Documents
Culture Documents
Sesin 0
Un poco de historia
MATLAB se invent en los aos 70 para poder acceder a las funciones de lgebra lineal de LINPACK y EISPACK sin tener que aprender Fortran. Su autor fue Cleve Moler (Univ. New Mexico). En 1983, Jack Little (Univ. Stanford) se uni al proyecto y comenz a comercializarse.
Motivacin para este curso Septiembre 2006 MATLAB 33.300.000 Michael Jackson 38.500.000
10
Programa
Operaciones con matrices y vectores Funciones de librera Otros tipos de datos en MATLAB: cadenas, hipermatrices, estructuras, celdas Programacin en MATLAB Generacin de documentacin HTML automticamente Grficos bidimensionales Grficos tridimensionales Interfaces de usuario en MATLAB Generacin de programas autnomos Interaccin de MATLAB con Office y Visual Basic Libreras de inters prctico: optimizacin, anlisis estadstico, redes neuronales, lgica difusa, ajuste de curvas, sistemas de control, control predictivo, anlisis financiero, anlisis de series temporales financieras, conexin a bases de datos, generacin de informes, sistemas elctricos de potencia, modelos cuantitativos de energa, etc.
11
Sesin 1: Operaciones con matrices y vectores. Funciones de librera. Sesin 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Sesin 3: Grficos bidimensionales. Grficos tridimensionales. Sesin 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Sesin 5: Libreras de inters prctico Sesin 6: Interaccin de MATLAB con Office Sesin 7: Desarrollo de un proyecto
12
Definicin de la matriz A
Definicin de la matriz B como A transpuesta Si no se asigna a nadie, el resultado siempre se asigna a la variable ans
13
14
15
16
17
18
Su nombre aqu
19
900
Mircoles
Sesin 3
Jueves
Sesin 7
Sesin 1
1400 1600
Sesin 4 Sesin 5
Sesin 7
Sesin 2
1400 1600
Sesin 2
1400
Sesin 6
20
Lecturas recomendadas
Mathworks, Getting Started (187 pgs) Mathworks, Programming tips (66 pgs) Mathworks, Quick reference (12 pgs)
21
Recursos
22
Recursos
23
Recursos
24
Bibliografa
Mathworks. MATLAB online help J. Atencia, R. Nstar. Aprenda MATLAB 6.0 como si estuviera en primero. Univ. Navarra, 2001. C. Prez. MATLAB y sus aplicaciones en las ciencias y la ingeniera. Prentice Hall, 2002 G. Amos. MATLAB: una introduccin con ejemplos prcticos. Reverte, 2006.
25
Command history
26
Entorno de MATLAB
Command history
27
28
29
30
31
32
33
Entorno de MATLAB
34
35
36
Da 1: Operaciones con matrices y vectores. Funciones de librera. Da 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Da 3: Grficos bidimensionales. Grficos tridimensionales. Da 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Da 5: Libreras de inters prctico Da 6: Interaccin de MATLAB con Office y Visual Basic Da 7: Desarrollo de un proyecto
Definicin de la matriz A
Definicin de la matriz B como A transpuesta Si no se asigna a nadie, el resultado siempre se asigna a la variable ans
Definicin de e1 como vector columna (3x1) Definicin de e2 como vector fila (1x3)
(3x1)x(1x3)=3x3
(1x3)x(3x1)=1x1 (1x3)x(1x3)=Error
+ 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
Matriz identidad
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 de otra matriz Vector 10 a 2 cada 2
10
Indexacin de matrices
Extraccin de un elemento
a11 a21 a 31
11
Indexacin de matrices
12
Indexacin de matrices
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
< menor que > mayor que <= menor o igual que >= mayor o igual que == igual que ~= distinto que (~=Alt-Graph 126)
Encontrar valores mayores que 0 Pedir tamao de la matriz Porcentaje de nmeros mayores que 0
16
Condiciones
Encontrar valores mayores que 0 Encontrar valores menores que 0 Valores menores que 0 o mayores que 0
17
Condiciones e indexacin
18
Funciones
Funcin aplicada a un escalar Funcin aplicada a un vector
19
Funciones
Las funciones pueden considerar las matrices como una matriz y no como una coleccin de elementos
20
Funciones
21
Funciones
22
Entrada/Salida
Salvar todo el workspace Cargar todo el workspace Salvar una o varias variables en otro formato Salvar slo una o varias variables
23
Ejercicio final
24
Ejercicio final
1. Cargar los datos de evolucin de la demanda elctrica y la poblacin espaola desde 1950 a 2000 1. Evolucion demanda.txt (Fuente: Red Elctrica de Espaa): 1. Columna 1: Ao 2. Columna 2-13: Demanda mensual (GWh) 3. Columna 14: Demanda anual (GWh) 2. Evolucion poblacion.txt (Fuente: Instituto Nacional de Estadstica): 1. Columna 1: Ao 2. Columna 2: Poblacin (Miles de habitantes) 2. Mostrar en un mismo grfico ambas tendencias de forma anual
(Sugerencia: puede que haga falta escalar alguna de las series)
25
Da 1: Operaciones con matrices y vectores. Funciones de librera. Da 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Da 3: Grficos bidimensionales. Grficos tridimensionales. Da 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Da 5: Libreras de inters prctico Da 6: Interaccin de MATLAB con Office y Visual Basic Da 7: Desarrollo de un proyecto
Las cadenas son matrices Se ha rellenado la primera cadena con el tamao de la segunda
Imprimir en consola
Remplazar Buscar
Array 2x2
10
Programacin: Control
for i=1:5 for j=1:5 A(i,j)=1/(i+j-1); end end A=rand(2,3) for columna=A disp(columna) end for x=1.0:-0.1:0.0 disp(x) if x<0.5 break; end end A=zeros(3,4); for i=1:size(A,1) for j=1:size(A,2) A(i,j)=abs(i-j); end end
for i=1:5 for j=1:5 if i==j A(i,j)=2; elseif abs(i-j)==1 A(i,j)=-1; else A(i,j)=0; end end end
12
Programacin: Control
method = 'Bilinear'; switch lower(method) case {'linear','bilinear'} disp('Method is linear') case 'cubic' disp('Method is cubic') case 'nearest' disp('Method is nearest') otherwise disp('Unknown method.') end % Precisin de la mquina eps=1; while (1+eps)>1 eps=eps/2; end eps=eps*2 % Contar las lneas de cdigo de magic.m fid=fopen('magic.m', 'r'); count=0; 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) % El fichero debe llamarse stat.m n=length(x); mean=sum(x)/n; stdev=sqrt(sum((x-mean).^2/n)); end help stat [media,desviacion]=stat([1 2 3 4 5]); function [mean,stdev]=stat(x) n=length(x); mean=media(x); stdev=sqrt(sum((x-mean).^2/n)); end function mean=media(x) mean=sum(x)/length(x); function [mean,stdev]=stat(x) n=length(x); mean=media(); stdev=sqrt(sum((x-mean).^2/n)); function mean=media() mean=sum(x)/length(x); end
Subfuncin
Funcin anidada
14
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
Workspace: m,t
Workspace:
Workspace: m,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 B = [9 5 6; 0 4 9]; matrixMultiply(A, B) 1 5];
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
20
Programacin: Documentacin
help MiToolBox
% Esta toolbox sirve para ... % % Familia de funciones 1 % mifuncion1 - Sirve para ... % mifuncion2 - Sirve para ... ... 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
22
23
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
y[n] =
14000
12000
10000
8000
6000
4000
2000
50
100
150
200
250
300
350
400
450
500
26
Y si sobra tiempo
27
Da 1: Operaciones con matrices y vectores. Funciones de librera. Da 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Da 3: Grficos bidimensionales. Grficos tridimensionales. Da 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Da 5: Libreras de inters prctico Da 6: Interaccin de MATLAB con Office y Visual Basic Da 7: Desarrollo de un proyecto
Grficos bidimensionales
Grid Handle
Anotaciones
Grficos bidimensionales
Grficos bidimensionales
Grficos bidimensionales Plot de las filas de una matriz Gestin grfica de las propiedades
Grficos bidimensionales
Grficos logartmicos
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
6 Mes
10
12
47
Ejercicio Final 3
Representar en un mismo grfico todos los consumos anuales normalizados de forma que todos estn entre 0 y 1
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
Demanda normalizada
6 Mes
10
12
48
Ejercicio Final 4
Representar un boxplot de los datos normalizados y superponer la media
1 0.9 0.8 Demanda normalizada 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 2 3 4 5 6 Mes 7 8 9 10 11 12
49
Da 1: Operaciones con matrices y vectores. Funciones de librera. Da 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Da 3: Grficos bidimensionales. Grficos tridimensionales. Da 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Da 5: Libreras de inters prctico Da 6: Interaccin de MATLAB con Office y Visual Basic Da 7: Desarrollo de un proyecto
Interfaz ejecutndose
Cdigo generado
GUIs
Funcin Mi_primer_GUI
GUIs
GUIs
Funcin de inicializacin
GUIs
GUIs
10
GUIs
11
GUIs
12
GUIs
13
GUIs: Creacin
14
GUIs: Creacin
Redimensionar el canvas
15
Crea los ficheros: Mi_primer_GUI_repetido.fig Mi_primer_GUI_repetido.m Crea las funciones: Mi_primer_GUI_repetido Opening Closing
16
17
18
GUIs: Creacin
19
GUIs: Creacin
GUIs: Creacin
21
GUIs: Creacin
22
23
GUIs: Creacin
24
GUIs: Creacin
25
26
GUIs
27
GUIs
28
Ejercicio final
Implementar un GUI que permita comparar la demanda normalizada de dos meses. La comparacin debe poder realizarse opcionalmente con una funcin de suavizado. Mostrar en un panel aparte la media y la varianza de los meses solicitados.
29
Ejercicio final
30
Generacin de autoejecutables
31
Generacin de autoejecutables
32
Da 1: Operaciones con matrices y vectores. Funciones de librera. Da 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Da 3: Grficos bidimensionales. Grficos tridimensionales. Da 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Da 5: Libreras de inters prctico Da 6: Interaccin de MATLAB con Office y Visual Basic Da 7: Desarrollo de un proyecto
10
11
Da 1: Operaciones con matrices y vectores. Funciones de librera. Da 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Da 3: Grficos bidimensionales. Grficos tridimensionales. Da 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Da 5: Libreras de inters prctico Da 6: Interaccin de MATLAB con Office y Visual Basic Da 7: Desarrollo de un proyecto
10
11
12
13
14
Ejercicio
15
Da 1: Operaciones con matrices y vectores. Funciones de librera. Da 2: Otros tipos de datos en MATLAB. Programacin en MATLAB. Da 3: Grficos bidimensionales. Grficos tridimensionales. Da 4: Interfaces de usuario en MATLAB. Generacin de programas autnomos Da 5: Libreras de inters prctico Da 6: Interaccin de MATLAB con Office y Visual Basic Da 7: Desarrollo de un proyecto
Su nombre aqu
Su nombre aqu