Vous êtes sur la page 1sur 72

Tutorial de MATLAB

Mtro. Juan Gustavo Ruiz


Barajas agosto 2011
1

Tutorial de MATLAB

MATLAB es el nombre abreviado de MATrix


LABoratory. MATLAB es un programa para realizar
clculos numricos con vectores y matrices.
Trabaja con nmeros escalares, reales, complejos, con
cadenas de caracteres
Realizar una amplia variedad de grficos en dos y tres
dimensiones.
MATLAB tiene tambin un lenguaje de programacin
propio.
2

Tutorial de MATLAB
LEAN CON DETENIMIENTO LOS PRRAFOS SIGUIENTES Y NO
INTENTE INTRODUCIR DATOS HASTA QUE SE LE INDIQUE:
Matlab es una herramienta poderosa usada por ingenieros y
cientficos de todo el mundo para resolver diversos problemas
que requieren clculos complejos bajo una secuencia de
instrucciones y respaldado por una compaa de software
Profesional: The Math Works Inc.
La parte de este taller esta orientado para que el estudiante
tenga capacidad de graficar seales.
Su contenido se enumera a continuacin:
1.- Matrices y operadores.
2.- Funciones y comandos propios de Matlab.
3.-Graficacin de seales.

Tutorial de MATLAB

Sobre las pantallas que aparecen


al abrir el programa:
Al abrir MATLAB normalmente aparecen tres pantallas:
1.- La primera de la izquierda (launch pad) en donde se localizan todos
los directorios y demos.
2.- La segunda abajo a la izquierda (command history) en la parte
inferior donde se genera un histrico de los comandos y variables
que se usan.
3.- La tercera de la derecha (command window) se considera la
pantalla principal y es precisamente donde se declaran las variables
y comandos de un programa en la cual se ubica el smbolo . Ver
Fig.1.
4

Tutorial de MATLAB

Fig. No. 1 Pantallas de MATLAB


5

Tutorial de MATLAB

Entorno de trabajo de MATLAB


Los componentes ms importantes del entorno de
trabajo son los siguientes:
1. El Escritorio de Matlab (Matlab Desktop), que es
la ventana o contenedor de mximo nivel en la que
se pueden situar (to dock) las dems componentes.

Tutorial de MATLAB

Entorno de trabajo de MATLAB


2. Los componentes individuales, orientados a tareas concretas,
entre los que se puede citar:
a. La ventana de comandos (Command Window),
b. La ventana histrica de comandos (Command History Browser),
c. El espacio de trabajo (Workspace Browser),
d. La plataforma de lanzamiento (Launch Pad),
e. El directorio actual (Current Directory Browser),
f. La ventana de ayuda (Help Browser)
g. El editor de ficheros y depurador de errores (Editor&Debugger),
h. El editor de vectores y matrices (Array Editor).

Tutorial de MATLAB

ESCRITORIO DE MATLAB (MATLAB DESKTOP)


Cuando se arranca MATLAB por primera vez o cuando se
ejecuta el comando View/Desktop Layout/Default
aparece una ventana como la mostrada en la Figura 6.

Figura 6. Configuracin por defecto del Matlab Desktop

Tutorial de MATLAB

ESCRITORIO DE MATLAB (MATLAB DESKTOP)


La Figura 7 muestra un detalle del men View, desde el
que se controlan los componentes visibles y la forma en
que se visualizan

Figura 7. Men para configurar el Matlab Desktop


9

Tutorial de MATLAB

ESCRITORIO DE MATLAB (MATLAB DESKTOP)


Clicando sobre la barra de ttulo y arrastrando una sub-ventana
activa (Figura 8) se puede llevar a otra parte del Desktop,
obtenindose el resultado mostrado en la Figura 9.

Figura 8. Arrastrar una pestaa desde una sub-ventana.

Figura 9. Creacin de una nueva sub-ventana.

10

Tutorial de MATLAB

ESCRITORIO DE MATLAB (MATLAB DESKTOP)


El search path de MATLAB es una lista de directorios que
se puede ver y modificar a partir de la lnea de comandos,
o utilizando el cuadro de dilogo Set Path, del men File.
>> path
MATLABPATH
C:\matlabR12\toolbox\matlab\general
C:\matlabR12\toolbox\matlab\ops
C:\matlabR12\toolbox\matlab\lang
...
C:\matlabR12\toolbox\matlab\verctrl
C:\matlabR12\toolbox\matlab\winfun
C:\matlabR12\toolbox\matlab\demos
C:\matlabR12\toolbox\local

11

Tutorial de MATLAB

WORKSPACE BROWSER Y ARRAY EDITOR

El espacio de trabajo de MATLAB (Workspace) es el


conjunto de variables y de funciones de usuario que
en un determinado momento estn definidas en la
memoria del programa
>> whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 72 double array
C 3x3 72 double array
D 3x3 72 double array
Grand total is 36 elements using 288 bytes

12

Tutorial de MATLAB

Guardar variables y estados de una sesin:


Comandos save y load

Para guardar el estado de una sesin de trabajo


existe el comando save. Si se teclea:
>> save
Dicho estado puede recuperarse la siguiente vez
que se arranque el programa con el comando:
>> load

13

Tutorial de MATLAB

Lneas de comentarios

El carcter tanto por ciento (%) indica comienzo de


comentario
% almacena 8 cifras decimales

14

Tutorial de MATLAB

OPERACIONES CON MATRICES Y VECTORES

MATLAB como programa interactivo, en el que se


irn definiendo las matrices, los vectores y las
expresiones que los combinan y obteniendo los
resultados, los cuales son asignados a otras
variables podrn ser utilizados posteriormente en
otras expresiones. En este sentido MATLAB sera
como una potente calculadora matricial

15

Tutorial de MATLAB

Definicin de matrices desde teclado


Las matrices se definen por filas; los elementos de una misma fila
estn separados por blancos o comas, mientras que las filas estn
separadas por pulsaciones intro o por caracteres punto y coma (;).
Por ejemplo, el siguiente comando define una matriz A de dimensin
(3x3):
>> A=[1 2 3; 4 5 6; 7 8 9]
La respuesta del programa es la siguiente:
A=
1 2 3
4 5 6
7 8 9
16

Tutorial de MATLAB

A partir de este momento la matriz A est disponible para hacer


cualquier tipo de operacin una sencilla operacin con A es hallar su
matriz traspuesta. En MATLAB el apstrofo (') es el smbolo de
trasposicin matricial. Para calcular A' (traspuesta de A) basta
teclear lo siguiente (se aade a continuacin la respuesta del
programa):
>> A'
ans =
1 4 7
2 5 8
3 6 9
17

Tutorial de MATLAB

Operaciones con matrices


Los operadores matriciales de MATLAB son los siguientes:
+ adicin o suma
sustraccin o resta
* multiplicacin
' traspuesta
^ potenciacin
\ divisin-izquierda
/ divisin-derecha
.* producto elemento a elemento
./ y .\ divisin elemento a elemento
.^ elevar a una potencia elemento a elemento
18

Tutorial de MATLAB

En MATLAB existe tambin la posibilidad de aplicar elemento a elemento los operadores


matriciales (*, ^, \ y /). Para ello basta precederlos por un punto (.). Por ejemplo:
>> [1 2 3 4]^2
??? Error using ==> ^
Matrix must be square.
>> [1 2 3 4].^2
ans =
1 4 9 16
>> [1 2 3 4]*[1 -1 1 -1]
??? Error using ==> *
Inner matrix dimensions must agree.
>> [1 2 3 4].*[1 -1 1 -1]
ans =
1 -2 3 -4
19

Tutorial de MATLAB

NMEROS COMPLEJOS: FUNCIN COMPLEX


En muchos clculos matriciales los datos y/o los resultados
no son reales sino complejos, con parte real y parte
imaginaria. Ejectense los siguientes comandos:
>> a=sqrt(-4)
a=
0 + 2.0000i
>> 3 + 4j
ans =
3.0000 + 4.0000i
20

Tutorial de MATLAB

CADENAS DE CARACTERES
En MATLAB las cadenas de texto van entre
apstrofos o comillas simples (Ntese que en C van
entre comillas dobles:
"cadena". Por ejemplo, en MATLAB:
s = 'cadena de caracteres'

21

Tutorial de MATLAB

TIPOS DE MATRICES PREDEFINIDOS


Algunas de estas funciones son las siguientes:
eye(4) forma la matriz unidad de tamao (4x4)
zeros(3,5) forma una matriz de ceros de tamao (3x5)
zeros(4) dem de tamao (4x4)
ones(3) forma una matriz de unos de tamao (3x3)
ones(2,4) idem de tamao (2x4)
linspace(x1,x2,n) genera un vector con n valores igualmente
espaciados entre x1 y x2
22

Tutorial de MATLAB

logspace(d1,d2,n) genera un vector con n valores espaciados


logartmicamente entre 10^d1 y 10^d2. Si d2 es pi6, los puntos se
generan entre 10^d1 y pi
rand(3) forma una matriz de nmeros aleatorios entre 0 y 1, con
distribucin uniforme, de tamao (3x3)
rand(2,5) idem de tamao (2x5)
randn(4) forma una matriz de nmeros aleatorios de tamao (4x4), con
distribucin normal, de valor medio 0 y varianza 1.
magic(4) crea una matriz (4x4) con los nmeros 1, 2, ... 4*4, con la
propiedad de que todas las filas y columnas suman lo mismo
23

Tutorial de MATLAB

hilb(5) crea una matriz de Hilbert de tamao (5x5). La matriz de Hilbert es una
matriz cuyos elementos (i,j) responden a la expresin (1/(i+j-1)). Esta es una
matriz especialmente difcil de manejar por los grandes erroresnumricos a los
que conduce
invhilb(5) crea directamente la inversa de la matriz de Hilbert
kron(x,y) produce una matriz con todos los productos de los elementos del
vector x por los elementos del vector y. Equivalente a x'*y, donde x e y son
vectores fila
compan(pol) construye una matriz cuyo polinomio caracterstico tiene como
coeficientes los elementos del vector pol (ordenados de mayor grado a menor)
vander(v) construye la matriz de Vandermonde a partir del vector v (las
columnas son las potencias de los elementos de dicho vector)
24

Tutorial de MATLAB

OPERADOR DOS PUNTOS (:)

El operador (:) representa un rango: en este caso, los


nmeros enteros entre el 1 y el 10.
Para empezar, defnase un vector x con el siguiente
comando:
>> x=1:10
x=
1 2 3 4 5 6 7 8 9 10
25

Tutorial de MATLAB

En este caso el incremento va entre el valor inferior y el


superior, en las formas que se muestran a continuacin:
>> x=1:2:10
x=
1 3 5 7 9
>> x=1:1.5:10
x=
1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000
26

Tutorial de MATLAB

Operadores relacionales
El lenguaje de programacin de MATLAB dispone de
los siguientes operadores relacionales:
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
== igual que
~= distinto que
27

Tutorial de MATLAB

Operadores lgicos
Los operadores lgicos de MATLAB son los
siguientes:
& and
| or
~ negacin lgica

28

Tutorial de MATLAB

MATLAB tiene diversos tipos de funciones


1.- Funciones matemticas elementales.
2.- Funciones especiales.
3.- Funciones matriciales elementales.
4.- Funciones matriciales especficas.
5.- Funciones para la descomposicin y/o factorizacin de matrices.
6.- Funciones para anlisis estadstico de datos.
7.- Funciones para anlisis de polinomios.
8.- Funciones para integracin de ecuaciones diferenciales ordinarias.
9.- Resolucin de ecuaciones no-lineales y optimizacin.
10.- Integracin numrica.
11.- Funciones para procesamiento de seal.
29

Tutorial de MATLAB

Funciones matemticas elementales que


operan de modo escalar
sin(x) seno
cos(x) coseno
tan(x) tangente
asin(x) arco seno
acos(x) arco coseno
atan(x) arco tangente (devuelve un ngulo entre -p/2 y +p/2)
atan2(x) arco tangente (devuelve un ngulo entre -p y +p); se
le pasan 2 argumentos, proporcionales al seno y al coseno
30

Tutorial de MATLAB

Funciones matemticas elementales que


operan de modo escalar

sinh(x) seno hiperblico


cosh(x) coseno hiperblico
tanh(x) tangente hiperblica
asinh(x) arco seno hiperblico
acosh(x) arco coseno hiperblico
atanh(x) arco tangente hiperblica
log(x) logaritmo natural
log10(x) logaritmo decimal
exp(x) funcin exponencial
sqrt(x) raz cuadrada

31

Tutorial de MATLAB

Funciones matemticas elementales que


operan de modo escalar
sign(x) devuelve -1 si <0, 0 si =0 y 1 si >0. Aplicada a un
nmero complejo, devuelve un vector unitario en la misma
direccin
rem(x,y) resto de la divisin (2 argumentos que no tienen que
ser enteros)
mod(x,y) similar a rem (Ver diferencias con el Help)
round(x) redondeo hacia el entero ms prximo
fix(x) redondea hacia el entero ms prximo a 0
floor(x) valor entero ms prximo hacia -
32

Tutorial de MATLAB

Funciones matemticas elementales que


operan de modo escalar

ceil(x) valor entero ms prximo hacia +


gcd(x) mximo comn divisor
lcm(x) mnimo comn mltiplo
real(x) partes reales
imag(x) partes imaginarias
abs(x) valores absolutos
angle(x) ngulos de fase

33

Tutorial de MATLAB

Funciones que actan sobre vectores


Las siguientes funciones actan sobre vectores (no sobre
matrices ni sobre escalares)
[xm,im]=max(x) mximo elemento de un vector. Devuelve el valor
mximo xm y la posicin que ocupa im
min(x) mnimo elemento de un vector. Devuelve el valor mnimo y
la posicin que ocupa
sum(x) suma de los elementos de un vector
cumsum(x) devuelve el vector suma acumulativa de los
elementos de un vector (cada elemento del resultado es una
suma de elementos del original)
34

Tutorial de MATLAB

Funciones que actan sobre vectores


mean(x) valor medio de los elementos de un vector
std(x) desviacin tpica
prod(x) producto de los elementos de un vector
cumprod(x) devuelve el vector producto acumulativo de los
elementos de un vector
[y,i]=sort(x) ordenacin de menor a mayor de los elementos de
un vector x.
Devuelve el vector ordenado y, y un vector i con las posiciones
iniciales en x de los elementos en el vector ordenado y.
35

Tutorial de MATLAB

Funciones que actan sobre matrices


FUNCIONES MATRICIALES ELEMENTALES:
B = A' calcula la traspuesta (conjugada) de la matriz A
B = A.' calcula la traspuesta (sin conjugar) de la matriz A
v = poly(A) devuelve un vector v con los coeficientes del polinomio caracterstico
de la matriz cuadrada A
t = trace(A) devuelve la traza t (suma de los elementos de la diagonal) de una
matriz cuadrada A
[m,n] = size(A) devuelve el nmero de filas m y de columnas n de una matriz
rectangular A
n = size(A) devuelve el tamao de una matriz cuadrada A
nf = size(A,1) devuelve el nmero de filas de A
nc = size(A,2) devuelve el nmero de columnas de A
36

Tutorial de MATLAB

FUNCIONES MATRICIALES ESPECIALES


Las funciones exp(), sqrt() y log() se aplican elemento a elemento a
las matrices y/o vectores que se les pasan como argumentos
expm(A) si A=XDX', expm(A) = X*diag(exp(diag(D)))*X'
sqrtm(A) devuelve una matriz que multiplicada por s misma da la
matriz A
logm() es la funcin recproca de expm(A)
A^n est definida si A es cuadrada y n un nmero real. Si n es
entero, el resultado se calcula por multiplicaciones sucesivas. Si n es
real, el resultado se calcula como: A^n=X*D.^n*X' siendo [X,D]=eig(A)
37

Tutorial de MATLAB

Funciones para clculos con polinomios


Para MATLAB un polinomio se puede definir mediante un vector de coeficientes. Por ejemplo, el polinomio:
x4 - 8x 2 + 6x - 10 = 0
Se puede representar mediante el vector [1, 0, -8, 6, -10]. MATLAB puede realizar diversas operaciones sobre l,
como por ejemplo evaluarlo para un determinado valor de x (funcin polyval()) y calcular las races (funcin roots()):
>> pol=[1 0 -8 6 -10]
pol =
1 0 -8 6 -10
>> roots(pol)
ans =
-3.2800
2.6748
0.3026 + 1.0238i
0.3026 - 1.0238i
>> polyval(pol,1)
ans =
-11
38

Tutorial de MATLAB

MATLAB utiliza una funcin llamada conv() (de producto de convolucin). En el


siguiente ejemplo se va a ver cmo se multiplica un polinomio de segundo grado
por otro de tercer grado:
>> pol1=[1 -2 4]
pol1 =
1 -2 4
>> pol2=[1 0 3 -4]
pol2 =
1 0 3 -4
>> pol3=conv(pol1,pol2)
pol3 =
1 -2 7 -10 20 -16
39

Tutorial de MATLAB

Para dividir polinomios existe otra funcin llamada deconv().


Las funciones orientadas al clculo con polinomios son las
siguientes:
poly(A) polinomio caracterstico de la matriz A
roots(pol) races del polinomio pol
polyval(pol,x) evaluacin del polinomio pol para el valor de x. Si
x es un vector, pol se evala para cada elemento de x
polyvalm(pol,A) evaluacin del polinomio pol de la matriz A
conv(p1,p2) producto de convolucin de dos polinomios p1 y p2
40

Tutorial de MATLAB

[c,r]=deconv(p,q) divisin del polinomio p por el polinomio q.


En c se devuelve el cociente y en r el resto de la divisin
residue(p1,p2) descompone el cociente entre p1 y p2 en
suma de fracciones simples (ver >>help residue)
polyder(pol) calcula la derivada de un polinomio
polyder(p1,p2) calcula la derivada de producto de polinomios
polyfit(x,y,n) calcula los coeficientes de un polinomio p(x) de
grado n que se ajusta a los datos p(x(i)) ~= y(i), en el sentido
de mnimo error cuadrtico medio.
41

Tutorial de MATLAB

interp1(xp,yp,x) calcula el valor interpolado para la


abscisa x a partir de un conjunto de puntos dado por
los vectores xp e yp.
interp1(xp,yp,x,'m') como el anterior, pero permitiendo
especificar tambin el mtodo de interpolacin. La
cadena de caracteres m admite los valores 'nearest',
'linear', 'spline', 'pchip', 'cubic' y 'v5cubic'.

42

Tutorial de MATLAB

43

Tutorial de MATLAB
EL INDICADOR :
command

El smbolo en la pantalla principal (


window) nos indica que MATLAB esta

esperando

que introduzcamos un comando o una

variable.

Para salir de MATLAB cuando sea

pertinente use

los comandos quit o exit.


ESCALAR, VECTOR Y MATRIZ:
denomina escalar.
una sola fila o
vector; para ser
vector columna.
Matriz :
-2

A = 2.5 Un slo dato se


B = 2.5, 6.4 Si una matriz tiene
una sola columna, la llamamos
ms claros llamamos vector fila o
44

El tamao de una matriz se especifica

Tutorial de MATLAB

ESTILO
Matlab es sensible a la diferencia entre maysculas y
minsculas, as que los nombres Espacio, ESPACIO y espacio
representan tres variables distintas.
Matlab tiene la posibilidad de manejar nmeros reales (ejem. 12.7 10-2
se escribe 12.7 e-2 ) el nmero complejo de parte real 5 y parte
imaginaria 2 se representa en matlab 5+2*i o como 5+j*2, las letras
i y j se preasignan ambas en matlab para ser Iguales a -1. otras
constantes son pi para .

DEFINICIN DE UNA MATRIZ


La forma ms sencilla de definir una
matriz
es usar una lista de nmeros, como :
A = [4.5]
B = [1.6, 3.1]
C = [-2,0,3; 3,-4,5; 0,0,2]
45

Tutorial de MATLAB
PUNTOS SUSPENSIVOS
Si hay demasiados nmeros en una fila
de una matriz para que quepan en una lnea, podemos continuar la
instruccin en la siguiente lnea, pero se requiere una coma y tres
puntos al final de la lnea para indicar que la fila debe continuar.
Ejemplo:
H = [-2,0,-3,4,-3,-4,5,0,0,2,1,1,1,3,4,-0.2]
que se puede escribir
como:
H = [-2,0,-3,4,-3,-4,...
5,0,0,2,1,1,1,3,4,-0.2]
MATLAB tambin nos permite definir una matriz que ya se defini:
Ejemplo:
B =[1.5, 4.1]
D = [-3, B] este comando equivale a
D = [-3,1.5,4.1]

46

Tutorial de MATLAB

Tambin podemos modificar los valores de una matriz o agregar valores


adicionales usando una referencia a un lugar especfico. Por ejemplo:
D(3) = 6 ;
Cambia el tercer valor de la matriz D del valor 4.1 por 6,
para
quedar como:
D = [-3,1.5,6]
As tambin logramos extender una matriz definiendo nuevos
elementos.
Si ejecutamos el siguiente comando
D(4) = 2.5 ; La matriz D tendr cuatro valores en lugar de tres, as D
se
ver como
D = [-3, 1.5, 6, 2.5];
El punto y coma ; termina la instruccin y oculta la exhibicin del
resultado de la operacin.
Teclee D = [-3, 1.5, 6, 2.5]
ahora
Teclee D = [-3, 1.5, 6, 2.5];
47

Tutorial de MATLAB
AHORA SI EMPIECE A TECLEAR DATOS Y COMANDOS DE LOS
SIGUIENTES EJERCICIOS SLO TECLEA LOS VECTORES NO
ESCRIBAS EL COMENTARIO %
El punto y coma ; termina la instruccin y oculta la exhibicin del resultado de la
operacin.
Teclee
D = [-3, 1.5, 6, 2.5]
ahora
Teclee D = [-3, 1.5, 6, 2.
B = [ 2; 4; 6; 10]
C = [ 5, 3, 5 ; 6, 2, 3 ]
E = [ 3, 5, 10, 0; 0, 0 , ...
0, 3; 3, 9, 9, 8 ]

% DEFINE UN VECTOR COLUMNA.


% DEFINE UNA MATRIZ 2 x 3.
% COMA Y TRES PUNTOS PARA CONTINUAR
UNA LINEA.

T = [ 4, 24, 9 ]
Q = [ T, 0, T ]
V = [ C ( 2, 1); B ]
A (2, 1) = - 3

% INTERCALA UN VALOR DE CERO ENTRE


DOS VECTORES.
% DE LA MATRIZ C SELECCIONA EL
VALOR (m, n) Y LO AGREGA AL VECTOR B.
% CREA UNA MATRIZ LLAMADA A Y LE
ASIGNA EL VALOR DE 3 EN (m, n)

48

Tutorial de MATLAB
Lee los siguientes comentarios y prueba su validez:
El operador de dos puntos es til para generar matrices nuevas;
Si se usa un signo de dos puntos para separar dos enteros, el operador de
dos puntos generara todos los enteros entre los dos enteros especificados.
tecle:
n = 1 : 10
ndices

% Este operador es especialmente til para generar los


de tiempo de una seal de tiempo discreto.

Tambin se usan los signos de dos puntos para separar tres nmeros, el
operador de dos puntos generar valores entre el primer nmero y el
tercero, usando el segundo nmero como incremento:
tecle:
t = 0.0:0.5:6.0 % este operador es especialmente til para generar los
ndices de tiempo continuo o un dominio de una funcin
analgica.
El incremento tambin puede ser negativo
tecle:
49
r = 15:-1:0

Tutorial de MATLAB
EN LO SUSECIVO TRATE EN CADA EJEMPLO DONDE LO CREA ADECUADO
DE PROBAR LA AUTENTICIDAD DE LOS COMANDOS
Funciones especiales para generar matrices nuevas.
La funcin size devuelve dos argumentos escalares que representan el
nmero de filas y el nmero de columnas, podemos usar size para
generar una matriz de ceros que tenga el mismo tamao que la otra
matriz ejemplo:
Tecle
W = [ 4, 3, 2; 4, 6, 3 ];
F= zeros(size ( W ) )
La funcin ones genera una matriz que solo contiene unos.
Tecle
C= [1, 2, 3; 4, 2, 5];
D = ones(size(C))
Algunas ocacines es necesario conocer que variables se hallan
definidas y que valores tienen almcenados el comando who lleva a cabo
esta accin:
Tecle who
Si desea dejar una variable sin definicin (sacarla de la lista ) se utiliza
el comando: clear.
50

Tutorial de MATLAB
Operaciones con escalares , vectores y matrices: Los operadores
matemticos incorporados que se utilizan con frecuencia en matlab
son:
smbolo
significado
smbolo
significado
=

Asignacin

Adicin

Multiplicacin

.^

Potencia del
arreglo

Potenciacin

./

Divisin del
arreglo

Divisin

&

AND lgica

Operadores
relacionales

NOT logica

OR

Transpuesta

Transpuesta no
conjugada

< >

l
==

lgico

Igualdad

.*

Resta
Multiplicacin de
arreglo

51

Tutorial de MATLAB

Tecle el enunciado de asignacin siguiente;


a=3;
b=[2,6,4];
c=[4,10, 2];
los vectores y matrices pueden multiplicarse por un escalar:
tecle:
a*b
ans es el nombre dado a un resultado cuando el usuario no le asigna un
nombre.
Un escalar puede sumarse a un vector o matriz:
tecle:
a+c
La suma de un escalar a un vector o matriz slo aade el escalar a cada
elemento del vector o matriz la resta se define de manera similar:
tecle:
a-b
52

Tutorial de MATLAB
Los vectores y matrices se suman (o restan) como lo hacemos en
matemticas, esto es, los dos vectores o matrices deben tener la misma
forma para sumarse o restarse a menos que uno de ellos sea un matriz de
1*1, un escalar, como lo vimos antes :
tecle:
b+c
c-b
Los vectores y las matrices se multiplican de acuerdo a las reglas del
lgebra:
tecle:
b*c
Este resultado ilustra un error comn en Matlab. Las matrices deben ser
conmensurables para ser multiplicadas utilizando el operador *. La
premultiplicacin de un vector rengln de 1 por 3 como c por un vector
rengln de 1 por 3 como b no esta definida. Sin embargo si c se
transpusiera a un vector columna 3 por 1, se definira la multiplicacin. La
transposicin se efecta con el operador .
tecle:
c
53

b*c

Tutorial de MATLAB
Operaciones elemento por elemento:
A menudo es muy til multiplicar dos vectores o matrices de la misma
forma, elemento por elemento en vez de utilizar las reglas usuales de la
multiplicacin de matrices. Ese tipo de multiplicacin se denomina
multiplicacin del arreglo en Matlab y se lleva a cabo utilizando el
operador .*
Las operaciones elemento por elemento, u operaciones de arreglos, no
slo se aplican a operaciones entre dos matrices del mismo tamao, si
no tambin a operaciones entre un escalar y un no escalar.
As pruebe las instrucciones de cada uno de los siguientes juegos:
tecle:
A = [ 4, 3, 2, 4, 6 ];
C = 3.*A
G = A./5
Las vectores resultantes C y G tendrn el mismo tamao que A.
54

Tutorial de MATLAB
A fin de ilustrar las operaciones de arreglos para vectores, considere los
dos siguientes vectores fila:
Tecle:
B = [ -6, 3, -2, 4, 6 ];
Calculemos el producto de arreglos de A y B usando las siguientes
instrucciones:
Tecle:
L = A.*B
El comando de divisin de arreglos,
Tecle:
F=A./B
Asimismo la exponenciacin de arreglos tambin es una operacin
elemento por elemento ejemplos;
Tecle:
Z = A.^2
M = A.^B
Tambin podemos usar una base escalar con un exponente vector
como;
P= 3.^A

55

Tutorial de MATLAB
Los ejemplos anteriores utilizaron vectores, pero las mismas reglas se
aplican a matrices con filas y columnas, como lo podrs constatar
declarando la matriz d ejecutando las operaciones indicadas:
d= [ 1:6; -1:-1:-6 ];
f=d.*6
w=d.^2
GRAFICA X vs. Y: Grficas x vs. y sencillas. Suponga que queremos
graficar los siguientes datos recabados de un experimento con un modelo
de coche de control remoto. El experimento se repite 10 veces, midiendo la
distancia que un mvil recorre en cada ensayo.
(x) Ensayo
1
2
3
4
5
6
7
8
9
10

(y) Distancia
58.5
63.8
64.2
67.3
71.5
88.3
90.1
90.6
89.5
90.4

56

Tutorial de MATLAB
Pruebe generar esta grfica: creando un vector llamado x con los datos
de la columna Ensayo, y un vector llamado y con los datos de la
columna Distancia y en seguida teclee :
plot (x, y), grid y de enter
Se genera automticamente la grfica.
La buena prctica de ingeniera exige la inclusin de unidades y un
titulo
Por lo tanto en el cdigo anterior incluya los siguientes comandos:
plot(x,y), title (Grfica de experimento), xlabel ( Ensayo), ylabel
(Distancia), grid
Si se agrega un tercer argumento en el comando plot ste controla el
color y el estilo de la grfica. Es una cadena la que determina el color
de la lnea, estilo de la misma y los smbolos (si los hay ) utilizado para
los puntos de marca, por tanto intente dar elegancia a su grafica
anterior agregando al comando plot:
57

plot (x,y,ro), grid

Tutorial de MATLAB
LISTA DE CARACTERES
COLOR
y
amarillo
m
magenta
c
cyan
r
rojo
guionada
g
verde
b
azul
w
blanco
k
negro

MARCADOR
.
punto
o
circulo
x
marca x
+
ms
*
d
v
^

ESTILO DE LINEA
continua
:
punteada
-.
guin-punto
--

asterisco
s
cuadrado
diamante
triangulo(hacia abajo)
triangulo (hacia arriba)
58

Tutorial de MATLAB
Los archivos .m o archivos .M
Este tipo de archivo es de lo ms importe que se puede generar por el
usuario en MATLAB, es un archivo que ejecuta las instrucciones programadas
en l, y que pueden convertirse en un comando de matlab.
Ahora tu crearas un archivo .m
Desde la ventana de matlab selecciona new, M-file
Aparecer un blok de notas dentro de l, declara las siguientes variables:
Tecle:
t =[0:0.001:2]; % Este vector se puede tambin generar con:
linspace(0,0.001,2).
m = 2;
y = m .*t;
plot(t, y, 'r', linewidth,4),grid %linewidth, 4 : te da el grueso de la linea.
Despus guarda este cdigo en el mismo blok de notas en la parte superior (
file save en el drive e: pendiente.m si es memoria USB) con el nombre
pendiente.m, est nombre de archivo se convierte en un comando de Matlab
con el nombre pendiente.
Ejectalo en la pantalla de comandos llamndolo slo con su nombre
pendiente sin la extensin.m (antes de llamarlo recuerda cambiarte de
directorio del C: al e: con la instruccin cd e: si es el caso) .
Este archivo .m puedes llevarlo a otra computadora que tenga el programa
59
matlab y ejecutarlo .

Tutorial de MATLAB

MATLAB provee excelentes funciones para grficas en una y dos


dimensiones.
Veamos un par de ejemplos sencillos. Suponga que queremos trazar
la grfica de la funcin
y=t^2*e(-t.^2);
Esto lo podemos lograr con las instrucciones:
Tecle:
t=[-10:.1:10];
% La primera instruccin divide el
intervalo
[-10,10]en subintervalos de largo 0.1
y=t .^2 .*exp(-t.^2);
% Esta lnea evala la funcin
en los puntos.
plot(t,y,'linewidth',4),grid
% Grafica la funcin.

60

Tutorial de MATLAB

Supongamos ahora que queremos dibujar una superficie:


Tecle:
x=-10:0.5:10; %Las primeras dos
instrucciones dividen los ejes de
x" y "y" en subintervalos de largo 0.5.
y=x;
[X,Y]=meshgrid(x,y); %la tercera instruccin genera una rejilla en el
conjunto [-10,10] x [-10,10] con cuadraditos de lados 0.5 ,
Z=X.^2.*exp(-Y.^2);
% La cuarta instruccin evala la funcin
en los puntos de la rejilla, y finalmente
trazamos la superficie
con surf.
surf(X,Y,Z),title('Grafica de superficie')

61

Tutorial de MATLAB
GRAFICAS LINEALES Y LOGARTMICAS:
La mayor parte de las grficas
que generamos dan por hecho que los ejes x vs. y se dividen en intervalos
equiespaciados; estas grficas se llaman grficas lineales. Una escala
logartmica (de base 10) es til cuando una variable abarca varios rdenes de
magnitud.
Los comandos MATLAB para generar grficas lineales y logartmicas de los
vectores x y y son los siguientes
plot (x,y)
semilogx (x,y)
escala
semilogy (x,y)
escala

Genera una grfica lineal con los valores de x y y.


Genera una grfica de los valores de x y y usando una
logartmica para x y una escala lineal para y.
Genera una grfica de los valores de x y y usando una

lineal para x y una escala logartmica para y.


loglog (x,y)
Genera una grfica de los valores de x y y usando escalas
logartmicas tanto para x como para y.
Ms adelante se ver como utilizar estos comandos (tarea cdigo No.2)
62

Tutorial de MATLAB
GRAFICAS MULTIPLES: Una forma sencilla de generar curvas
mltiples en la misma grfica es usar mltiples argumentos en
un comando de graficacin, como en
Plot (x, t, y ,t) Al ejecutarse este programa, se traza la curva
correspondiente a x versus t, y luego se traza en la misma
grafica la curva correspondiente y versus t.
Ms adelante se ver como utilizar estos comandos ( tarea
cdigo 3).
Tarea: Comenta (con %) los comandos en los siguientes tres
cdigos, usa archivos .M, imprime tus graficas y presntalos al
maestro del curso son parte de la evaluacin del mismo.

63

Tutorial de MATLAB
Cdigo No.1
v1=[0:0.001:.7979];
w1=298;
q=1.6022e-19;
n=1.5;
k=1.38e-23;
num1=q.*v1;
den1=n*k*w1;
M1=num1./den1;
x1=1e-9.*exp(M1);
v2=[0:0.0001:.6379];
w2=358;
num2=q.*v2;
en2=n*k*w2;
M2=num2./den2;
x2=1024e-9.*exp(M2);
plot(v1,x1,'b',v2,x2,'r'), title('ECUACION DEL DIODO'),
legend('TEMPERATURA 298k', 'TEMPERATURA 358k'), grid

64

Tutorial de MATLAB
SUBGRFICAS: El comando subplot permite dividir la ventana de
grficos en subventanas. Las posibles divisiones pueden ser dos
subventanas o cuatro subventanas o incluso 8 ventanas en una hoja..
Los argumentos del comando subplot son tres enteros: (m, n, p). Los
dgitos m y n especifican que la ventana de grficos se divida en una
retcula de m por n ventanas ms pequeas, y el digito p especifica la
p-sima ventana para la grfica actual ( donde se ubica esta grafica) .
Las ventanas se numeran de izquierda a derecha y de arriba abajo.
Por ejemplo el siguiente comando Subplot(2,1,1), plot(x,y) especifica
que la ventana de grficos se divida en una grafica superior y una
inferior ( dos lneas de graficas en una columna ) y que la grafica
actual plot(x,y) se coloque en la ventana superior (cdigo No.2).
El siguiente juego de instrucciones genera cuatro graficas que
ilustran la funcin del comando subplot empleando escalas lineales
y logartmica.

65

Tutorial de MATLAB
Cdigo No. 2
t=[0:0.001:1];
f=2;
w=2*pi*f;
x=((1/2).*(1+cos(2*w.*t)));
subplot(2,2,1),plot(t,x,'r','linewidth',2),grid,...
subplot(2,2,2),semilogx(t,x,'b','linewidth',2),grid,...
subplot(2,2,3),semilogy(t,x,'r','linewidth',2),grid,...
subplot(2,2,4),loglog(t,x,'b','linewidth',2),grid
Cdigo No. 3
t=[-6*pi:.001:6*pi];
w1=2/3;
w2=1/2;
w3=1/3;
x1=2.*sin(w1.*t);
x2=3.*sin(w2.*t);
x3=4.*sin(w3.*t);
plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide
completa un numero entero de ciclos'),grid

66

Tutorial de MATLAB

Cdigo No. 3
t=[-6*pi:.001:6*pi];
w1=2/3;
w2=1/2;
w3=1/3;
x1=2.*sin(w1.*t);
x2=3.*sin(w2.*t);
x3=4.*sin(w3.*t);
plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide
completa un nmero entero de ciclos'),grid

67

Tutorial de MATLAB

Cdigo No.4
t=0:.001:1;
x=2*sin(8*pi*t);
plot(t,x,'r','linewidth',2),grid
n=0:1:15;
y=2*sin(8*pi*(1/15)*n);
subplot(2,1,1),plot(t,x,'r','linewidth',3),grid,subplot(2,1,2),st
em(n,y,'linewidth',3),grid

68

Tutorial de MATLAB

69

Tutorial de MATLAB

Intenta crear una grafica usando el ciclo for

Tele
t=[-1:.005:1];
f=1;
w0=2*pi*f;
x=1.5*ones(size(t));
for i=1:100;
x=x+((-1)^(i+1))*(1/i)*sin(i*w0.*t);
end
plot(t,x,'r','linewidth',2), grid

70

Tutorial de MATLAB

Una ms
t=[-2:0.001:2];
x=0.25*ones(size(t));
for m=1:2:99
x=x+(-1)^((m-1)/2)*1/(m*pi)*exp(i*m*pi*t);
end
plot(t,x,'r','linewidth',2),grid

Saca tus conclusiones

71

Tutorial de MATLAB

Libro que se recomienda para ejercitar Matlab:


Solucin de problemas de Ingeniera con
Matlab,Delores M. Etter, Edit. Prentice Hall.
Tutorial elaborado por El Mtro. Juan Gustavo Ruiz Barajas
mayo 2009

72

Vous aimerez peut-être aussi