You are on page 1of 25

INTRODUCCION AL USO DE MATLAB 1

TALLER DE COMPUTO

INTRODUCCION AL USO DE MATLAB

Guia del Taller

INTRODUCCION

MATLAB es un ambiente de cómputo técnico para el cálculo numérico de alto rendimiento con capacidad de
visualización, el cual fué desarrollado por la empresa The MATH WORKS Inc. MATLAB integra análisis
numérico, cálculo matricial, procesamiento de señales y gráficas.

MATLAB toma su nombre de MATrix LABoratory (laboratorio de matrices), pues originalmente fué creado
como un auxiliar en la programación de cálculo matricial, por lo que el elemento básico de cálculo que maneja
es la matriz.

La versión estándar de MATLAB incorpora una gran variedad de comandos y funciones matemáticas de uso
general relacionadas con tópicos como Manipulación de Matrices, Funciones Trigonométricas, Funciones
Hiperbólicas, Algebra Lineal Numérica, Análisis de Datos, Interpolación, Graficación, Manejo de Archivos, etc.
Existen además paquetes opcionales de funciones especializadas en diversas áreas técnicas tales como Control,
Procesamiento de Señales, Lógica Difusa, Procesamiento de Imágenes, Redes Neurales, etc.

El presente escrito es una guia para el taller introductorio al uso de MATLAB para Windows, versión estándar, 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 cálculo 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 también puede obtenerse en
español el libro "MATLAB edición de estudiante, Versión 4, guía de usuario" de la editorial Prentice Hall el
cual contiene los discos de instalación de la versión estudiantil.

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 2

INICIO

Estando dentro de la plataforma operativa Windows la invocación 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 también comandos para obtener mayor
información: help, whatsnew, info, subscribe. A continuación de los comandos se muestra el símbolo que
indica la linea de entrada de órdenes o comandos:

Es en esta línea 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 tópicos en que MATLAB proporciona información de ayuda. Puede
consultarse también este tipo de información a través del menú Help de la barra de menús 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 sesión de trabajo en MATLAB

Nota: En los ejemplos presentados en esta guía se indicará del lado izquierdo y en letras resaltadas (negritas) los
comandos y operaciones que se proporcionan directamente en la línea de comandos de MATLAB y del lado
derecho se proporcionarán algunos comentarios relacionados con el comando.

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 3

OPERACIONES BASICAS

En la linea de entrada de comandos puede proporcionarse directamente la indicación de cualquier operación


matemática 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


operación realizada.

Algunas otras operaciones básicas y los símbolos empleados por MATLAB para su uso son:

+ → suma, - → resta, * → multiplicación, / ó \ → división, ^ → potencia

Cuando una linea de comando se termina con ";" el resultado que se generaría por la ejecución 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 desplegarán por no terminarse con ";"

ans =

78

ans =

ans =

72

» 75 + 3; La operación se realiza pero no se despliega el resultado por


terminarse la operación con ";"
»

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 4

OPERACIONES RELACIONALES Y LOGICAS

MATLAB permite operaciones relacionales y lógicas, 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 operación relacional es "5 mayor que 4", lo cual es cierto, a lo


que le corresponde un valor de 1.
ans =

» 4>5 La operación relacional es "4 mayor que", lo cual es falso, a lo que


le corresponde un valor de 0.
ans =

0
»
» (5>4) & ~(4>5) La operación relacional es "5 mayor que 4 y negación de 4 mayor
que 5". "&" es el símbolo para el operador lógico AND y "~" es el
símbolo para el operador lógico negación.
ans =

» (5>4) | (4>5) La operación relacional es "5 mayor que 4 ó 4 mayor que 5". "|" es el
símbolo para el operador lógico OR.
ans =

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 5

VARIABLES

En una operación pueden emplearse variables a las que previamente se les ha asignado algún valor. Las variables
se nombran comenzando con una letra y puede estar seguida de letras y números, existiendo diferencia entre
minúsculas y mayúsculas.

Por ejemplo:

»dias = 75 Al no terminarse la línea de comando con ";" se despliega


inmediatamente el resultado de la asignación del valor a la
variable.
dias=

75

»meses = 12

meses=

12

»MESES = 3 Al ser MATLAB sensitivo a mayúsculas y minúsculas 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 sesión de trabajo de MATLAB a
través del comando who:

»» who

Your variables are:

MESES ans dias meses

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 6

y se obtiene mayor información 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 sesión de trabajo.

» clear meses Se borra sólamente 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 Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 7

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 8

FUNCIONES MATEMATICAS

MATLAB incluye una gran cantidad de funciones matemáticas, las cuáles operan al escribir el nombre de la
función seguidas inmediatamente, entre paréntesis, del operando, el cual puede ser un número 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 matemáticas elementales y
especializadas con que cuenta MATLAB, mientras que help seguido del nombre de una función en particular
muestra la forma en que la función 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 Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 9

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 10

NUMEROS COMPLEJOS

Para trabajar con números complejos se emplea el caracter i o el caracter j para representar el número √-1 y se
realizan las operaciones deseadas de la misma manera que con números reales.

Por ejemplo:

» numim = 3 + 5i A la variable numim se le asigna el número complejo cuya parte


real es 3 y cuya parte imaginaria es 5

numim =

3.0000 + 5.0000i

» abs(numim) La función abs(x) calcula el valor absoluto o magnitud de x

ans =

5.8310

» real(numim) La función real(x) calcula la parte real de x

ans =

» imag(numim) La función imag(x) calcula la parte imaginaria de x

ans =

» numim * MESES En la multiplicación del número imaginario tanto la parte real


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

9.0000 +15.0000i

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 11

VECTORES

Los vectores o arreglos de valores (arrays) son un conjunto de números o variables que se agrupan bajo un sólo
nombre, permitiéndose de esta manera que una operación pueda ser realizada sobre todos los valores del vector
de manera simultánea, en lugar de realizar la operación a cada uno de los valores de manera manual e
independiente.

Se definen vectores del tipo fila o renglón y vectores del tipo columna, los cuáles varían 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 operación o función sobre un vector obteniéndose como resultado otro vector
de la misma longitud (igual número 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

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 12

» besselj(1,diascol) La función besselj(1,x) calcula el valor de la función bessel de


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 función min(x) proporciona el elemento del vector x cuyo
valor es el más pequeño de todo el vector
ans =

» mean(diasfila) La función 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 =

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 13

4 5 6 7 8 9 10
»

La multiplicación y división entre vectores puede hacerse elemento a elemento o como operación matricial. En
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 número 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 multiplicación elemento a elemento entre vectores se indica con un " .


" que precede al signo de multiplicación "*"
ans =

36
49
64

» b*a La multiplicación matricial entre vectores se indica directamente


con el signo de multiplicación "*"
ans =

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 14

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

Dentro de un vector cada elemento tiene un número consecutivo que lo identifica comenzando desde el número
1. El direccionamiento de uno o varios de los elementos de un vector se indica por medio de un paréntesis y el
número de elemento o el rango de elementos deseados.

Por ejemplo:

» b(1) El elemento 1 del vector b es el número 6

ans =

» b(length(b)) La función length(x) indica el número 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 multiplicación 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 =

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 15

18 24 30
21 28 35
»

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

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 16

GRAFICAS

La forma más sencilla de generar una gráfica dentro de MATLAB es a través del comando plot(x,y), en donde
x,y son un conjunto de puntos (abscisa,ordenada) a ser marcados en un plano. La graficación por omisión genera
lineas rectas entre los puntos marcados mostrando una gráfica contínua, característica 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 gráfica que se muestra a continuación:

Al utilizar este comando siempre se define de manera automática la escala de los ejes horizontal y vertical de
acuerdo a los valores mínimos y máximos de los puntos a graficar, parámetros que igualmente pueden cambiarse
por valores deseados.

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 17

El siguiente comando obliga a que MATLAB sólo marque unos pequeños círculos 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 círculo

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

Obsérvense los resultados de graficación 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 simultáneamente los valores de bolsa
y bolsa2
» grid Se genera un cuadriculado en la gráfica actual
» xlabel('dias') Se escribe el título 'dias' en el eje
horizontal
» ylabel('indice de la bolsa') Se escribe el título 'índice de la bolsa' en el eje
vertical
» title('RESULTADOS DE LA BOLSA DE VALORES') Se escribe el título 'RESULTADOS DE LA
BOLSA DE VALORES' en la parte
superior de la gráfica
»

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 18

Otras formas de graficar en un plano dentro de MATLAB incluyen el tipo de gráficas de barras y de escalera así
como la posibilidad de mostrar varias gráficas en una misma ventana. MATLAB tiene también la capacidad de
graficar en tercera dimensión y de emplear gráficas de malla y de superficie.

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 19

ARCHIVOS DE EJECUCION

MATLAB ejecuta un comando u operación directamente a través de la linea de comando, tal y como se ha
mostrado en los ejemplos anteriores, sin embargo un comando a ejecutar puede ser también 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 están almacenadas. El archivo puede tener
cualquier nombre pero debe tener el apellido m.

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

A continuación se presenta el listado de un archivo .m el cual genera los resultados mostrados en la gráfica
contígua.

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

% Definición de la variable del tiempo correspondiente a 2 milisegundos:


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

% Definición de un vector correspondiente a los valores de una senoidal de 1000 KHz


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

% Definición de un vector correspondiente a los valores de una senoidal de 10000 KHz


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

% Definición de un vector correspondiente a los valores de la modulación de la señal Sp


% por parte de f en amplitud de doble banda lateral y sin portadora.
%

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 20

Sam=f.*Sp;

% Cálculo de los espectros de frecuencia de las señales anteriores


%
fs=numpuntos/(limsup-liminf); % Parámetro que indica el número de muestras por unidad de
% tiempo que se tienen de la señal a calcular su espectro
[F,f1]=psd(f,[],fs);
[SP,f2]=psd(Sp,[],fs);
[SAM,f3]=psd(Sam,[],fs);

% Graficación de las señales en el dominio del tiempo y sus respectivos espectros de frecuencia
%
subplot(3,2,1); plot(t,f);
ylabel('amplitud'); xlabel('tiempo'); title('Señal Moduladora');
subplot(3,2,3); plot(t,Sp);
ylabel('amplitud'); xlabel('tiempo'); title('Señal Portadora');
subplot(3,2,5); plot(t,Sam);
ylabel('amplitud'); xlabel('tiempo'); title('Señal Modulada');
subplot(3,2,2); plot(f1,F);
ylabel('amplitud'); xlabel('frecuencia'); title('Señal Moduladora');
subplot(3,2,4); plot(f2,SP);
ylabel('amplitud'); xlabel('frecuencia'); title('Señal Portadora');
subplot(3,2,6); plot(f3,SAM);
ylabel('amplitud'); xlabel('frecuencia'); title('Señal Modulada');

end;

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 21

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 22

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 SEÑAL MUESTREADA

% Definición de la variable del tiempo correspondiente a 2 milisegundos:


%
t = 0:.00001:.002;

% Definición de un vector correspondiente a los valores de la suma de dos


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

% Definición del período de muestreo Tm y el tiempo en que se toma la


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

% Toma de muestras y formación de un vector que represente la señal 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 señal muestreada toma el valor de f
fm(n) = 0; ; si no la señal muestreada toma el valor de 0
end
end

% Graficación simultánea de f y su muestreo


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

end;

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 23

Además de los archivos de ejecución .m de la misma manera pueden definirse nuevas funciones de MATLAB
para ser utilizadas dentro de un archivo de ejecución o para ser procesadas directamente en la línea de comandos.
Se recomienda consultar la información indicada en la INTRODUCCION para conocer el procedimiento
adecuado para realizar esto.

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 24

SIMULINK

SIMULINK es un paquete computacional para el modelado, simulación y análisis de sistemas dinámicos, el


cual opera integrado a la plataforma MATLAB. SIMULINK ofrece una interfase gráfica de usuario para el
modelado de sistemas permitiendo la construcción de modelos como diagramas de bloques, de manera tal que el
sistema de interés se construye eligiendo bloques e interconectándolos de la manera adecuada.

SIMULINK incluye una serie amplia de bloques de componentes básicos para la construcción de modelos de
sistemas, permite la creación de nuevos bloques por parte del usuario y ofrece la posibilidad de añadir librerías
opcionales de bloques de diversas areas de aplicación.

PUESTA EN OPERACIÓN DE SIMULINK

Departamento de Electrónica, Sistemas e Informática ITESO


INTRODUCCION AL USO DE MATLAB 25
TALLER DE COMPUTO: INTRODUCCION AL USO DE MATLAB
Ing. Jorge Arturo Pardiñas Mir
Departamento de Electrónica, Sistemas e Informática
Instituto Tecnológico y de Estudios Superiores de Occidente
Febrero de 1997

Departamento de Electrónica, Sistemas e Informática ITESO

You might also like