Beruflich Dokumente
Kultur Dokumente
LABORATORIO DE ELECTRNICA A
PRCTICA #2
MANUAL DE MATLAB
COMANDOS Y FUNCIONES PRINCIPALES
Estudiante:
Michelle Esther Vilema Lazo
Profesor:
Ing. Dennys Cortez
Paralelo: 1
II Trmino 2012
MATLAB
MATLAB (Matrix Laboratory) es un software especializado desarrollado por
MathWorks de programacin matemtica idneo para la investigacin cientfica y
para diversas aplicaciones en general. En otras palabras, MATLAB es un lenguaje
de alto nivel para la computacin tcnica, tal y como lo definen sus creadores. Esto
integra computacin, visualizacin y una programacin de un medio ambiente de
fcil uso donde los problemas y las soluciones son expresados en una notacin
matemtica familiar. Las rutinas de MATLAB son frecuentemente encontradas
cuando se quiere trabajar con matrices ya que el lenguaje de programacin que es
utilizado por el software es como un tipo de hbrido entre lenguaje C con una
orientacin en matrices.
Variables
Vectores y Matrices
MATLAB trabaja habitualmente con valores matriciales, de ah que su
definicin y manejo sean fundamentales. Veamos la definicin de este tipo de
variables y el manejo de sus elementos.
vector=[a, b, c, d, ? m]
vector=[a; b; c;, d; ? m]
Define un vector columna, cuyos elementos son los valores a, b, c,
d, m.
variable=[primer_elemento:ltimo_elemento]
Define el vector cuyos primeros y ltimo elementos son los
especificados, y los elementos intermedios se diferencian en una
unidad.
variable=[primer_elemento:incremento:ltimo_elemento]
Define el vector cuyos primeros y ltimo elementos son los
especificados, y los elementos intermedios se diferencian en la
cantidad especificada por el incremento
variable=linspace(primer_elemento,ltimo_elemento,n)
Define el vector cuyos primeros y ltimo elementos son los
especificados, y que tiene en total n elementos uniformemente
espaciados entre los extremos.
variable=logspace(primer_elemento,ltimo_elemento,n)
Define el vector cuyos primeros y ltimo elementos son los
especificados, y que tiene en total n elementos en escala logartmica
uniformemente espaciados entre s.
Para definir una matriz en Matlab, basta con introducir entre corchetes
todos sus vectores fila separados por punto y coma. Los vectores se pueden
introducir separando sus componentes por espacios en blanco o por comas.
Define una matriz cuyas filas vienen dadas por los valores de los
vectores fila, que deben tener la misma longitud.
A continuacin mostramos la manera de manejar los elementos de este tipo
de variables.
Michelle Vilema Lazo. Laboratorio de Electrnica A. Paralelo 1.
x(n)
x([n,m,p])
Devuelve los elementos del vector x situados en las posiciones nsima, m-sima y p-sima.
x(n:m)
x(n:p:m)
A(m,n)
A(n:m,p:q)
A(a:p:b,c:q:d)
A(:,p:q)
A(n:m,:)
A(n,:)
A(:,p)
A(:)
A(:,:)
[A,B,C]
Variables simblicas
Matlab considera simblica cualquier expresin que se introduzca
entre comillas simples. Las variables de estas expresiones son variables
simblicas.
symvar(expr)
sym(x)
numeric(x)
symrat(x)
digits(d)
digits
svdvpa(x)
vpa(expr,n)
pretty (expr)
Variables especiales
En MATLAb existen variables de uso comn, cuyo valor viene ya
preasignado.
o
pi
31415926535897...
o
ij
inf
Ejecucin archivo .m
Slo hay que poner su nombre, sin la extensin, en el Command
Windows.
Editor archivos .m
Edit es un editor donde podemos escribir instrucciones que no se
ejecutan hasta que lo invoquemos en la ventana principal.
Una vez abierto, tiene la siguiente presentacin:
disp(mensaje) disp(texto)
Muestra un texto o una matriz de texto por pantalla. Para
combinar informacin numrica y texto en un comando
disp se deben utilizar las instrucciones int2str, num2str y
mat2str.
x = menu (ttulo, opcin_a [,opcin_b, ..., opcin_k])
Genera un men que permite al usuario elegir entre
distintas opciones.
error(mensaje)
Enva un mensaje a pantalla, informando al usuario que
ha ocurrido un error y detiene la ejecucin del programa,
devolviendo el control al teclado.
echo on/off
Activa o desactiva la escritura de cada instruccin del
fichero sobre la pantalla
pause (10)
Detiene la ejecucin del fichero hasta que se pulse alguna
tecla o transcurre el n indicado de segundos
keyboard
Detiene la ejecucin de un fichero y permite al usuario
intercalar una serie de instrucciones. La ejecucin
continuar cuando hagamos return desde la ventana de
instrucciones
load file
double: Salva
Tabs: Separa
anteriores).
Programacin en MATLAB
Al igual que en los lenguajes de alto nivel, MATLAB permite crear
programas utilizando programacin estructurada. Asimismo utiliza muchos
de los recursos de la programacin orientada a objetos.
Condicin
Sentencia 1
NO
Sentencia 2
Sentencia 3
Condiciones mltiples
El esquema explicativo es el siguiente:
S
Condicin 1
Sentencia 1
NO
S
Condicin 2
Sentencia 2
NO
S
Condicin 3
Sentencia 3
if condicin_1
Instrucciones a ejecutar cuando se verifica la condicin 1
elseif condicin_2
Instrucciones a ejecutar cuando no se verifica la condicin 1 y s
la
condicin_2
elseif condicin_3
Instrucciones a ejecutar cuando no se verifican las condiciones
anteriores y s la condicin_3
else
Instrucciones a ejecutar cuando no se verifican las condiciones
anteriores
end
== (igual)
(mayor)
< (menor)
~= (distinto)& (and)
| (or)
Bucles
Permite repetir comandos un nmero determinado de veces. Hay
varias formas de utilizarlos, pero la ms sencilla es:
for var = vector
Instrucciones que deben ejecutarse
end
El argumento vector puede ser efectivamente un vector, en cuyo caso la
variable va tomando los valores de las componentes del vector, o una
estructura de la forma inicio : incremento : fin, en cuyo caso la variable va
tomando valores desde inicio hasta fin con un determinado incremento. Si no
se indica el valor del incremento, este se toma como unidad. El nmero de
veces que se repite el bucle viene dado por la dimensin del vector. La
ejecucin del bucle puede interrumpirse en cualquier momento mediante la
instruccin break.
Ejemplo
Dada una funcin tal que: f (t ) 3 e
t
100
El resultado es el siguiente:
Ramificacin mltiple
Se utiliza mucho para crear mens. El esquema explicativo es el
siguiente:
valor 3
variable
Distinto
valor 2
valor 1
Cadenas de caracteres
MATLAB trabaja tambin con cadenas de caracteres, con ciertas
semejanzas y tambin diferencias respecto a C/C++ y Java. A continuacin se
explica lo ms importante del manejo de cadenas de caracteres en MATLAB.
Las funciones para cadenas de caracteres estn en el sub-directorio
toolbox\matlab\strfun del directorio en que est instalado MATLAB.
Los caracteres de una cadena se almacenan en un vector, con un
carcter por elemento. Cada carcter ocupa dos bytes. Las cadenas de
caracteres van entre apstrofos o comillas simples, como por ejemplo:
'cadena'. Si la cadena debe contener comillas, stas se representan por un
doble carcter comilla, de modo que se pueden distinguir fcilmente del
principio y final de la cadena. Por ejemplo, para escribir la cadena ni idea se
escribira 'ni''idea'.
Una matriz de caracteres es una matriz cuyos elementos son
caracteres, o bien una matriz cuyas filas son cadenas de caracteres. Todas las
filas de una matriz de caracteres deben tener el mismo nmero de
elementos. Si es preciso, las cadenas (filas) ms cortas se completan con
blancos. A continuacin se pueden ver algunos ejemplos:
o
c='cadena'
c=
cadena
double(c) % convierte en
nmeros ASCII cada carcter
ans =
99
97
100
101
110
char(abs(c)) % convierte
nmeros ASCII en caracteres
ans =
cadena
double(c)
Convierte en nmeros ASCII cada carcter char(v) convierte un vector de
nmeros v en una cadena de caracteres
char(c1,c2)
disp(c)
ischar(c)
isletter()
isspace()
strcmp(c1,c2)
strcmpi(c1,c2)
strncmp(c1,c2,n)
c1==c2
s=[s,' y ms']
findstr(c1,c2)
strmatch(cc,c)
strrep(c1,c2,c3)
[p,r]=strtok(t)
int2str(v)
num2str(x,n)
str2double(str)
vc=cellstr(cc)
Comandos de impresin
Dentro de los comandos ms tiles de Matlab, similares a disp se
encuentran sprintf y fprintf, que permiten la impresin de datos con
formatos ms complejos.
Cada vez que se indica en el sprintf o fprintf con %g indica que ah va
el valor de las variables. El texto que queremos como respuesta se delimita
con el uso de las comillas simples, y despus hay que indicar cuales son las
variables a las que quiero hacer referencia con el uso de %g, en este caso t y
f. La forma de utilizarlos es la siguiente:
Funciones
Una funcin se define mediante un m- fichero, cuyo nombre coincide
con el de la funcin. La primera lnea ejecutable la palabra function. Su
sintaxis
es
functionargumentos_salida=
nombre_funcin
(argumentos_entrada) seguida de las instrucciones necesarias. Cuando hay
ms de un argumento de salida, stos deben ir entre corchetes y separados
por comas. Es conveniente utilizar las primeras lneas del fichero comentario
(iniciandolas con '%'), explicando cmo debe usarse la funcin y sus
argumentos (tanto de entrada como de salida). As, dicha definicin ser
visible mediante la instruccin help nombre-funcin.
La funcin puede finalizarse en cualquier punto utilizando la
instruccin return. Las variables definidas en la funcin (salvo los
argumentos) son locales. Para que el valor de una variable sea compartido por
varias funciones se emplea la instruccin global, cuya sintaxis es global
variable, y debe aparecer en todas las funciones que la compartan
Una funcin utiliza las siguientes instrucciones para verificar el
nmero de argumentos:
nargn
nmero de argumentos de entrada que el usuario ha
pasado a la funcin.
nargout
nmero de argumentos de salida que el usuario desea
recibir de la funcin
nargchk
verifica que el nmero de argumentos de entrada
calculados con nargin es vlido, devolviendo en caso
contrario un mensaje de error.
Para la evaluacin de una funcin tambin puede utilizarse la
instruccin feval. feval (file,arg1,arg1,..,argn) Evala la funcin file,
almacenada en file.m, con los valores de los argumentos arg1,arg2,...,argn.
ara definir funciones de una sla variable se puede utilizar la definicin
simblica mediante nombre= funcin Para hallar el valor de la funcin nombre
en un punto a se utiliza el comando subs, cuya sintaxis es la siguiente:
La orden Help
La orden Help sirve para obtener ayuda sobre un tema conocido.
Escribiendo help y a continuacin la orden sobre la que queremos obtener
informacin, por ejemplo help sqrt, aparece en la pantalla la informacin
sobre esta orden. Si o sabemos el tema exacto sobre el que queremos ayuda
escribiendo nicamente help obtenemos una gua en la que aparecen las
distintas categoras sobre las cuales podemos pedir ayuda. Como una
alternativa para obtener ayuda podemos utilizar la opcin Help del men
principal. Llevando el puntero del ratn sobre la palabra Help que aparece en
la barra situada en la parte superior de la ventana (Barra de men) y
pulsando el botn izquierdo del ratn (clic) se obtiene un men desplegable.
Operadores lgicos
Cuando deseamos comparar variables, al igual que cuando hemos
determinado las caractersticas de una variable (ver 1.2.4), se necesitan
operadores cuyo resultado sea boleano (cierto o falso). Para ello se cuenta con
los operadores lgicos
Operador/Funcin que desempea
< Menor (para complejos slo afecta a partes reales)
<= Menor o igual (slo afecta a partes reales)
> Mayor (slo afecta a partes reales)
>= Mayor o igual (slo afecta a partes reales)
x==y Igualdad (afecta a los nmeros complejos)
eAyB
xor(A,B) OR exclusivo (XOR) o diferencia simtrica de A y B
Funciones matemticas
La librera MATLAB dispone de una gama muy completa de funciones
predefinidas que se corresponden con las funciones matemticas ms
utilizadas.
Funcin/Inversa/Hiperblica/Hiperblica Inversa
sin(Z) asin(Z) sinh(Z) asinh(Z)
cos(Z) acos(Z) cosh(Z) acosh(Z)
tan(Z) atan(Z)
atan2(Z)
tanh(Z) atanh(Z)
sec(Z) asec(Z) sech(Z) asech(Z)
csc(Z) acsc(Z) csch(Z) acsch(Z)
cot(Z) acot(Z) coth(Z) acoth(Z)
Funciones exponenciales
Funciones de Lxico
Nmeros Aleatorios
Diferenciacin e Integracin
La derivacin e integracin son dos operaciones bsicas en el estudio y
las aplicaciones del Clculo, adems de ser utilizadas con asiduidad en
multitud de disciplinas de la ingeniera. Para poder aplicar los operadores
derivacin e integracin a una funcin es necesario definirla, previamente, de
una manera simblica.
Clculo de derivadas
diff(f , x) Halla la funcin derivada de f respecto a x. Si no se especifica
la variable de derivacin, deriva con respecto a la variable determinada
por symvar
diff(f , x,n) Halla la funcin derivada ensima de f con respecto a x
diff(f(x,y,z,...), x) Define la derivada parcial de f respecto a x
diff(f(x,y,z,...), x, n) Define la derivada n-sima de f respecto a x
int(f(x), x) Calcula la integral indefinida sobre la variable x
int(f(x), x, a, b) Calcula la integral definida sobre x entre a y b
Resolucin de Sistemas
X=linsolve(A,B) Resuelve A*X =B para una matriz cuadrada A, siendo
B y X matrices
X=A\B Resuelve el sistema A*X=B
X=A/B Resuelve el sistema X*A=B
Operaciones con matrices simblicas
sysub(A,B) Diferencia de las matrices A y B (A menos B)
sympow(A,p) Matriz A elevada a la potencia escalar p
transpose(A) Matriz transpuesta de A (A)
inverse(A) Matriz inversa de la matriz cuadrada A (A-1)
determ(A) Determinante de la matriz cuadrada A
[U,S,V]=singvals(A) o [U,S,V]=svdvpa(A) Devuelve las matrices
ortogonales u y V y la matriz diagonal S con los valores singulares de A
en la diagonal, tales que A =USV
symop(A, operacin1, B, operacin2,C,...) Realiza las operaciones
indicadas entre las matrices simblicas dadas y en el orden especificado.
Este comando permite mezclar todo.
Autovalores y Autovectores
eig(A) Calcula los autovalores de la matriz cuadrada A
[V,D]=eig(A) Calcula la matriz diagonal D de autovalores de A y una
matriz V cuyas columnas son los autovectores
[V,D]=eig(A,B) Calcula la matriz diagonal D de autovalores
generalizados de A y B, y una matriz V cuyas columnas son los
autovectores correspondientes, cumplindose que A*V=B*V*D
Resolucin de ecuaciones y sistema
solve(ecuacin, x) Resuelve la ecuacin en la variable x
solve (ex1,ex2,...,ecn, x1,x2,...,xn) Resuelve n ecuaciones
simultneas ec1,...,ecn en las variables x1,...,xn (sistema de ecuaciones)
Operaciones Matriciales
diag(v) Crea la matriz identidad de orden n
diag(A) Extraer la diagonal de la matriz A como vector columna
eye(n) Crea la matriz identidad de orden n eye(m,n) Crea la matriz de orden mxn con unos en la diagonal
principal y ceros en el resto.
zeros(m,n) Crea la matriz nula de orden mxn
ones(m,n) Crea la matriz de orden mxn con todos sus elementos 1
rand(m,n) Crea una matriz aleatoria uniforme de orden mxn
randn(m,n) Crea una matriz aleatoria normal de orden mxn
reshape(A,m,n) Devuelve la matriz de orden mxn extrada de la
matriz A tomando elementos consecutivos de A por columnas
size(A) Devuelve el orden (tamao) de la matriz A
length(v) Devuelve la longitud del vector v
Operaciones Matriciales
A+B,A-B,A*B Suma, resta y producto de matrices
A\B Si A es cuadrada A\B=inv(A)*B. Si A no es cuadrada A\B es la
solucin en el sentido de mnimos cuadrados del sistema AX=B
B/A Coincide con (A \ B)
An Coincide con A*A*A*.....*A n veces (n escalar)
pA Realiza el clculo slo si p es un escalar
Funciones Matriciales
max(V) Mayor componente (para complejos se calcula max(abs(V)))
min(V) Mayor componente (para complejos se calcula min(abs(V)))
mean(V) Media de los componentes de V
median(V) Mediana de la s componentes de V
std(V) Desviacin tpica de las componentes de V
sort(V) Ordena de forma ascendente las componentes de V. Para
complejos hace la ordenacin segn los valores absolutos
sum(V) Suma los componentes de V
prod(V) Multiplica los elementos de V, con lo que n!=prod(1:n)
cumsum(V) Da el vector de suma acumuladas de V
cumprod(V) Da al vector de productos acumulados de V
diff(V) Da el vector de primeras diferencias de V (Vt-Vt-1)
gradient(V) Aproxima el gradiente de V
del2(V) Laplaciano de V (discreto de 5 puntos)
fft(V) Transformada discreta de Fourier V
fft2(V) Transformada discreta bidimensional de Fourier de V
ifft(V) Inversa de la transformada discreta de Fourier de V
ifft2(V) Inversa de la transformada 2-D discreta de Fourier de V
Grficos
Matlab produce grficos de dos y tres dimensiones, as como contornos
y grficos de densidad. Se pueden representar los grficos y listar los datos,
permite el control de colores, sombreados y otras caractersticas de los
grficos, tambin soporta grficos animados. Los grficos producidos por
Matlab son portables a otros programas.
pola
con el estilo de lnea dado por S, cuyos posibles valores ya fueron
especificados en el comando plot
Ejemplo
Dadas las siguientes funciones representarlas para los valores de t entre 0 y
6.
x t sen (2 t )
y t cos (2 t )
z 0.5 t
Para comprobar a modo de ejemplo la utilizacin de este comando, no es
necesaria la creacin de un programa, se puede utilizar los siguientes
comandos en el Command Windows. Para ello es necesario definir primero las
funciones de la siguiente forma y luego utilizar plot3 para que lo represente.