Beruflich Dokumente
Kultur Dokumente
Introduccin al MATLAB
La idea de estas notas es tratar de manera general, como es el uso de variables, expresiones y comandos
en MATLAB, as como sus caractersticas. Adicionalmente dar una introduccin al uso de los archivos con
extensin .m (programas ejecutables por MATLAB) y como trabajar con ellos.
Manejo de variables:
NO pueden comenzar con un nmero, aunque si pueden tener nmeros (variable1 es un nombre
vlido).
Las myusculas y mnusculas se diferencian en los nombres de variables. (A y a son dos variables
diferentes)
Los nombres de variables no pueden contener operadores ni puntos. (No es vlido usar /, *, -, +, ...)
Si se trabaja con complejos slo puede utilizarse uno de los nombres i y/o j para variables.
No es necesario definir el tipo de variable o tamao (si se usa un vector y despues se expande, no
hay problema)
Manejo de expresiones:
Si cualquiera de las anteriores se escribe en la lnea de comandos (>> ) del MATLAB, l devolver el
nombre de la variable y su valor (en caso de que la expresin tenga nombre, de no tenerlo, MATLAB
devolver Ans = resultado). Un punto importante que se debe resaltar es que esto ocurre siempre y cuando
la expresin no termine con punto y coma. Al aadir un punto y coma al final de la expresin MATLAB no
imprime su valor en la pantalla, aunque si realiza el clculo. (a=3+2; deja en a el valor de 5, pero no lo
muestra).
Manejo de comandos:
Cada comando en MATLAB es un archivo con extensin .m, por lo tanto es necesario tener las libreras en
que se encuentran los comandos que se desean utilizar. Aunque la gran mayora de los comandos
utilizados siempre vienen incluidos en las libreras.
MATLAB NO distingue entre mysuculas y mnusculas en los comandos (a menos que se trabaje en Unix) .
El resto de estas notas tratar cada comando en detalle (los ms usados).
Desde Unix: con el comando "!pico archivo.m" donde archivo es el nombre del
programa.
MATLAB se escribe el
Generalidades.
Comandos de programacin.
Comandos matemticos.
Generalidades
Esta es una breve introduccin al manejo de variables, expresiones y archivos con extensin .m (programas
ejecutables por MATLAB), con respecto a su creacin y uso.
END
Determina hasta cual orden llega el efecto de if, for, y while. (Para ejemplos de su uso ver if, while y for)
IF
Verifica si se cumple cierta condicin, y de acuerdo a si se cumple o no realiza la accin que se desee.
WHILE
Realiza una parte del programa mientras se cumpla alguna condicin.
FOR
Muy parecido al While, pero utiliza un contador, es til si se quiere repetir una parte del programa un
nmero determinado de veces.
CLEAR
Borra todas las variables de la memoria. Es recomendable usarlo al principio de todos los programas.
(simplemente escriba clear; al comienzo del programa)
PLOT
Sirve para obtener resultados grficos en 2D.
DISP
Sirve para escribir texto de salida o vectores. de resultados.
INPUT
Se utiliza para que el programa pida valores de variables mientras se ejecuta.
MATRICES
Asignacin.
Manejo de subndices.
Operaciones matemticas simples (sumar, restar, multiplicar).
Comandos matemticos para matrices (invertir, determinante, valores
propios...).
VECTORES
Asignacin.
Manejo de subndices.
INTEGRALES DEFINIDAS
Se solucionan numricamente por medio del comando TRAPZ.
Comando IF
Verifica si se cumple cierta condicin, y de acuerdo a si se cumple o no realiza la accin que se desee.
Sintaxis:
Comando WHILE
Realiza una parte del programa mientras se cumpla alguna condicin.
Sintaxis:
Comando FOR
Muy parecido al While, pero utiliza un contador, es til si se quiere repetir
una parte del programa un nmero determinado de veces.
Sintaxis:
variable es el contador en s.
Comando PLOT
Sirve para obtener resultados grficos en 2D.
Sintaxis : La sintaxis de la orden es:
plot(x, y);
Comando DISP
Sirve para escribir texto de salida o vectores (y matrices) sin mostrar su
nombre.
Sintaxis: La sintaxis de la orden es:
disp(X);
Comando INPUT
Se utiliza para que el programa pida valores de variables mientras se ejecuta.
Sintaxis:
Donde xxx y yyy son valores introducidos por el usuario en el momento de ejecutar el programa.
10
VECTORES Y MATRICES
Asignacin de valores y subndices:
Los vectores y matrices en MATLAB se trabajan igual en cuanto a asignacin, por eso se explican juntos.
Pero las operaciones posibles, si son diferentes, y estan separadas bajo los encabezados
correspondientes.
Asignacin:
La asignacin de variables en MATLAB es sencilla, y los vectore y matrices no son la excepcin. Cuando se
desea dar el valor a toda una martiz se puede realizar directamente de la siguiente forma:
A=[1 2 3 4; 5 6 7 8; 9 0 1 2];
A=[1, 2, 3, 4; 5, 6, 7, 8; 9, 0, 1, 2];
donde la matriz escrita arriba es:
1
2
3
4
5
6
7
8
9
0
1
2
Las filas se separan por punto y coma y las columnas por espacios o comas. De lo anterior se ve fcilmente
que un vector fila se asigna as:
v=[1 2 3];
v=[1, 2, 3];
Y un vector columna se asigna as:
v=[1; 2; 3];
Manejo de subndices:
Otra forma de asignar valores a una matriz (o un vector) es por medio de los subindices. El menor subindice
utilizado por MATLAB es 1. Y va aadiendo valores a medida que se requieran. Los subindidices se
escriben entre parntesis. Por ejemplo:
A(2, 3)=1; Asigna al elemento en la fila 2, columna 3 el valor de 1.
Si se desea cambiar todo el valor de una fila o una columna, es muy sencillo hacerlo con el operador ":" as:
A(1,:)=[4 5 6];
Asigna a la fila 1 el vector [4, 5, 6] (cambia la fila 1 por 4, 5, 6). As si A era una matriz de 3x3 de ceros,
ahora queda:
4
0
0
5
0
0
6
0
0
Igualmente a veces se requiere trabajar con vectores que son una columna o una fila de una matriz. Esto se
realiza fcilmente guardando este "vector" en un vector , as:
v=A(:,1);
Asigna al vector v la primera columna (completa) de la matriz A.
11
12
Comando NORM
Calcula la norma de un vector o matriz.
Sintaxis:
La sintaxis de la orden es:
Norma = norm(Matriz [, Tipo]);
Los signos [] son para decir que Tipo es opcional. Matriz es la matriz o vector al que se desea
calcular la norma. Tipo es el tipo de norma que se desea calcular. Tipo puede ser una de las
siguientes:
Si se omite: calcula la norma 2
en un vector es la magnitud del vector
2:
calcula la norma 2
inf:
calcula la norma infinito
en un vector es el mximo valor absoluto
en una matriz es la suma ms grande de las filas.
Hay ms, pero las anteriores son las ms utilizadas.
En Norma se almacena el valor de la norma calculada.
Ejemplo simple de uso:
El siguiente ejemplo ilustra el uso de norm: (ver orden de programacin DISP)
%Ejemplo de uso de norm.
A=[1 2; 3 4]
v=[1 2 3 4]
disp('Para la matriz:');
n2=norm(A)
ni=norm(A, inf)
disp('Para el vector:');
n2=norm(v)
ni=norm(v, inf)
% Al escribir una expresin sin punto y coma al final
% MATLAB muestra su valor en pantalla.
Al ejecutar el programa se obtienen como salida los siguientes resultados:
A=
1
3
2
4
v=
1
Para la matriz:
n2 =
5.4650
ni =
7
Para el vector:
n2 =
5.4772
ni =
4
13
Comando MIN
Retorna el (los) menor (es) componente (s) de un vector o matriz. Para el caso de los vectores: retorna el
menor valor contenido en sus componentes. En el caso de una matriz MIN retorna un vector (fila) que
contiene el mnimo elemento que se encontr en cada una de las columnas (la primera componente del
vector tiene el menor elemento en la primera columna de la matriz, y as sucesivamente).
Sintaxis:
La sintaxis de la orden es:
Mnimo = min(matriz);
Matriz es la matriz o vector al que se desea encontrar la (s) mnima (s) componente (s).
En Mnimo se retorna (n) el (los) mnimo (s) valor (es) encontrado (s) en la matriz o vector.
Ejemplo simple de uso:
El siguiente ejemplo ilustra el uso de min:
2
4
v=
3
M=
1
m=
1
14
Comando MAX
Retorna el (los) mayor (es) componente (s) de un vector o matriz. Para el caso de los vectores: retorna el
mayor valor contenido en sus componentes. En el caso de una matriz MAX retorna un vector (fila) que
contiene el mximo elemento que se encontr en cada una de las columnas (la primera componente del
vector tiene el mayor elemento en la primera columna de la matriz, y as sucesivamente).
Sintaxis:
La sintaxis de la orden es:
Mximo = max(Matriz);
Matriz es la matriz o vector al que se desea encontrar la (s) mxima (s) componente (s).
En Mximo se retorna (n) el (los) mximo (s) valor (es) encontrado (s) en la matriz o vector.
2
4
v=
3
M=
3
m=
4
15
Comando SIZE
Devuelve el tamao de la matriz (dimensiones).
Sintaxis:
La sintaxis de la orden es:
[Filas, Columnas] = size(Matriz); (Los simbolos [] se escriben.)
tambin: Tamao = size(Matriz);
Matriz es la matriz a la que se le desea determinar el tamao (dimensiones).
En Filas se almacena el nmero de filas.
En Columnas se almacena el nmero de columnas.
Tamao es un vector (fila) en cuyas componentes se almacenan el nmero de filas y de columnas, siempre
en ese orden.
Ejemplo simple de uso:
El siguiente ejemplo ilustra el uso de size:
2
5
3
6
y=
f=
2
c=
3
16
Comando EIG
Calcula los valores y vectores propios (ortovalores y ortovectores) de la
matriz.
Sintaxis:
La sintaxis de la orden es:
[Vectores, Diagonal] = eig(Matriz); (Los simbolos [] se escriben.)
tambin:
Valores = eig(Matriz);
Matriz es la matriz (cuadrada) a la que se le desea calcular los valores o vectores propios.
Diagonal es una matriz diagonal que contiene los valores propios de Matriz.
Vectores es una matriz en la que se devouelven los vectores propios (unitarios) donde cada columna de la
matriz Vector es un vector propio de matriz; tal que el primer vector corresponde al primer valor propio y as
sucesivamente.
Valores es un vector columna que contiene los valores propios de Matriz.
Ejemplo simple de uso:
El siguiente ejemplo ilustra el uso de eig:
%Ejemplo de uso de eig.
A=[1 2; 3 4]
y=eig(A)
[V, D]=eig(A);
V %Al escribir una expresin sin punto y coma final MATLAB muestra el valor por pantalla
D
Al ejecutar el programa se obtiene la siguiente salida:
A=
1
3
2
4
y=
-0.3723
5.3723
V=
-0.8246 -0.4160
0.5658 -0.9094
D=
-0.3723
0
0 5.3723
17
Comando INV
Sirve para invertir una matriz.
Sintaxis:
La sintaxis de la orden es:
matriz1 = inv(matriz2);
matriz2 es la matriz que se desea invertir En matriz1 se almacena la matriz inversa de matriz 2.
Ejemplo simple de uso:
El siguiente ejemplo ilustra el uso de inv:
%Ejemplo de uso de inv.
A=[1 2; 3 4]
I=inv(A);
I % Al escribir una expresin sin punto y coma al final
% MATLAB muestra su valor en pantalla.
Al ejecutar el programa se obtiene como salida la matriz que se desea invertir (A), y su inversa (I). La salida
se ve as:
A=
1
3
2
4
I=
-2.0000
1.5000
1.0000
-0.5000
Comando DET
Calcula el determinante de una matriz.
Sintaxis:
La sintaxis de la orden es:
Valor = det(Matriz);
2
4
d=
-2
18
Comando CROSS
Calcula el producto cruz entre dos vectores.
Sintaxis:
La sintaxis de la orden es:
Vector2 y Vector3 son los vectores a los que se les quiere aplicar el producto cruz. Tanto Vector2 como
Vector3 deben ser vectores tridimensionales. Vector1 es el vector (tridimensional) resultante del producto
cruz de Vector2 y Vector3.
Ejemplo simple de uso:
El siguiente ejemplo ilustra el uso de cross:
%Ejemplo de uso de cross.
x=[1 0 0]
y=[0 1 0]
z=cross(x, y) % Al escribir una expresin sin punto y coma final MATLAB
% muestra en pantalla su valor.
Al ejecutar el programa se obtiene la siguiente salida:
x=
1
y=
z=
Comando LENGTH
Determina el nmero de componentes de un vector.
Sintaxis:
La sintaxis de la orden es:
Longitud = length(Vector);
Vector es el vector que se quiere medir (nmero de componentes). Longitud es el nmero de componentes
de Vector.
Ejemplo simple de uso:
El siguiente ejemplo ilustra el uso de lenght:
%Ejemplo de uso de length.
x=[1 2 3 4 5 6 7]
l=length(x) % Al escribir una expresin sin punto y coma final MATLAB
% muestra en pantalla su valor.
Al ejecutar el programa se obtiene la siguiente salida:
x=
1
l=
7
19
D como resultado:
c=
3.0000 + 3.0000i
d=a^b
D como resultado:
d=
-1.6401 + 0.2021i
Nota importante sobre el uso de las variables i y j:
Puede usarse indistintamente las dos variables incorporadas (i j) y MATLAB no pone problema si se usan
las dos al tiempo. Pero si se asignan las variables i y/o j en algn lugar del programa, esta variable perder
su valor como raiz de -1.
20
j=
9
c=
29
Como se puede ver si se intentaba representar un complejo con la variable c, no se logr debido a que se
cambiaron las variables i y j. Por lo tanto, se recomienda que si se va a trabajar con complejos en un
programa: Deje libres las variables i y j (no las utilice en contadores en otros propositos, que no sean
representar a la raiz de -1.
21
Comando ABS
Calcula la norma de un complejo, o el valor absoluto de un real.
Sintaxis:
La sintaxis de la orden es:
Valor = abs(Nmero);
Valor es la norma del complejo si (Nmero es complejo) o el valor absoluto de
Nmero (si es real).
Nmero puede ser un real o un complejo:
Si es Real:
C=
1.5000 + 3.0000i
Para un real:
v=
1.2341
Para un complejo:
v=
3.3541
22
Comando SQRT
Calcula la raiz cuadrada de un complejo o de un real.
Sintaxis:
La sintaxis de la orden es:
Valor = sqrt(Nmero);
En Valor se almacena la raiz cuadrada del nmero.
Nmero puede ser un real o un complejo (si es real negativo, el resultado es un
complejo)
raiz =
0 + 1.1109i
C=
1.5000 + 3.0000i
raiz =
1.5579 + 0.9628i
23
Comando ANGLE
Calcula el ngulo de fase (en radianes) de una matriz (podra querer leer sobre
matrices) con elementos complejos. Si la matriz slo tiene un elemento, calcula
el ngulo de fase de ese complejo.
Sintaxis:
La sintaxis de la orden es:
Valor = angle(Matriz);
Valor es una matriz que almacena el valor del ngulo de fase del complejo (de 0 a 2*pi) que ocupa la misma
posicin en Matriz (el ngulo de fase del elemento 1,1 lo almacena en la posicin 1,1).
Matriz es una matriz (puede tener un solo elemento) cualquiera con componentes complejas (los reales
forman parte de los complejos).
c=
1.5000 + 3.0000i
Para la matriz:
v=
0 1.5708
1.2490 1.1397
Para un complejo: (matriz de un solo elemento)
v=
24
1.1071
Comando TRAPZ
Calcula la integral definida entre dos lmites de una funcin (rea bajo la curva) representada por uno o dos
vectores, como se explica ms adelante. El clculo de la integral se realiza numricamente, por medio de
una aproximacin de la funcin a trapecios (En ningn momento calcula la integral simblica). Debido a que
el clculo de la integral es numrico, se deben construir vectores "adecuados" para calcular la integral. Por
esta razn, es fundamental aclarar las caractersticas de los vectores, con el fin de tener un criterio para
decidir como construir el vector de forma apropiada. (para mayor claridad en el ejemplo de esta orden,
puede ser necesario leer las secciones sobre FOR y Vectores y
matrices).
Sintaxis:
La sintaxis de la orden es:
Valor = trapz([Vector,] Matriz);
Los simbolos [] significan que Vector es opcional.
Matriz puede ser una matriz o un vector. Una matriz si se desea calcular la integral definida para varias
funciones en el mismo rango (entre los mismos lmites). Un vector si se desea calcular la integral para una
sla funcin (su tamao tiene relacin con el tamao de Vector, esta relacin se muestra en detalle en la
explicacin de Vector).
Vector es el vector de los valores para los cuales se desea calcular la integral, tal que si Matriz es:
Un vector: Matriz y Vector deben ser de la misma longitud (ya sean vectores fila, o columna). A cada
valor almacenado en Vector corresponde el valor almacenado en Matriz (con el mismo subndice).
Una matriz: Vector debe ser un vector columna y Matriz tiene almacenadas las funciones por columnas
(cada columna=una funcin), Matriz debe tener el mismo nmero de filas que vector.
Si Vector se omite, es equivalente a introducir un vector con paso 1 (por ejemplo: [0, 1, 2, 3]), note que la
integral no depende de los valores que se introducen en Valor, sino de su paso (ya que los valores de la
funcin en cada punto estn almacenados en Matriz), en otras palabras la integral sigue siendo la misma
(en valor) si la desplazo hacia un lado y realizo la integral entre el nuevo par de lmites.
Valor es donde se almacena el valor de la integral (un real si slo se calcul para una funcin, y un vector
fila si se calcul para varias).
Ejemplo simple de uso:
25
integral =
22.3988
integral =
76.5662
integral =
22.3988 76.5662
Comando LSIM
Realiza una simulacin por medio de variables de estado, de un sistema lineal. Aunque lsim realiza la
simulacin por medio de variables de estado discretas, es posible discretizar variables continuas por medio
de vectores. (Tal vez sea necesario leer la parte correspondiente a vectores y matrices). Por lo tanto si
desea realizar una simulacin de un sistema lineal, es posible realizarlo con esta orden, ya sea de variables
continuas o discretas.
El espacio de trabajo:
Para visualizar las variables que se han creado en la sesin actual :
. who
. whos
(informacin ms amplia)