Introduccin a las Tcnicas de
Programacin con MATLAB
Expositor: Mg. Samuel Oporto Daz 04-FEB-2008
Interfaz de Usuario del MatLab
2 /41
El expositor
Magster en Inteligencia Artificial - Instituto Tecnolgico de Monterrey.
Ingeniero de Sistema - Universidad Nacional de Ingeniera, Lima-Per.
Docente en Inteligencia Artificial UNI y USMP.
Docente en Sistemas Inteligentes y Simulacin de Sistemas - UPC.
Investigador Principal del Instituto de Investigacin de la FIIS-UNI.
Investigador en Ciencias de Computacin con publicaciones en:
IJCNN-2007 of August 2007 Orlando, FL, USA.
ICAIPR of July 2007 Orlando, FL, USA.
ICIAR2005, Toronto Canada.
LNCS-2005, Springer Journal Canada.
CLEI2004 Lima-Per y CLEI2006 Santiago de Chile.
Consultor en Sistemas Inteligentes y Sistemas Autnomos.
Gerente de KAS Peru SAC
3 /41
Temario General
1. Introduccin.
2. Interfaz de usuario de MATLAB.
3. Variables del MATLAB.
4. Ploteo y visualizacin de datos.
5. m-Files.
6. Estadstica bsica y anlisis de datos.
7. Tipos de datos.
8. Entrada y salida de datos.
9. Programacin.
10. Construccin de interfaces de usuarios grficas.
4 /41
Objetivo
Esta seccin introduce las caractersticas principales del
MATLAB integrado el entorno de diseo e interfaces de
usuarios.
Muchos temas del curso son establecidos en esta seccin,
para exponerse en detalle en las siguientes secciones.
5 /41
Presentacin de Mathworks
6 /41
Mathworks
Creado en 1984.
Es una empresa global con
sede en 60 paises:
Ubicada en 3 Apple Hill Drive.
Natick, Boston, Massachusetts
Los principales productos que
ofrece son:
MATLAB Simulink Stateflow
7 /41
Matlab
MatLab significa MATrix LABoratory.
Es un programa para hacer computacin numrica.
Fue diseado para manipular matrices y ploteo de datos.
Ahora incluye funciones para: analizar datos, procesar
seales, optimizar funciones.
Contiene funciones para los grficos 2-Dy 3-D.
Tiene interfaces con otros lenguajes.
Permite la computacin simblica con el Maple.
8 /41
La Familia del MatLab
C/C++
VHDL
COM+
Java Classes
reas de Aplicacin
10 /41
Familia de Productos MatLab
MATLAB
MATLAB Distributed Computing Toolbox
MATLAB Distributed Computing Engine
Math and Optimization
Optimization Toolbox Symbolic Math Toolbox
Extended Symbolic Math Toolbox Partial
Differential Equation Toolbox Genetic Algorithm
and Direct Search Toolbox
Statistics and Data Analysis
Statistics Toolbox Neural Network Toolbox
Curve Fitting Toolbox Spline Toolbox Model-
Based Calibration Toolbox
Control System Design and Analysis
Control System Toolbox System Identification
Toolbox Fuzzy Logic Toolbox Robust Control
Toolbox Model Predictive Control Toolbox
Aerospace Toolbox
Signal Processing and Communications
Signal Processing Toolbox Communications
Toolbox Filter Design Toolbox Filter Design
HDL Coder Wavelet Toolbox Fixed-Point
Toolbox RF Toolbox
Image Processing
Image Processing Toolbox Image Acquisition
Toolbox Mapping Toolbox
Test & Measurement
Data Acquisition Toolbox Instrument Control
Toolbox Image Acquisition Toolbox
SystemTest OPC Toolbox
Computational Biology
Bioinformatics Toolbox SimBiology
Financial Modeling and Analysis
Financial Toolbox Financial Derivatives
Toolbox GARCH Toolbox Datafeed Toolbox
Fixed-Income Toolbox
Application Deployment
MATLAB Compiler Excel Link
Application Deployment Targets
MATLAB Builder for Excel MATLAB Builder
for .NET MATLAB Builder for Java
Database Connectivity and Reporting
Database Toolbox MATLAB Report
Generator
11 /41
Familia de Productos Simulink
Simulink
Simulink Simulink Report Generator
Fixed-Point Modeling
Simulink Fixed Point
Event-Based Modeling
Stateflow SimEvents
Physical Modeling
Simscape SimMechanics
SimPowerSystems SimDriveline
SimHydraulics
Simulation Graphics
Virtual Reality Toolbox Gauges
Blockset
Control System Design and Analysis
Simulink Control Design Simulink
Response Optimization Simulink
Parameter Estimation Aerospace
Blockset
Signal Processing and Communications
Signal Processing Blockset Communications Blockset
RF Blockset Video and Image Processing Blockset
Code Generation
Real-Time Workshop Real-Time Workshop Embedded
Coder Stateflow Coder Simulink HDL Coder
Rapid Control Prototyping and HIL SW/HW
xPC Target xPC Target Embedded Option Real-Time
Windows Target
Embedded Targets
Target for Infineon C166 Target for Freescale MPC5xx
Target for TI C2000 Target for TI C6000
Verification, Validation, and Testing
Simulink Verification and Validation Simulink Design
Verifier SystemTest
12 /41
Caractersticas del MATLAB
13 /41
Entorno del sistema
Windows XP/2000
MATLAB se instala en c: \MATLAB7
El cdigo de usuario en algn lugar (por ejempo h: \matlab )
Linux (entorno de red)
MATLAB se instala en /apps/matlab
El cdigo de usuario en /home/username/matlab
La configuracin del entorno en ~/.matlab
14 /41
Ejercicio 1
Identifique el path donde se ubica el matlab en su
instalacin.
15 /41
Qu es a MATLAB?
Trabaja nmeros escalares (reales y complejos), con
caracteres y otras estructuras de datos.
Tiene un lenguaje de programacin propio.
Permite un rpido prototipeo de aplicaciones cientficas.
Pero puede ser ms lento que C/C++ o Fortran.
Dispone de cdigo bsico y tooboxes
1. Entorno de desarrollo a nivel alto
2. Lenguaje de programacin
3. Grficos
4. Cajas de herramientas (tollbox)
5. Lnea de comandos.
16 /41
Es un entorno integrado de software
Command Window
Command History
Help Browser
Workspace Browser
Editor/Debugger
Clculo
Visualizacin
Entorno fcil de usar
17 /41
Entorno de usuario MATLAB
Workspace Browser
Command History
Command Window
18 /41
Ejercicio 2
Ingrese al MATLAB
Identifique el path por defecto.
Identifique el entorno de trabajo
por defecto.
Identifique los entornos:
Command Window
Command History
Workspace Browser
Editor/Debugger
Help Browser
19 /41
Lenguaje de Alto nivel
Tipos de datos
Funciones
Declaraciones de flujo de
control
Entrada / Salida
Grficos
Programacin orientada a
objetos.
20 /41
Ejercicio 3
Ingrese en el command window las siguientes
instrucciones, e interprete los resultados:
x = [-3:0.1:3];
y = sin(x);
plot(x)
plot(y)
plot(x,y)
21 /41
Grficos.
Grficos 2D y 3D.
Grficos a colores.
Presentacin de datos como
imgenes.
Tcnicas volumtricas 3D.
Iso-superficies (niveles)
Presentacin de volmenes.
22 /41
Ingrese en el command window las siguientes
instrucciones:
[X,Y] = meshgrid(-3:.125:3);
size(X);
size(Y);
Z = peaks(X,Y);
size(Z)
meshc(X,Y,Z);
axis([-3 3 -3 3 -10 5]);
peaks is a function of two variables, obtained by translating and scaling
Gaussian distributions,
Ejercicio 4
23 /41
Ejercicio 5
Ingrese en el command window las siguientes
instrucciones:
[X,Y] = meshgrid(-3:.125:3);
[Rows, Cols] = size(X);
for r = 1:Rows
for c = 1:Cols
Z(r,c) = sin(X(r,c)) + sin(Y(r,c));
end
end
meshc(X,Y,Z);
24 /41
Caja de herramientas.
Conjunto de funciones para
resolver problemas.
DSP (Digital Signal Processing)
Toolbox
Image Toolbox
Wavelet Toolbox
Neural Network Toolbox
Fuzzy Logic Toolbox
Control Toolbox
Multibody Simulation Toolbox
Otros . . . .
25 /41
Ejercicio 6
Ingrese a la ayuda del MatLab
helpdesk
Identifique cada uno de los toolbox disponibles.
26 /41
Lnea de comandos
Permite usar el MatLab como una calculadora.
Permite ingresar rdenes directamente al MatLab.
Los resultados se presentan en la misma pantalla.
Permite ejecutar los m-files.
27 /41
Lnea de comandos
Command Window
28 /41
Espacio de trabajo
MATLAB mantiene un espacio de trabajo activa.
Las variables (datos) cargados o definidos estn siempre
disponibles.
>> who
Your variables are:
x y
who: lista las variables del espacio de trabajo
29 /41
>> whos
Name Size Bytes Class
x 3x1 24 double array
y 3x2 48 double array
Grand total is 9 elements using 72 bytes
whos: listas nombres y propiedades bsicas de las variables
>> pwd
ans =
D:\
>> cd cw96\jun02
>> dir
. 30m_wtv.mat edson2km.mat jun02_30m_runs.mat
.. 960602_sst.mat edson_2km_bulk.mat
pwd, cd, dir, ls: similar a los comandos del sistema operativo
30 /41
Funciones Generales
whos Lista las variables actuales y su tamao
clear Limpia las variables y funciones de la memoria
cd Cambie el directorio actual de trabajo
dir Presenta la lista de archivos en el directorio
pwd Indica el directorio de trabajo actual
clc Limpia el contenido de la lnea de comandos
echo eco de los comandos en m-files
format Asigna el formato de salida (long, shor, etc.)
diary(filename) Graba todos los comandos ingresados en un archivo en el
directivo actual, el nombre es filename.
31 /41
Ejercicio 7
Revise las variables creadas
desde que ingreso al MatLab.
Defina una carpeta de trabajo.
cd path_de_trabajo
Grabe todas las variables creadas
hasta en el momento.
save primeraclase
Elimine todas la variables
clear
Recupere las variables
load primeraclase
32 /41
Clculos en la lnea de comandos
Calculadora Asignacin de Variables
a = 2;
b = 5;
a^b
ans =
32
x = 5/2*pi;
y = sin(x)
y =
1
z = asin(y)
z =
1.5708
El resultado tiene el
nombre ans si el
nombre no se
especifica
() parntesis para el
ingreso de
funciones
Punto y coma
permite que no
presente el
resultado
En el Workspace los nmeros son almacenados con formato de punto
flotante de doble precisin
-5/(4.8+5.32)^2
ans =
-0.0488
(3+4i)*(3-4i)
ans =
25
cos(pi/2)
ans =
6.1230e-017
exp(acos(0.3))
ans =
3.5470
33 /41
Ejercicio 8
Calcule las siguientes expresiones en MatLab
E = 2.3026
x = e
2
-2/sin(3)
y = 2x+3cos(x)3
x
a = 3+2i
b = 4+5i
c = a + b
d = a b
e = c*d
s = sin(e)
sin(0)
0/0
1/0
debe de pasar a matlab
34 /41
Consiguiendo Ayuda
Comando de ayuda (help )
Comando lookfor (lookfor )
Visor de ayuda (doc )
Comando helpwin (helpwin )
Comando heldesk (helpdesk)
Motor de bsqueda
Documentos imprimibles MATLAB_ROOT\help\pdf_doc\
Enlace a la pgina del MathWorks: www.mathworks.com
35 /41
Conseguir ayuda
36 /41
startup.m y pathdef.m
$matlab_root\toolbox\local\startup.m
Siempre se ejecuta al inicio.
Puede definir path y forzar configuraciones predefinidas.
$matlab_root\toolbox\local\pathdef.m
Lee las variables de entorno de sistema e inicializa las
variables dependientes de la plataforma.
Almacena nuevos paths para la bsqueda de funciones.
37 /41
startup.m y pathdef.m
% pathdef.m
function p = pathdef
% PATHDEF Search path defaults.
% PATHDEF returns string that can be used as input to MATLABPATH
% in order to set the path.
% Copyright 1984-2002 The MathWorks, Inc.
% $Revision: 1.4.2.1 $ $Date: 2003/01/16 12:51:34 $
% DO NOT MODIFY THIS FILE. IT IS AN AUTOGENERATED FILE.
% EDITING MAY CAUSE THE FILE TO BECOME UNREADABLE TO
% THE PATHTOOL AND THE INSTALLER.
p = [...
%%% BEGIN ENTRIES %%%
matlabroot,'\toolbox\matlab\general;',...
matlabroot,'\toolbox\matlab\ops;',...
matlabroot,'\toolbox\matlab\lang;',...
matlabroot,'\toolbox\matlab\elmat;',...
matlabroot,'\toolbox\simulink\slvnv;',...
matlabroot,'\work;',...
%%% END ENTRIES %%%
...
];
p = [userpath,p];
% startup.m Startup file
% Change the name of this file to STARTUP.M. The file
% is executed when MATLAB starts up, if it exists
% anywhere on the path. In this example, the
% MAT-file generated during quitting using FINISHSAV
% is loaded into MATLAB during startup.
% Copyright 1984-2000 The MathWorks, Inc.
% $Revision: 1.4 $ $Date: 2000/06/01 16:19:26 $
cd c:
38 /41
addpath
Agrega directorios al path de bsqueda del MatLab.
El MatLab mirar todos los directorios en el path para:
Funciones y scripts (m-files)
Los archivos de datos (mat-files)
Tambin define el directorio de trabajo actual.
39 /41
Ejercicio 9
Identifica los archivos startup.m y pathdef.m en tu
instalacin.
Verifica la configuracin disponible.
Modifica (crea) el archivo startup.m para que por defecto:
Se inicie en tu carpeta de trabajo
Tenga definida las variables x = 2, y = 3.
40 /41
Conclusiones
Matlab es un lenguaje cientfico.
Matlab, un lenguaje de alto nivel.
El tiempo de prototipeo de una aplicacin cientfica se
puede reducir haciendo uso de los toolbox disponibles.
41 /41
Mg. Samuel Alonso, Oporto Daz
[email protected] www.kasperu.com
KASPeru