Sie sind auf Seite 1von 13

Introduccin a Matlab

Ing. Julio Csar Nieves Godnez.


Departamento de Comunicaciones
Escuela Superior de Ingeniera Mecnica y Elctrica

Este tutorial est dirigido a


personas con ciertas habilidades
de
programacin
en
otros
lenguajes, por lo que no se
explicar a detalle ninguna de las
estructuras de programacin que
se han empleado comnmente
en esos lenguajes. En este
tutorial
simplemente
se
enfatizar en la forma en que se
implementan en Matlab diversas
estructuras de programacin de
uso
comn
y
en
las
caractersticas particulares de
este lenguaje. La mejor forma de
familiarizarse con Matlab es
siguiendo este tutorial enfrente
de la computadora y ejecutando
los distintos comandos.
Al abrir Matlab, lo primero que
aparece es la ventana de
comandos, la cual nos permite
comunicarnos con el intrprete
de
este
lenguaje
de
programacin. Para simplificar el
proceso de introducir comandos,
existen algunas teclas especiales
que
se
usan
para
editar
comandos mal tecleados o
invocar a lneas de comandos
previas.

Llama a la lnea previa.

Llama a la lnea siguiente.

Se mueve un caracter a la
izquierda.

Se mueve un caracter a la
derecha.
Inicio
Se mueve al inicio de
la lnea de comando.
Fin

Se mueve al final de la
lnea de comando.

Esc

Borra la lnea de comando.

Adicionalmente, desde la barra


de men de la ventana de
comandos se tiene un acceso
simplificado a varios comandos
tiles de Matlab y Windows.
Antes de trabajar con los
primeros
comandos,
es
recomendable
crear
un
subdirectorio de trabajo desde
Windows. Esto se realiza desde la
ventana de Matlab con el
comando cd:
cd c:\usuarios\midirectorio
As, todos los datos y programas
que se graben en el disco duro
estarn en el subdirectorio que
nosotros indiquemos.
El comando help nos permite
conocer la operacin de los
distintos comandos, funciones y

procedimientos. Por ejemplo,


para obtener informacin sobre
el uso del comando cd, se
introduce la siguiente lnea en la
ventana de comandos de Matlab:
help cd
Tambin se puede tener acceso a
la ayuda ofrecida por help desde
la barra de herramientas de la
ventana de comandos de Matlab.
El elemento bsico de trabajo de
Matlab es una matriz numrica
rectangular. Matlab no contiene
ninguna
declaracin
de
dimensionamiento,
porque
asigna espacio en memoria a las
variables conforme stas se
definen. No contiene ninguna
declaracin de tipo de variable:
todas las variables se manejan
como de doble precisin. Las
declaraciones
de
Matlab
frecuentemente presentan la
siguiente forma:
variable = expresin
o simplemente
expresin
Si se omite el nombre de la
variable y el signo =, Matlab crea
una variable con el nombre ans
a la cual le asigna el valor de la
expresin. Los nombres de las
variables pueden ser cualquier
combinacin de letras, nmeros
y guin bajo, comenzando con
letra. Matlab recuerda slo los
primeros 19 caracteres del
nombre
y
distingue
entre
maysculas
y
minsculas.
Algunas variables ya estn
previamente definidas, como es

el caso de la variable pi que


tiene el valor de 3.1415926
Matlab basa mucho su poder en
su
extenso
conjunto
de
funciones. Las funciones pueden
permitir mltiples argumentos de
entrada
y
de
salida.
Los
argumentos de entrada siguen
inmediatamente a la funcin y
estn
encerrados
entre
parntesis y separados por
comas. Los argumentos de salida
preceden a la funcin y al signo
=, encerrados entre parntesis
cuadrados y separados por
comas. Vanse los siguientes
ejemplos:
theta = atan2(y,x)
regresa el arco tangente en
cuatro cuadrantes de los puntos
con coordenadas (x,y). Por otro
lado,
[mx,ix] = max(x)
regresa el valor mximo mx y el
ndice ix del valor mximo entre
los componentes del vector x.
Este tipo de funciones que
permiten argumentos mltiples
de salida, pueden regresar
menos
argumentos
que
el
mximo. Por ejemplo:
mx = max(x)
regresar slo el valor mximo
del vector x. Las funciones que
permiten argumentos mltiples
de
entrada,
en
ocasiones
especficas
pueden
aceptar
menos
argumentos
que
el
mximo permisible.

Matlab
jams
modifica
los
argumentos de entrada de una
funcin, y todas las variables
definidas dentro de una funcin
solo tienen validez local y se
borran cada vez que termina la
ejecucin de la misma. Los
nombres
de
las
funciones
internas de Matlab siempre se
deben escribir con minsculas.

1.- Definicin de Matrices


y Vectores.

igualmente definida pero Matlab


suprime
la
exhibicin
del
resultado en la ventana de
comandos. Un vector fila o un
vector
columna
se
pueden
introducir, respectivamente, con
las declaraciones:
B = [1 2 3];
C = [1; 5; 7];
Un escalar se puede introducir
directamente
omitiendo
los
parntesis cuadrados:
D = 9;

La forma ms sencilla de definir


una matriz, cuando esta es
pequea, es a travs del teclado.
Los elementos de la matriz se
introducen por filas, y cada
elemento de la fila estar
separado por un espacio o una
coma. Cada fila de la matriz se
separar por medio de un punto
y coma o un <return>. El
conjunto de elementos de la
matriz
se
encerrar
entre
parntesis
cuadrados.
Por
ejemplo,
al
introducir
la
declaracin
A = [1 2 3; 4 5 6; 7 8 9]
produce la matriz
A=
1

que queda definida en la variable


A. Si la declaracin de la matriz
se terminara con un punto y
coma,
la
matriz
queda

Matlab utiliza las convenciones


usuales para la representacin
escrita de los nmeros. Cuando
se emplea el factor de escala por
potencias de 10, hay que cuidar
el no dejar espacios en blanco
alrededor del caracter e. Por
ejemplo:
E = 1.5e6
asigna a la variable E el valor
6
1.5 10 .
Para
hacer
referencia
a
elementos pertenecientes a una
matriz, se encierran sus ndices
entre parntesis. Por ejemplo,
A(2,3) representar el elemento
de la segunda fila y la tercera
columna de la matriz A. Una
caracterstica de Matlab es que
las matrices se pueden indexar
como si fueran un vector
columna largo. As, el elemento
A(2,3) de la matriz A se puede
referir como A(8).
Para generar vectores fila entre
dos lmites y con incrementos

constantes entre sus elementos,


se utilizar el caracter dos
puntos. Por ejemplo:

importante no dejar espacios en


blanco alrededor de los signos +
y -.

x = 2.1:0.1:2.4

2.- Operaciones con


arreglos.

produce el siguiente vector fila:


x=
2.1000
2.4000

2.2000

2.3000

Tambin
son
posibles
decrementos. Por ejemplo
y = 5:-1:0
produce

Por operaciones con arreglos


entenderemos
operaciones
aritmticas
entre
matrices
realizadas
elemento
por
elemento. Se pueden crear
expresiones con los siguientes
operadores aritmticos:
+

Adicin

Sustraccin

.*

Multiplicacin

./

Divisin

y = 2:7

.^

Exponenciacin

genera

El punto que precede a algunos


operadores es necesario para
indicar
que
se
trata
de
operaciones con arreglos. Todos
los operadores requieren de dos
operandos
de
las
mismas
dimensiones,
siendo
una
excepcin que uno de los
operandos sea un escalar, en
cuyo caso el escalar operar en
cada uno de los elementos de la
matriz. Observe los ejemplos:

y=
5

El valor de incremento
omisin es uno. As

por

y=
2
Las

variables

predefinidas

5
i

como

6
y

7
j

estn

permiten
crear
matrices
complejas.
Dos
formas
de
introducir una matriz compleja
son:
Z = [1 2; -3 4] + i*[-5 -6; 7
-8]
Z = [1-5i 2-6i; -3+7i 4-8i]
lo que produce el mismo
resultado. Al introducir la matriz
Z de la segunda forma es

x = [1 2 3];
z1 = y-x
z1 =
3

z2 = x.*y

y = [4 5 6];

z2 =

asin

arco seno

acos

arco coseno

z3 = y.^x

atan

arco tangente

z3 =

atan2

arco
tangente
en
cuatro cuadrantes

real

parte real

imag

parte imaginaria

abs

valor
absoluto
o
magnitud compleja

10

25

18

216

z4 = 2.^x-y
z4 =
-2

-1

Adicionalmente,
existe
un
conjunto
de
funciones
matemticas elementales que se
aplican elemento por elemento a
arreglos. Algunas de ellas son:
round
redondeo
entero ms cercano

al

angle
fase
conj

ngulo

de

conjugado complejo

En Matlab se cuenta con los


siguientes operadores lgicos y
funciones:

fix

redondeo hacia cero

<

menor que

ceil
infinito

redondeo hacia ms

<=

menor o igual que

>

mayor que

>=

mayor o igual que

floor
redondeo
menos infinito

hacia

la

sign

funcin signo

==

igual a

sqrt

raz cuadrada

~=

no igual a

exp

exponente base e

not
~)

NO lgico (tambin

log

logaritmo natural

and
&)

Y lgico (tambin

or

O lgico (tambin |)

xor

XOR lgico

log10
10

logaritmo base

log2

logaritmo base 2

sin

seno

cos

coseno

tan

tangente

Todos los operandos involucrados


en las expresiones lgicas deben
de
tener
las
mismas
dimensiones, ya que Matlab
compara a pares los elementos

correspondientes. El resultado de
las expresiones lgicas es una
matriz de unos y ceros de la
mismas dimensiones que tienen
las matrices de los operandos.
Un uno representa verdadero y
un cero representa falso. Es
posible que algunos de los
operandos sean escalares.

C = [0 0 3; 4 2 5; 3 4 -6];

La funcin find es muy til con


los
operadores
lgicos.
La
funcin
find
encuentra
los
elementos diferentes de cero en
un vector, y, por ende, los
elementos que satisfacen alguna
condicin relacional. Si y es un
vector, find(y<3) regresa un
vector con los ndices de los
elementos de y que son menores
que 3. La funcin find trabaja
tambin con matrices, pues una
matriz tambin puede indexarse
como si fuera un vector columna
largo. Vase el siguiente ejemplo:

L1 = B>0

I1 = find((A~=B) & (C<=0))

A = [1 -2 3; -1 5 2; 2 2 4];
B = [-1 5 8; -1 4 2; -2 3
4];

I1 =
1
4
L1 =
0

L2 = A==B
L2 =
0

L3 = (A~=B) & (C<=0)


L3 =
1

3.- Operaciones con


Matrices y Vectores.
Matlab cuenta con los siguientes
operadores aritmticos bsicos
para el manejo de matrices, los
cuales se rigen por la aritmtica
de matrices.
+

Adicin

Sustraccin

Multiplicacin

Transposicin compleja

Transposicin no compleja

:
Indexado o rearreglo de
una matriz

Los operandos para la adicin y


la sustraccin deben de ser de
las mismas dimensiones. El
operador : permite denotar a
una matriz como un vector
columna con todos los elementos
de la matriz extendidos. Observe
los
siguientes
ejemplos
de
operaciones con matrices.
A = [111 12 13; 21 122 23;
31 32 133];
B = [11 12 13; 21 22 23];

-4

1876

2012

2148

3506

3672

3838

M2 = B(:)
M2 =

M4 =
-8
Adicionalmente,
existe
un
conjunto
de
funciones
matemticas
matriciales
y
vectoriales.
trace

suma
de
los
elementos diagonales
de una matriz

det

determinante

inv

matriz inversa

chol
Cholesky

factorizacin

dot
vectorial

producto

cross
vectorial

11
21

M4 = x*y

M1 = B*A
M1 =

producto

de
punto
cruz

M5 = dot(x,y)

12

M5 =

22

-8

13

M6 = cross(x,y)

23

M6 =

x = [3 -1 2];

-9

y = [-2 4 1];

M3 = x *y
M3 =
-6

12

-4

-1

-7

10

Otra caracterstica de Matlab es


que
permite
operaciones
sofisticadas en el manejo de
matrices y arreglos mediante sus
facilidades
avanzadas
de
indexado. Permite, por ejemplo,
que los ndices de una matriz
sean a su vez vectores.

Las siguientes funciones proveen


manejo adicional de matrices y
arreglos:
diag
crea
diagonales

extrae

tril
extrae
triangular baja

la

parte

triu
extrae
triangular alta

la

parte

rot90
90

rota

la

matriz

flipud
voltea la matriz
de arriba a abajo
fliplr

voltea la matriz de
izquierda a derecha

4.- Grficas en dos


dimensiones.
Las funciones elementales en
Matlab para realizar grficas
bidimensionales
son
las
siguientes:
plot
lineal

genera

una

grfica

title

ttulo de la grfica

xlabel
X

etiqueta del eje

ylabel
Y

etiqueta del eje

legend
figura

leyenda de la

text

axis
escala
de los ejes
hold
actual

grid
lneas
cuadriculado

de

apariencia

mantiene la grfica

Si x y y son vectores, la funcin


plot(x,y) grafica los elementos
del vector y en funcin de los
componentes del vector
x,
uniendo las coordenadas (xi,yi)
con lneas rectas. plot(y) grafica
el vector y en funcin de su
ndice. Varios tipos de lneas,
smbolos
y
colores
pueden
obtenerse
con
la
funcin
plot(x,y,s), donde s es una
cadena de 1, 2 3 caracteres.
Al utilizar plot se abrir una
ventana para graficar las lneas
indicadas en el comando. Si ya
se ha abierto una ventana para
graficar anteriormente, entonces
se borrarn todas las lneas y
anotaciones existentes y se
comenzar una nueva figura en
la misma ventana. Sin embargo,
es posible mantener un dibujo de
modo que nuevas lneas de los
comandos plot se sumen al
dibujo existente; esto se hace
con el comando hold on. El
comando hold of regresa al
modo normal de plot, donde los
comandos limpiarn las figuras
previas antes de dibujar las
nuevas.
A
continuacin
se
muestra un ejemplo donde se
utiliza la funcin plot.
w = linspace(0,2*pi,100);
xs = sin(w);

anotaciones de texto

xc = cos(w);
plot(w,xs,g);

hold on;

grfica actual. Los ejes se


cuentan a partir de la fila
superior, despus la segunda fila,
etc.

plot(w,xc,r:);
hold off;

Otros
tipos
de
grficas
bidimensionales
se
pueden
realizar con Matlab usando las
siguientes funciones:

title(seno y coseno);
xlabel(radianes);
ylabel(amplitud);
Esta misma grfica se puede
realizar con un solo llamado a
plot y sin utilizar hold, como
sigue:
plot(w,xs,g,w,xc,r:);

semilogx escala
semilogartmica con
el eje X logartmico
semilogy escala
semilogartmica con
el eje Y logartmico

Si se desea, una ventana grfica


se puede subdividir para mostrar
mltiples grficas, o se pueden
crear ventanas adicionales y
seleccionar cul de ellas recibe la
nueva salida grfica. Para esto se
tienen los siguientes comandos
grficos:

loglog
escala log-log

grfica

con

stairs
escalera

grfica

tipo

subplot

polar
grfica
coordenadas polares

figure

permite
mltiples
misma
grfica

grficas
en
una
ventana

crea
una
nueva
ventana grfica o
selecciona la ventana
grfica actual

sgh
muestra la ventana
grfica actual
clf

limpia la figura actual

close
cierra
especificada

la

ventana

subplot(m,n,p)
divide
una
ventana de figura en una matriz
de mn de ejes pequeos, y
selecciona el p-simo eje para la

stem

grfica de lneas

bar

grfica de barras
en

Adicionalmente, la barra de
men de la ventana de figura
proporciona
un
acceso
simplificado a algunos otros
comandos tiles.

5.- Procedimientos y
funciones.
Adems de procesar rdenes
desde la ventana de comandos,
Matlab
puede
ejecutar
secuencias
de
comandos
guardados en archivos llamados
archivos-M, debido a que tienen

la extensin .m. Los archivos-M


son archivos ASCII ordinarios y
pueden editarse en un editor de
textos que incluye Matlab. Es
importante hacer una distincin
entre dos tipos diferentes de
archivos-M: los procedimientos y
las funciones.
Los procedimientos son una
secuencia
de
comandos
y
expresiones. Cuando se invoca
un procedimiento, Matlab ejecuta
secuencialmente los comandos
listados como si stos hubieran
sido introducidos directamente a
travs
del
teclado.
Los
procedimientos
operan
globalmente en las variables
definidas en el espacio de trabajo
de Matlab, y las variables
definidas en un procedimiento
quedan
disponibles
para
operarse en otros procedimientos
o desde la ventana de comandos.
Los
procedimientos
pueden
incluir
llamados
a
otros
procedimientos
o
funciones,
incluyendo llamados a s mismos.
Como ejemplo, supngase que el
archivo
de
texto
llamado
plots.m contiene las siguientes
instrucciones:
%Procedimiento para graficar
las funciones %seno y coseno

Al teclear la declaracin plots,


se
ejecutan
los
comandos
anteriores, creando una grfica
del seno y del coseno. El smbolo
% le indica a Matlab que lo que
le sigue es un comentario y debe
ser ignorado. Obsrvese que los
comandos
terminan
con
el
caracter punto y coma, con lo
cual se suprime la exhibicin de
resultados en la ventana de
comandos de Matlab.
Las funciones difieren de los
procedimientos
en
que
las
variables
definidas
y
manipuladas dentro del archivo
son
locales
y
no
operan
globalmente en el espacio de
trabajo de Matlab. El intercambio
de datos se realiza a travs de
un conjunto de argumentos de
entrada y salida. Un archivo-M se
interpreta como una funcin
cuando en la primera lnea
aparece la palabra function y el
nombre de la funcin junto con
las variables de entrada y salida.
Por ejemplo, suponga que se
tiene
un
archivo
llamado
abs2.m, el cual contiene las
siguientes declaraciones:
function r = abs2(x,y)

w = linspace(0,2*pi,100);

%Funcin
magnitud
complejo

xs = sin(w);

r = sqrt(x.^2+y.^2);

xc = cos(w);

Si este archivo existe en el


directorio actual o en cualquier
directorio
dentro
de
una
trayectoria de bsqueda, se
puede utilizar como cualquier

plot(w,xs,g,w,xc,r:);
title(seno y coseno);
xlabel(radianes);

para calcular la
de un %vector

otra funcin de Matlab. Vase el


siguiente uso de la funcin abs2:

Su llamado con dos argumentos


de salida podra ser el siguiente:

AReal = [1 3 -2 5];

[AAbs , AAng] = polar2(AReal ,


AImag);

AImag = [0 -1 3 1];
AAbs = abs2(AReal,AImag);
AAbs =
1.0000
5.0990

3.1623

3.6056

AAbs = polar2(AReal , AImag);

Las tres variables x, y y r


creadas al llamar a abs2
desparecen
al
terminar
la
funcin. Obsrvese que no se
necesita
que
coincidan
los
nombres de las variables de
entrada
y
salida
en
la
declaracin de la funcin y en su
llamado. En este caso, al inicio
de la funcin el contenido de
AReal se copia en x y el de
AImag en y. Al terminar sus
operaciones, la funcin asigna el
contenido de r a AAbs. Los
valores de x y y pueden cambiar
en el cuerpo de la funcin, pero
los valores de AReal y AImag
permanecern iguales.
A continuacin se muestra la
definicin de una funcin con
mltiples argumentos de salida.
function
polar2(x,y)

Si se desea, en el llamado a la
funcin se pueden obtener
menos argumentos de salida
(siempre sern los primeros en la
lista). Vase el siguiente ejemplo:

[r,fifase]

%Funcin para calcular la


magnitud y fase de %un
vector complejo
r = sqrt(x.^2+y.^2);
fifase = atan2(y,x);

6.- Anlisis de datos.


Para el anlisis de datos, Matlab
proporciona capacidades bsicas
en
el
siguiente
grupo
de
funciones:
min
pequeo

componente

ms

max
grande

componente

ms

sum
suma
elementos

de

prod
producto
elementos
median
mean
promedio

de

los
los

mediana
valor medio o

std

desviacin estndar

var

varianza

all

verdadero si todos
los elementos son
verdaderos

any

verdadero
elemento
verdadero

si

algn
es

Si los datos de entrada a las


funciones
anteriores
estn
contenidos en un vector, la salida
es escalar. Las funciones min y
max permiten dos variables de
salida. Las dos ltimas funciones,
all y any, son funciones lgicas;
reciben vectores de 0s y 1s y
dan un resultado lgico. Vanse
los siguientes ejemplos:

si se aplica la funcin max a un


arreglo matricial, el resultado
ser un vector fila que contiene
en cada elemento el valor
mximo de cada columna.
X = [-2 3 4; 1 -5 6; 0 2
8];
Y = [-2 5 4; 1 4 -6; 0 7
8];
s4 = max(X)
s4 =

p = [3 5 -2 4];

s1 = min(p)

I2 = all(X==Y)

s1 =

I2 =
-2

[s2 , ind] = max(p)

I3 = any(all(X==Y))

s2 =

I3 =
5

ind =
2
s3 = mean(p)
s3 =
2.5000
I1 = any(p==4)

1
El clculo de I3 ilustra una
manera de obtener un solo
resultado lgico a partir de una
matriz de 0s y 1s, en lugar de
un vector.
Las siguientes funciones proveen
capacidades adicionales para el
manejo de datos.
sort
arregla
ascendente

I1 =
1
Si los datos de entrada a las
funciones
anteriores
estn
contenidos en una matriz o
arreglo, entonces Matlab realiza
los
anlisis
orientados
por
columnas. Esto quiere decir que

en

orden

cumsum suma acumulativa de


elementos
cumprod producto acumulativo
de elementos
La entrada a estas funciones
puede ser un vector o una

matriz, y el resultado ser del


mismo tipo y dimensiones que
presentan los datos de entrada.
Por ejemplo, la funcin sort
ordena
ascendentemente
un
vector de entrada o cada
columna de una matriz de
entrada.

conv

convolucin
multiplicacin
polinomios

y
de

deconv

deconvolucin
divisin
polinomios

y
de

roots

races de polinomios

s5 = sort(X)

poly

polinomios con races


especificadas

s5 =
-2

-5

s6 = cumsum(Y)

residue
expansin
fracciones parciales
ft
transformada
discreta de Fourier
ift

transformada
discreta de Fourier
inversa

fshift

mueve el origen al
centro del espectro

s6 =
-2

-1

-2

-1

16

La funcin hist permite calcular


y graficar el histograma de un
vector de datos.
Por ltimo se mencionan algunas
funciones que Matlab tiene para
el procesamiento de seales.
Estas
funciones
operan
primariamente con vectores.
filter

filtrado digital

en

Nota final.
Este tutorial se bas en notas
elaboradas por el Dr. Mauricio
Lara Barrn, del Departamento
de Ingeniera Elctrica, Seccin
de Comunicaciones, del Centro
de Investigacin y de Estudios
Avanzados del I.P.N.

Das könnte Ihnen auch gefallen