Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ApuntesGrande Matlab PDF
ApuntesGrande Matlab PDF
PRCTICA de MATLAB
Sesin 0
Un poco de historia
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
MATLAB
33.300.000
Michael Jackson
38.500.000
10
Programa
11
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
Definicin de e1 como un
vector columna
Multiplicacin de A por e1
(matriz por vector)
13
14
15
16
17
18
Su nombre aqu
19
Organizacin temporal
900
Martes
Mircoles
Jueves
Sesin 0
Sesin 3
Sesin 7
Sesin 1
Sesin 4
Sesin 7
Sesin 2
Sesin 5
Sesin 2
Sesin 6
1100
1130
1400
1600
1400
1600
1400
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
28
29
30
Ayuda sobre
comando load
Comando help
sobre tpicos
generales
31
32
2. Ejecutar
1. Salvar como
Miprimer_programa.m
33
Entorno de MATLAB
Atencin al
directorio de
trabajo
Limpiar todo
el workspace
Ejecutar nuestro
primer programa
34
35
36
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 1
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 un
vector columna
Multiplicacin de A por e1
(matriz por vector)
Definicin de e1 como
vector columna (3x1)
(3x1)x(1x3)=3x3
Definicin de e2 como
vector fila (1x3)
(1x3)x(3x1)=1x1
(1x3)x(1x3)=Error
No muestra el resultado
Multiplicacin matricial
Multiplicacin elemento a
elemento
+ adicin o suma
sustraccin o resta
* multiplicacin
' traspuesta
^ potenciacin
\ divisin-izquierda
/ divisin-derecha
Un poco de lgebra
Comentario
Resolucin de un
sistema de ecuaciones
Llamada a funcin
Producto escalar
Matriz
identidad
Matriz
cuadrada de 1s
Matriz no
cuadrada de 0s
Matriz
cuadrada de 0s
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
Formacin de
una matriz a
partir de
submatrices
Reestructuracin de
una matriz
Una funcin que
opera sobre matrices
10
Indexacin de matrices
Extraccin de un
elemento
a11
a21
a
31
a12
a22
a32
a13
a23
a33
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
ndices al mismo
tiempo
Acceso a varios
ndices al mismo
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
Encontrar valores
mayores que 0
Pedir tamao
de la matriz
Porcentaje de
nmeros mayores
que 0
16
Condiciones
Diferentes tipos
de datos
& and
| or
~ negacin lgica
Encontrar valores
mayores que 0
Encontrar valores
menores que 0
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 con un
argumento de
retorno
Funcin aplicada a
una matriz
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
Salvar una o varias
variables en otro
formato
23
Ejercicio final
24
Ejercicio final
25
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 2
Da 7: Desarrollo de un proyecto
Una cadena es
una matriz
Puede contener
comillas dobles
De cadena a ASCII
De ASCII a cadena
Apilamiento de cadenas
no vlido
Apilamiento de cadenas
correcto
Concatenacin de cadenas
como concatenacin de
vectores
Las cadenas
son matrices
Se ha rellenado la primera
cadena con el tamao de
la segunda
Imprimir en
consola
Imprimir en
una cadena
Extraer token
Remplazar
Buscar
Definicin de
una hipermatriz
Acceso a una
hipermatriz
Definicin de
una hipermatriz
Definicin de
una hipermatriz
Extraccin de
una capa
Extraccin de
una capa
7
Declaracin
de un campo
numrico
Declaracin de un
campo de tipo
cadena
Declaracin de
una estructura
Campos de una
estructura
Acceso a una
estructura
Estructuras
anidadas
Array de estructuras con
el primer elemento vaco
Completar el primer
elemento del array
9
Array 1x2
Aadir
elemento al
array
Acceso al
array con {}
Array 2x2
10
Array 1x3
De vuelta a
celdas: 3x1
Conversin a
struct
Transpuesta a 1x3
La transpuesta no
afecta a los contenidos
11
Programacin: Control
for i=1:5
for j=1:5
A(i,j)=1/(i+j-1);
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
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
a=[10 20 30 40];
for i=1:length(a)
a(i)=a(i)/i;
end
a
a=[10 20 30 40]./[1:length(a)]
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();
stdev=sqrt(sum((x-mean).^2/n));
function [mean,stdev]=stat(x)
n=length(x);
mean=media(x);
stdev=sqrt(sum((x-mean).^2/n));
function mean=media()
mean=sum(x)/length(x);
end
end
function mean=media(x)
mean=sum(x)/length(x);
Subfuncin
Funcin
anidada
14
Workspace de
la funcin
Breakpoint
Llamada a la
funcin
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
Workspace: m,t
houdini(4)
% File: houdini.m
function houdini(sz)
m = magic(sz); % Assign 4x4 magic square to m.
t = m .^ 3;
% Cube each element of m.
disp(t);
% Display the value of t.
Workspace:
[m,t]=houdini(4)
% File: houdini.m
function [m,t]=houdini(sz)
m = magic(sz); % Assign 4x4 magic square to m.
t = m .^ 3;
% Cube each element of m.
disp(t);
% Display the value of t.
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)
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
Ejecucin por
celdas
20
Programacin: Documentacin
help MiToolBox
MiToolBox (Directorio)
contents.m
mifuncion1.m
mifuncion2.m
21
22
23
Feb
1246
Mar
1252
Abr
1254
May
1188
Jun
1202
Jul
1243
Ago
1202
Sep
1192
Oct
1270
Nov
1312
Dic
1361
Total
15067
# Dcada de
1960 1369
1961 1622
1962 1741
...
los 60
1331 1351
1422 1528
1639 1755
1252
1433
1557
1321
1488
1572
1275
1418
1585
1325
1467
1653
1322
1506
1653
1336
1514
1642
1393
1573
1730
1456
1653
1828
1610
1711
1902
16341
18335
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:
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
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
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 3
Da 7: Desarrollo de un proyecto
Grficos bidimensionales
Plot
Etiquetas
de los ejes
Leyenda
Ttulo
Ejes
Grficos bidimensionales
Zoom
Marcas de
los ejes
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
10000
8000
6000
4000
2000
0
6
Mes
10
12
47
Ejercicio Final 3
Demanda normalizada
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
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
10
11
12
Mes
49
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 4
Da 7: Desarrollo de un proyecto
GUIs
Diseo del
interfaz
Botn de ejecucin:
Salvar como
Mi_primer_GUI
Interfaz
ejecutndose
Cdigo
generado
GUIs
Funcin
Mi_primer_GUI
GUIs
Cdigo de
inicializacin.
Generado
automticamente
GUIs
Funcin llamada
antes de abrir el
interfaz
Funcin llamada al
cerrar el interfaz
GUIs
Funcin de
inicializacin
GUIs
Funcin llamada al
crear el objeto
density
Funcin llamada al
modificar el objeto
density
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
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
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
Da 7: Desarrollo de un proyecto
10
11
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 6
Da 7: Desarrollo de un proyecto
10
11
12
13
14
Ejercicio
15
CURSO de UTILIZACIN
PRCTICA de MATLAB
Sesin 7
Da 7: Desarrollo de un proyecto
Su nombre aqu
Su nombre aqu