Está en la página 1de 21

INTRODUCCION AL USO DE MATLAB 1

TALLER DE COMPUTOError! Marcador no definido.

INTRODUCCION AL USO DE MATLAB


Guia del Taller

INTRODUCCION

MATLAB es un ambiente de cmputo tcnico para el clculo numrico de alto rendimiento con capacidad de
visualizacin, el cual fu desarrollado por la empresa The MATH WORKS Inc. MATLAB integra anlisis
numrico, clculo matricial, procesamiento de seales y grficas.

MATLAB toma su nombre de MATrix LABoratory (laboratorio de matrices), pues originalmente fu creado
como un auxiliar en la programacin de clculo matricial, por lo que el elemento bsico de clculo que maneja
es la matriz.

La versin estndar de MATLAB incorpora una gran variedad de comandos y funciones matemticas de uso
general relacionadas con tpicos como Manipulacin de Matrices, Funciones Trigonomtricas, Funciones
Hiperblicas, Algebra Lineal Numrica, Anlisis de Datos, Interpolacin, Graficacin, Manejo de Archivos, etc.
Existen adems paquetes opcionales de funciones especializadas en diversas reas tcnicas tales como Control,
Procesamiento de Seales, Lgica Difusa, Procesamiento de Imgenes, Redes Neurales, etc.

El presente escrito es una guia para el taller introductorio al uso de MATLAB para Windows, versin estndar,
y su objetivo es proporcionar los elementos esenciales para iniciarse en el uso de esta herramienta y facilitar su
estudio individual, por lo que no se presentan todas las posibilidades de clculo que MATLAB ofrece ni todas
las opciones de uso que esta plataforma brinda. Para un estudio a profundidad sobre el uso de esta herramienta
se recomienda consultar los manuales User's Guide y Reference Guide, as como tambin puede obtenerse en
espaol el libro "MATLAB edicin de estudiante, Versin 4, gua de usuario" de la editorial Prentice Hall el
cual contiene los discos de instalacin de la versin estudiantil.

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 2

INICIO

Estando dentro de la plataforma operativa Windows la invocacin de MATLAB presenta una ventana
denominada ventana de comandos en la que se muestran en la parte superior un listado de comandos para
iniciarse en el uso de la herramienta: intro, demo, help help, as como tambin comandos para obtener mayor
informacin: help, whatsnew, info, subscribe. A continuacin de los comandos se muestra el smbolo que
indica la linea de entrada de rdenes o comandos:

Es en esta lnea que se proporcionan los comandos a ser ejecutados inmediatamente por MATLAB, como los
listados anteriormente. Por ejemplo, el proporcionar el comando:

help Todos los comandos u operaciones deben terminarse con la tecla enter
para ser aceptados por MATLAB

mostrar un listado de los diferentes tpicos en que MATLAB proporciona informacin de ayuda. Puede
consultarse tambin este tipo de informacin a travs del men Help de la barra de mens de la misma ventana
de comandos de MATLAB.

Otros comandos importantes para el ambiente de trabajo son:

cd Cambia el directorio de trabajo


dir Muestra el contenido del directorio de trabajo
quit Termina la sesin de trabajo en MATLAB

Nota: En los ejemplos presentados en esta gua se indicar del lado izquierdo y en letras resaltadas (negritas) los
comandos y operaciones que se proporcionan directamente en la lnea de comandos de MATLAB y del lado
derecho se proporcionarn algunos comentarios relacionados con el comando.

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 3

OPERACIONES BASICAS

En la linea de entrada de comandos puede proporcionarse directamente la indicacin de cualquier operacin


matemtica de la misma manera en que esta se escribe normalmente (estilo calculadora), por ejemplo:

75+12*(275/3)

ans=

1175 La abreviatura ans (por "answer" = respuesta) indica el resultado de la


operacin realizada.

Algunas otras operaciones bsicas y los smbolos empleados por MATLAB para su uso son:

+ suma, - resta, * multiplicacin, / \ divisin, ^ potencia

Cuando una linea de comando se termina con ";" el resultado que se generara por la ejecucin del comando no
es mostrado en pantalla. Pueden escribirse varias operaciones en una sola linea de comando siempre que estas se
separen por ","

Por ejemplo:

75 + 3, 3 - 2, 75 - 3 Los tres resultados se desplegarn por no terminarse con ";"

ans =

78

ans =

ans =

72

75 + 3; La operacin se realiza pero no se despliega el resultado por


terminarse la operacin con ";"

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 4

OPERACIONES RELACIONALES Y LOGICAS

MATLAB permite operaciones relacionales y lgicas, considerando como resultado de este tipo de operaciones
nicamente dos valores: falso y verdadero. El falso corresponde a un 0 y el verdadero a un 1.

Por ejemplo:

5>4 La operacin relacional es "5 mayor que 4", lo cual es cierto, a lo


que le corresponde un valor de 1.
ans =

4>5 La operacin relacional es "4 mayor que", lo cual es falso, a lo que


le corresponde un valor de 0.
ans =

(5>4) & ~(4>5) La operacin relacional es "5 mayor que 4 y negacin de 4 mayor
que 5". "&" es el smbolo para el operador lgico AND y "~" es el
smbolo para el operador lgico negacin.
ans =

(5>4) | (4>5) La operacin relacional es "5 mayor que 4 4 mayor que 5". "|" es el
smbolo para el operador lgico OR.
ans =

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 5

VARIABLES

En una operacin pueden emplearse variables a las que previamente se les ha asignado algn valor. Las
variables se nombran comenzando con una letra y puede estar seguida de letras y nmeros, existiendo diferencia
entre minsculas y maysculas.

Por ejemplo:

dias = 75 Al no terminarse la lnea de comando con ";" se despliega


inmediatamente el resultado de la asignacin del valor a la
variable.
dias=

75

meses = 12

meses=

12

MESES = 3 Al ser MATLAB sensitivo a maysculas y minsculas meses y MESES


representan variables distintas.
MESES=

dias + meses * (275 / MESES)

ans=

1175

Existe una manera de conocer todas las variables que se han asignado en una sesin de trabajo de MATLAB a
travs del comando who:

who

Your variables are:

MESES ans dias meses

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 6

y se obtiene mayor informacin sobre las variables asignadas con el comando whos:

whos
Name Size Elements Bytes Density Complex

MESES 1 by 1 1 8 Full No
ans 1 by 1 1 8 Full No
dias 1 by 1 1 8 Full No
meses 1 by 1 1 8 Full No

Grand total is 4 elements using 32 bytes

Es posible borrar una o todas las variables empleadas, asimismo es posible almacenar en disco las variables con
las que se est trabajando (una, varias o todas) y recuperarlas en cualquier otra sesin de trabajo.

clear meses Se borra slamente la variable meses


who Se muestran nuevamente las variables vigentes para observar que
efectivamente meses fu borrada
Your variables are:

MESES ans dias

save ESTAS Todas las variables vigentes se almacenan en el disco bajo el nombre de
ESTAS
clear Se borran todas las variables vigentes y se comprueba que ya no existen
who

Your variables are:

load ESTAS Se leen las variables almacenadas bajo el nombre ESTAS y se comprueba
su existencia
who

Your variables are:

MESES ans dias

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 7

FUNCIONES MATEMATICAS

MATLAB incluye una gran cantidad de funciones matemticas, las cules operan al escribir el nombre de la
funcin seguidas inmediatamente, entre parntesis, del operando, el cual puede ser un nmero o una variable o
un conjunto de estas.

Por ejemplo:

sin(pi/2) sin(x) calcula el seno de x y MATLAB reconoce la variable pi


como una variable exclusiva cuyo valor es 3.14159....
ans =

log10(100) Logaritmo base 10 de 100

ans =

sqrt(81) Raiz cuadrada de 81

ans =

Los comandos help elfun y help specfun muestran los nombres de las funciones matemticas elementales y
especializadas con que cuenta MATLAB, mientras que help seguido del nombre de una funcin en particular
muestra la forma en que la funcin debe utilizarse.

Por ejemplo:

help sign

SIGN Signum function.


For each element of X, SIGN(X) returns 1 if the element
is greater than zero, 0 if it equals zero and -1 if it is
less than zero. For complex X, SIGN(X) = X ./ ABS(X).

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 8

NUMEROS COMPLEJOS

Para trabajar con nmeros complejos se emplea el caracter i o el caracter j para representar el nmero -1 y se
realizan las operaciones deseadas de la misma manera que con nmeros reales.

Por ejemplo:

numim = 3 + 5i A la variable numim se le asigna el nmero complejo cuya parte


real es 3 y cuya parte imaginaria es 5

numim =

3.0000 + 5.0000i

abs(numim) La funcin abs(x) calcula el valor absoluto o magnitud de x

ans =

5.8310

real(numim) La funcin real(x) calcula la parte real de x

ans =

imag(numim) La funcin imag(x) calcula la parte imaginaria de x

ans =

numim * MESES En la multiplicacin del nmero imaginario tanto la parte real


como la parte imaginaria son multiplicados por el valor indicado
ans =

9.0000 +15.0000i

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 9

VECTORES

Los vectores o arreglos de valores (arrays) son un conjunto de nmeros o variables que se agrupan bajo un slo
nombre, permitindose de esta manera que una operacin pueda ser realizada sobre todos los valores del vector
de manera simultnea, en lugar de realizar la operacin a cada uno de los valores de manera manual e
independiente.

Se definen vectores del tipo fila o rengln y vectores del tipo columna, los cules varan en la manera en que los
elementos del vector son acomodados.

Por ejemplo:

diasfila = [1 2 3 4 5 6 7] Los vectores fila se definen separando sus elementos por espacios
o por ","
diasfila =

1 2 3 4 5 6 7

diascol=[1; 2; 3; 4; 5; 6; 7] Los vectores columna se definen separando sus elementos por ";"
diascol =

1
2
3
4
5
6
7

Se puede realizar cualquier tipo de operacin o funcin sobre un vector obtenindose como resultado otro vector
de la misma longitud (igual nmero de elementos) cuyos elementos corresponden al resultado operado sobre
cada uno de los elementos del vector operando.

Por ejemplo:

2*diasfila Cada elemento de diasfila es multiplicado por 2

ans =

2 4 6 8 10 12 14

besselj(1,diascol) La funcin besselj(1,x) calcula el valor de la funcin bessel de

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 10

orden 1 de x (de cada uno de sus elementos)


ans =

0.4401
0.5767
0.3391
-0.0660
-0.3276
-0.2767
-0.0047

min(diasfila) La funcin min(x) proporciona el elemento del vector x cuyo


valor es el ms pequeo de todo el vector
ans =

mean(diasfila) La funcin mean(x) calcula el valor promedio de todos los


elementos del vector x
ans =

Es posible definir un rango de valores para ser asignados a un vector. El rango de valores se define
especificando un valor inicial, un valor de incremento y un valor final, separados todos ellos por ":", por
ejemplo:

2:.5:5 El rango de valores es desde 2 hasta 5 con incrementos de .5

ans =

2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000

c=2:.5:5; El rango de valores anterior se asigna a la variable c


2*c

ans =

4 5 6 7 8 9 10

La multiplicacin y divisin entre vectores puede hacerse elemento a elemento o como operacin matricial. En

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 11

el primer caso los vectores operandos deben ser de la misma longitud y el resultado es un vector con igual
longitud. En el segundo caso los vectores pueden ser de longitud diferente, uno de ellos debe ser vector fila y el
otro vector columna y el resultado es una matriz con nmero de filas y columnas dependiendo de la longitud de
cada vector operando.

Por ejemplo:

a=[ 1 2 3 4 5] El vector a es un vector fila

a=

1 2 3 4 5

b=[6; 7; 8] El vector b es un vector columna

b=

6
7
8

b' El operador " ' " convierte un vector fila a columna y viceversa

ans =

6 7 8

b.*b La multiplicacin elemento a elemento entre vectores se indica con un " .


" que precede al signo de multiplicacin "*"
ans =

36
49
64

b*a La multiplicacin matricial entre vectores se indica directamente


con el signo de multiplicacin "*"
ans =

6 12 18 24 30
7 14 21 28 35
8 16 24 32 40

Dentro de un vector cada elemento tiene un nmero consecutivo que lo identifica comenzando desde el nmero

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 12

1. El direccionamiento de uno o varios de los elementos de un vector se indica por medio de un parntesis y el
nmero de elemento o el rango de elementos deseados.

Por ejemplo:

b(1) El elemento 1 del vector b es el nmero 6

ans =

b(length(b)) La funcin length(x) indica el nmero de elementos que tiene el vector x,


por lo que b(length(x)) indica el valor que posee el ltimo
elemento del vector x
ans =

a(2:4) Se despliegan los elementos del 2 al 4 del vector a

ans =

2 3 4

d=b*a Se asigna la multiplicacin vectorial b*a a la matriz d y se


despliegan sus valores
d=

6 12 18 24 30
7 14 21 28 35
8 16 24 32 40

d(1:2,3:5) Se despliegan los valores del vector d correspondientes


exclusivamente a las filas 1 a 2 y a las columnas 3 a 5
ans =

18 24 30
21 28 35

En MATLAB existen muchas funciones que operan sobre vectores y sobre matrices cuyas definiciones pueden
consultarse a travs de help. Algunos conjuntos de funciones de este tipo se encuentran bajo las categorias:
Matrices Elementales y Manipulacin de Matrices, Funciones Matriciales, Matrices Especializadas, etc.

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 13

GRAFICAS

La forma ms sencilla de generar una grfica dentro de MATLAB es a travs del comando plot(x,y), en donde
x,y son un conjunto de puntos (abscisa,ordenada) a ser marcados en un plano. La graficacin por omisin genera
lineas rectas entre los puntos marcados mostrando una grfica contnua, caracterstica que puede ser variada de
diversas maneras.

Por ejemplo:

los comandos:

dias=[1 2 3 4 5 6 7]; Se definen los elementos de los vectores dias y bolsa


bolsa=[3600 3550 3720 3740 3760 3680 3680];
plot(dias,bolsa) Se grafica un conjunto de puntos considerando que dias
corresponde al eje horizontal y bolsa al eje vertical

producen la grfica que se muestra a continuacin:

Al utilizar este comando siempre se define de manera automtica la escala de los ejes horizontal y vertical de
acuerdo a los valores mnimos y mximos de los puntos a graficar, parmetros que igualmente pueden
cambiarse por valores deseados.

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 14

El siguiente comando obliga a que MATLAB slo marque unos pequeos crculos en los puntos a graficar, sin
unirlos con lineas rectas:

plot(dias, bolsa,'o') El caracter 'o' indica que los puntos se marquen con un crculo

El comando help plot muestra todas las posibilidades de uso de plot as como algunos comandos asociados a la
graficacin como SEMILOGX, SEMILOGY, LOGLOG, GRID, CLF, CLC, TITLE, XLABEL,
YLABEL, AXIS, AXES, HOLD y SUBPLOT.

Obsrvense los resultados de graficacin obtenidos con los siguientes comandos:

bolsa2=[3680 3750 3650 3640 3600 3650 3600];


Se define un nuevo vector bolsa2
plot(dias,bolsa,dias,bolsa2) Se grafican simultneamente los valores de bolsa
y bolsa2
grid Se genera un cuadriculado en la grfica actual
xlabel('dias') Se escribe el ttulo 'dias' en el eje
horizontal
ylabel('indice de la bolsa') Se escribe el ttulo 'ndice de la bolsa' en el eje
vertical
title('RESULTADOS DE LA BOLSA DE VALORES') Se escribe el ttulo 'RESULTADOS DE LA
BOLSA DE VALORES' en la parte
superior de la grfica

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 15

Otras formas de graficar en un plano dentro de MATLAB incluyen el tipo de grficas de barras y de escalera as
como la posibilidad de mostrar varias grficas en una misma ventana. MATLAB tiene tambin la capacidad de
graficar en tercera dimensin y de emplear grficas de malla y de superficie.

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 16

ARCHIVOS DE EJECUCION

MATLAB ejecuta un comando u operacin directamente a travs de la linea de comando, tal y como se ha
mostrado en los ejemplos anteriores, sin embargo un comando a ejecutar puede ser tambin el nombre de un
archivo que contenga una secuencia de operaciones y comandos que se desean sean procesadas en conjunto.
Esto tiene como ventaja el no tener que escribir cada vez todas las instrucciones que se desean ejecutar en varias
ocasiones, sino que simplemente se invoca el archivo en donde ya estn almacenadas. El archivo puede tener
cualquier nombre pero debe tener el apellido m.

MATLAB posee un grupo de comandos para controlar el flujo de ejecucin de un conjunto de instrucciones el
cual es especialmente util dentro de los archivos de ejecucin, tal y como se emplean en los lenguajes de
programacin. Estos comandos permiten construir tres tipos de estructuras: los lazos for, los lazos while y la
estructura if-else-end.

A continuacin se presenta el listado de un archivo .m el cual genera los resultados mostrados en la grfica
contgua.

% PROG1.M
%
% DEMOSTRACION DEL PROCESO DE MODULACION EN AMPLITUD DE DOBLE BANDA
% LATERAL Y PORTADORA SUPRIMIDA CON SEAL DE INFORMACION SENOIDAL

% Definicin de la variable del tiempo correspondiente a 2 milisegundos:


%
liminf=0; limsup=.002; numpuntos=100;
t=liminf:(limsup-liminf)/numpuntos:limsup;

% Definicin de un vector correspondiente a los valores de una senoidal de 1000 KHz


%
f=sin(2*pi*1000*t);

% Definicin de un vector correspondiente a los valores de una senoidal de 10000 KHz


%
Sp=sin(2*pi*10000*t);

% Definicin de un vector correspondiente a los valores de la modulacin de la seal Sp


% por parte de f en amplitud de doble banda lateral y sin portadora.
%
Sam=f.*Sp;

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 17

% Clculo de los espectros de frecuencia de las seales anteriores


%
fs=numpuntos/(limsup-liminf); % Parmetro que indica el nmero de muestras por unidad de
% tiempo que se tienen de la seal a calcular su espectro
[F,f1]=psd(f,[],fs);
[SP,f2]=psd(Sp,[],fs);
[SAM,f3]=psd(Sam,[],fs);

% Graficacin de las seales en el dominio del tiempo y sus respectivos espectros de frecuencia
%
subplot(3,2,1); plot(t,f);
ylabel('amplitud'); xlabel('tiempo'); title('Seal Moduladora');
subplot(3,2,3); plot(t,Sp);
ylabel('amplitud'); xlabel('tiempo'); title('Seal Portadora');
subplot(3,2,5); plot(t,Sam);
ylabel('amplitud'); xlabel('tiempo'); title('Seal Modulada');
subplot(3,2,2); plot(f1,F);
ylabel('amplitud'); xlabel('frecuencia'); title('Seal Moduladora');
subplot(3,2,4); plot(f2,SP);
ylabel('amplitud'); xlabel('frecuencia'); title('Seal Portadora');
subplot(3,2,6); plot(f3,SAM);
ylabel('amplitud'); xlabel('frecuencia'); title('Seal Modulada');

end;

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 18

Listado de archivo .m que muestra el uso de las estructuras for e if-else.

% PROG2.M
%
% DEMOSTRACION DEL USO DE ESTRUCTURAS 'FOR' E 'IF-ELSE'
% PARA LA GENERACION DE UNA SEAL MUESTREADA

% Definicin de la variable del tiempo correspondiente a 2 milisegundos:


%
t = 0:.00001:.002;

% Definicin de un vector correspondiente a los valores de la suma de dos


% seales senoidales de 1000 KHz y 3017 KHz de frecuencia
%
f = 2*sin(2*pi*1000*t) + 1.3*cos(2*pi*3017*t);

% Definicin del perodo de muestreo Tm y el tiempo en que se toma la


% muestra To
%
Tm = .0001;
To = Tm/2;

% Toma de muestras y formacin de un vector que represente la seal muestreada


%
for n = 1:length(f) ; Se analizan todos los valores de f

to = .00001*(n-1); ; Se calcula el tiempo actual

if (to/Tm-floor(to/Tm))*Tm < To ; Si el tiempo actual corresponde al


fm(n) = f(n); ; tiempo en que se toma la muestra entonces
else ; la seal muestreada toma el valor de f
fm(n) = 0; ; si no la seal muestreada toma el valor de 0
end
end

% Graficacin simultnea de f y su muestreo


%
plot(t,f,t,fm);

end;

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 19

Adems de los archivos de ejecucin .m de la misma manera pueden definirse nuevas funciones de MATLAB
para ser utilizadas dentro de un archivo de ejecucin o para ser procesadas directamente en la lnea de
comandos. Se recomienda consultar la informacin indicada en la INTRODUCCION para conocer el
procedimiento adecuado para realizar esto.

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 20

SIMULINK

SIMULINK es un paquete computacional para el modelado, simulacin y anlisis de sistemas dinmicos, el


cual opera integrado a la plataforma MATLAB. SIMULINK ofrece una interfase grfica de usuario para el
modelado de sistemas permitiendo la construccin de modelos como diagramas de bloques, de manera tal que el
sistema de inters se construye eligiendo bloques e interconectndolos de la manera adecuada.

SIMULINK incluye una serie amplia de bloques de componentes bsicos para la construccin de modelos de
sistemas, permite la creacin de nuevos bloques por parte del usuario y ofrece la posibilidad de aadir libreras
opcionales de bloques de diversas areas de aplicacin.

PUESTA EN OPERACIN DE SIMULINK

Departamento de Electrnica, Sistemas e Informtica ITESO


INTRODUCCION AL USO DE MATLAB 21

TALLER DE COMPUTO: INTRODUCCION AL USO DE MATLAB


Ing. Jorge Arturo Pardias Mir
Departamento de Electrnica, Sistemas e Informtica
Instituto Tecnolgico y de Estudios Superiores de Occidente
Febrero de 1997

Departamento de Electrnica, Sistemas e Informtica ITESO

También podría gustarte