Está en la página 1de 33

REPORTE DE LA PRCTICA #1: INTRODUCCIN A MATLAB I.

RESUMEN En el siguiente trabajo se pretende dar una breve introduccin al ambiente de trabajo en MATLAB, empezando por comandos bsicos como las operaciones aritmticas, funciones elementales, comandos bsicos para ayuda y guardar datos. Despus se introduce a lo que son las matrices y los vectores que son el principal tipo de datos que maneja MATLAB, y se continua con lo que son funciones, para concluir con una introduccin a grficas 2-D viendo las distintas formas de edicin. INTRODUCCIN
MATLAB es el acronimo de MATrix LABoratory (Laboratorio de Matrices) y originalmente fue desarrollado para realizar operaciones con matrices. Actualmente MATLAB es un sistema interactivo nico para clculo de operaciones matemticas y programacin que integra visualizacin grfica en 2 y 3 dimenciones. Algunos de los usos ms comunes de MATLAB son: 1. 2. 3. 4. 5. Calculos matemticos Desarrollo de algoritmos Modelado y simulacin Analisis de datos y obtencin de grficas Desarrollo de interfaces grficas

El lenguaje de programacin de MATLAB es ms poderoso que lenguajes tales como FORTRAN, C, Basic, VisualBasic o Pascal, por mencionar algunos. Junto a MATLAB se ha desarrollado una coleccin de herramientas que programadas en lenguaje de MATLAB pueden realizar un conjunto de actividades en ciertas reas de la ingeniera, las ciencias, las finanzas, la economa, etc. Algunas de estas herramientas son con enfoque a sistemas de control, procesamiento de seales, procesamiento de imgenes, lgica difusa, redes neuronales, simulacin de sistemas dinmicos, optimizacin, identificacin de sistemas, entre niera Elctrica otras. Estas herramientas se conocen como toolboxes y constituyen una parte importante de MATLAB.

DESARROLLO

Durante el desarrollo de esta prctica se ver el funcionamiento del ambiente de trabajo de MATLAB, en cada una de las explicaciones se darn ejemplos del funcionamiento del ambiente de MATLAB. Iniciando MATLAB Para Instalar MATLAB es necesario insertar el DVD que contiene el paquete y seguir los pasos que se indican por el programa de instalacin. Al terminar la instalacin, en el escritorio (Desktop) aparecer el icono de MATLAB como acceso directo, al presionar este icono se ejecutar MATLAB y aparecer la ventana de MATLAB como se muestra en la figura 1.

Fig. 1. Interface de MATLAB

La regin que se estar usando es la ventana de en medio, que se denomina Ventana de Comandos (Command Window). Las otras 3 ventanas son la Ventana del Directorio de Trabajo (Current Folder) que est a la izquierda, la Ventana de Historial de Comandos (Command History), introducidos en la sesin actual y sesiones previas y se encuentran abajo a la derecha y la Ventana de Espacio de Trabajo (Workspace) que es en donde se muestran las variables declaradas y su valor correspondiente, se encuentra arriba a la derecha. El directorio Actual (Current Folder) contiene todos los archivos que se encuentran en el directorio en el cual estamos trabajando, el directorio por defecto de MATLAB en este caso es F:\Documents\MATLAB. Otra ventana que se puede desplegar es la ventana de ayuda (help) la cual se puede abrir con el icono Help . En el men Desktop tambin se pueden seleccionar las ventanas que deseemos desplegar. La indicacin de que podamos dar comandos a MATLAB son dos signos mayores que >>

Matemtica Sencilla MATLAB puede realizar clculos simples como si se tratara de una calculadora. Por ejemplo si deseamos realizar 3+7, simplemente escribimos despus de >> dicha operacin, esto es: >> 3 + 7 Y presionamos ENTER. ans = 10 Las operaciones aritmticas bsicas se muestran en la tabla I. Tabla I. Operaciones Aritmticas Bsicas y su Precedencia Operacin Smbolo Ejemplo Precedencia Suma + 5+4 = 9 3 Resta 9-3 = 6 3 Multiplicacin * 6*4 = 24 2 Divisin / 24/8 = 3 2 Potenciacin ^ 3^3 = 27 1

Las expresiones se evalan de izquierda a derecha. La precedencia significa el nivel de prioridad que aplica MATLAB para realizar las operaciones. La potenciacin tiene asignada la mayor prioridad, la multiplicacin y divisin la siguiente y finalmente la suma y la resta tienen la menor prioridad. Por ejemplo: >> 4 + 6/2 ans = 7

Primero se realiza la divisin 6/2 y su resultado que es 3 se suma a 4, lo cual nos da 7 como resultado. La precedencia se puede alterar usando parntesis, por ejemplo:
>> (4+6)/2 ans = 5 Ya que primero se efectan las operaciones indicadas dentro del parntesis y luego la divisin. Tambin se pueden evaluar otras funciones como las trigonomtricas, por ejemplo: >> sin (3)

ans = 0.1411 Donde el argumento est expresado en radianes. Algunas funciones elementales se muestran en la siguiente tabla.

Tabla II. Algunas funciones en MATLAB. Funcin Notacin en MATLAB

| |

Si aproximamos el valor de que:


>> sin (3.1416) ans = -7.3464e-006

a 3.1416 y obtenemos el seno de dicho nmero, tenemos

Que es una buena aproximacin al valor esperado (cero). MATLAB tiene predefinido el valor de

y lo almacena en la variable pi, de la misma manera obtenemos:


>> sin (pi) ans = 1.2246e-016

Que es una mejor aproximacin al nmero esperado. Otros ejemplos son:


>> sqrt (2) ans = 1.4142

>> log10 (1000)

ans = 3

Algunos valores de constantes predefinidos en MATLAB son: Tabla III. Variables predefinidas por MATLAB Variable Constante y/o significado 3.14159265 Unidad imaginaria igual a Igual que Precisin de las operaciones de punto flotante, Infinito No un nmero (Not a number) Ej. 0/0

Inf NaN

Donde eps es una cantidad que se usa generalmente para evitar una divisin por cero y NaN es una notacin que MATLAB da cuando el resultado de una operacin no es un dato numrico. Formato de Visualizacin de Nmeros Los formatos de visualizacin de nmeros no cambian la representacin interna de un nmero cuando se escogen diferentes formatos; solo se modifica la visualizacin del nmero. Esto se puede hacer usando alguno de los formatos mostrados en la tabla IV donde se usa . Por ejemplo: >> format rat >> z=pi z= 355/113 Tabla IV. Formatos para escribir valores numricos Formato de MATLAB Valor desplegado Comentarios 3.1416 5 dgitos, visualizacin por defecto 3.1416 5 dgitos 3.141592653589793 16 dgitos 3.1416e+000 5 dgitos ms exponente 3.141592653589793e+000 16 dgitos ms exponente 400921fb54442d18 Hexadecimal

3.14 +

2 dgitos decimales Positivo, negativo o cero Aproximacin racional

Expresiones Fundamentales Trabajar en el entorno de MATLAB es muy simple ya que la mayora de los comandos son ingresados de la misma manera que si se hara matemticamente. A dems para definir una variable a diferencia de los lenguajes de programacin como FORTRAN y C, no necesitan declararse previamente en otra instruccin; es decir, la variable se crea al momento de escribirse. Por ejemplo, la variable a se crea en MATLAB cuando se escribe por primera vez con: >> a = 8/3 a= 2.6667 Por medio de este comando se le ha asignado el valor de 2.6667 a la variable a, tendr ese valor hasta que el usuario lo cambie por otro. Los nombres de las variables pueden tener un tamao de hasta 63 caracteres de largo requiriendo solamente que el nombre comience con una letra. Si un nombre de variable tiene ms de 63 caracteres solo se conservan los primeros 63. En el caso de estar interesado solamente en el resultado de la expresin y no en la asignacin del mismo a alguna variable, se puede escribir:
>> 8/3 ans = 2.6667

Donde la variable ans es una variable interna utilizada por MATLAB para almacenar resultados que no han sido asignados a ninguna otra variable. Notar que el contenido de ans cambia cada vez que una operacin como la antes mencionada es realizada. Por lo tanto si el resultado se va a utilizar posteriormente, es recomendable guardarlo en alguna otra variable. MATLAB tiene algunas variables predefinidas que se muestran en la Tabla III. Como estas variables pueden estar sobrescritas, se recomienda usarlas con cuidado ya

que por ejemplo si o se usan como ndices de elementos de un vector o una matrz y luego se desea hacer la siguiente asignacin: >> z = 1 + 2*i El resultado no ser el nmero complejo esperado. Para restablecer el valor de se puede usar el comando clear . Cada vez que MATLAB ejecuta una accin, el resultado se escribe en pantalla. Para suprimir la escritura del resultado, es necesario usar punto y coma despus de escribir la operacin que deseamos realizar, por ejemplo:
>> 3+7 ans = 10 >> 3+7; La primera vez que ejecutamos 3+7 MATLAB nos da el resultado inmediatamente, mientras que la segunda vez al escribir punto y coma el resultado no se escribe y solo se guarda para usarlo posteriormente. Los nombres de las variables no son iguales si se escriben con letras maysculas o minsculas. De esta manera, la variable A es diferente a la variable a. Para borrar variables se usa la instruccin clear, >> clear a Borra solamente la variable a, mientras que >> clear

Borra todas las variables que se hayan definido desde que se empez la sesin actual de MATLAB. Ayuda en Lnea MATLAB tiene un comando llamado help muy bien documentado. Escribiendo help, MATLAB despliega un ndice con aclaraciones que sirve para orientarse a la hora de buscar algn comando en particular. Por ejemplo, supongamos que se desea evaluar la siguiente expresin , escribiendo help obtenemos: >> help

HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\randfun - Random matrices and random streams. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. . Donde podemos inferir que la informacin que estamos buscando puede estar dentro de los comandos agrupados en elementary math functions:
>> help elfun Elementary math functions. Trigonometric. sin - Sine. sind - Sine of argument in degrees. .. Exponential. exp - Exponential. expm1 - Compute exp(x)-1 accurately. log - Natural logarithm. Complex. abs - Absolute value. angle - Phase angle. complex - Construct complex data from real and imaginary parts. Ahora entramos a la funcin exp y nos aparecer la forma de usar dicha funcin, tambin se puede escribir como: >> help exp

EXP Exponential. EXP(X) is the exponential of the elements of X, e to the X. For complex Z=X+i*Y, EXP(Z) = EXP(X)*(COS(Y)+i*SIN(Y)).
Por lo tanto para la expresin >> exp (1+j*3) ans =

, se introduce:

-2.6911 + 0.3836i Si se desea realizar algn clculo para el cual MATLAB no contiene una funcin especfica, se pueden crear los propias funciones (Se crean archivos Scripts o Funciones).

Matrices y Vectores

Las matrices con el principal tipo de datos que maneja MATLAB. Comenzaremos escribiendo una matriz como una lista de elementos. Solamente hay que seguir unas convenciones bsicas: 1. Separa los elementos de una fila con espacios o comas. 2. Usar punto y coma (;) para indicar el fin de cada rengln o fila. 3. Encerrar la lista entera de los elementos con parntesis cuadrados, [ ]. Cada elemento de una matriz tiene una posicin ij que corresponde a su posicin en la isima fila y en la j-sima columna. El comando A (i,j) Proporciona el elemento del rengln i y la columna j. Por ejemplo, al entrar la siguiente matriz a, MATLAB muestra:
>> a = [1 2; 3 4] a= 1 2 3 4

Por otra parte una matriz de una sola fila es un vector:


>> b = [5 6] b= 5 6

Los elementos de una matriz pueden ser alguna expresin, por ejemplo: >> x = [-1.3 sqrt(2) (1+2+3)*4/5] x= -1.3000 1.4142 4.8000

Se pueden juntar dos matrices con mismo nmero de columnas en una sola matriz, por ejemplo:

>> A = [1 2 3; 4 5 6; 7 8 9]; R = [10 11 12]; >> B = [A ; R] B= 1 2 3 4 5 6 7 8 9 10 11 12

Se pone R debajo de A. Tambin se puede extraer una submatriz de una matriz, por ejemplo: >> C=B(2:3,2:3) % Vemos que se obtiene una submatriz C de la matriz B; de la fila 2 a

C=
5 8 6 9

% la 3 y de la columna 2 a la 3

MATLAB permite el manejo de nmeros complejos, donde la . Existen dos formas de insertar matrices de nmeros complejos las cuales producen el mismo resultado que son: >> A = [1 2; 3 4]+ i*[5 6; 7 8] >> B = [1+5i 2+6i; 3+7i 4+8i] bien bien >> A = [1+5j 2+6j; 3+7j 4+8j] >> B = [1+5j 2+6j; 3+7j 4+8j]

Se puede obtener informacin en el rea de trabajo con who o con whos; por ejemplo:
>> who Your variables are: A B C R x

O usando whos, MATLAB nos muestra un informacin ms detallada: >> whos


Name A B C R x Size 2x2 2x2 2x2 1x3 1x3 Bytes 64 64 32 24 24 Class Attributes

double complex double complex double double double

Notese que cada elemento de una matriz real ocupa 8 bytes de memoria, todas las variables ocupan 208 bytes El operador : sirve para indicar intervalos de incremento o decremento en una matriz. Por ejemplo
>> v = [1:0.5:3] v= 1.0000 1.5000 2.0000 2.5000 3.0000

Se genera un vector con elementos de 1 a 3 con incrementos de 0.5. Cuando no se indica un nmero intermedio el incremento es de uno en uno. Guardar variables y estados de una sesin: Comandos save y load. En muchas ocasiones es necesario interrumpir el trabajo con MATLAB, para poderlo recuperar ms tarde en el mismo punto en el que se dej; es decir con las mismas variables definidas, con los mismo resultados intermedios, etc. Hay que tener en cuenta que al salir del programa todo el contenido de la memoria se borra automticamente. Para guardar el estado de una sesin de trabajo existe el comando save. >> save Saving to: matlab.mat Todas las variables y clculos intermedios se guardan en un archivo llamado matlab.mat que se encuentra en el subdirectorio: F:\Documents\MATLAB. La prxima vez que se inicie MATLAB y se quiera recuperar la informacin se deber abrir el archivo matlab.mat, para simular que cerramos MATLAB podemos teclear: >> clear >> who Para borrar todas las variables y verificar con who o whos que exactamente ya no hay ninguna variable. Ahora cargamos el archivo matlab.mat nuevamente: >> load Y observamos que tenemos todas las variables nuevamente, tecleamos who y observando en la Ventana de Estacin de Trabajo. Se pueden guardar tambin matrices y vectores de forma selectiva, en ficheros con nombre especificado por el usuario. Por ejemplo si se requiere guardar las variables A y x, tecleamos el comando save seguido del nombre del archivo en el que las queremos guardar y enseguida el nombre de las variables, todo separado nicamente de espacios.

>> save filename A x Se guardan las variables A y x en un fichero binario llamado filename.mat. Cuando se requiera recuperarlas, se teclea: >> load filename A x

O en dado caso solo se especifica la variable que se requiera, en este caso puede ser A o x. Para cargar todo lo que se guard en filename, se teclea: >> load filename Y para cargar todas las variables que se tenan, se teclea load para cargar el archivo matlab.mat. Otra forma de guardar la sesin es con los mens de arriba, damos click en File y despus en Save Workspace As o tecleando Control + S, y escribimos el nombre y el directorio, y confirmamos dando click en save.

Fig. 2. Guardando sesin en MATLAB

Guardar sesin y copiar salidas: Comando diary Existe forma de almacenar en un fichero un texto que describa lo que el programa va haciendo (la entrada y salida de los comandos utilizados). Esto se hace con el comando diary en la forma siguiente:

>> diary sesion.txt >> load filename A x >> load Loading from: matlab.mat >> D = [10 20 30 40]; >> diary off >> E = [50 60 70 80];

% Se escribe el comando y el nombre del archivo

% Suspende la ejecucin

>> diary on

% Reanuda la ejecucin

De esta manera tenemos que lo que se guarda en el archivo sesion.txt es lo que est escrito con letras moradas. El simple comando diary pasa de on a off y viceversa. Para poder acceder al fichero sesion.txt con Notepad o Word es necesario que diary est en off. Si el comando diary no incluye el nombre del fichero se utiliza por defecto un fichero llamado diary (sin extensin). Operaciones con Arrays 1. Arrays arbitrarios se introducen como: variable = [lista de nmeros separados por espacios o comas]. 2. Funciones de arrays aplican la funcin a los elementos individuales del array. 3. Arrays que contienen elementos de datos espaciados linealmente se pueden formar usando la notacin de dos puntos primero : incremento : ltimo primero : ltimo. En el segundo caso el incremento es de 1. 4. Arrays que contienen elementos de datos espaciados logartmicamente se pueden formar usando la funcin linspace de MATLAB. 5. Valores almacenados en un array de datos se pueden acceder utilizando subndices 6. Operaciones matemticas bsicas entre escalares y arrays aplican la operacin a todos los elementos del array. 7. Operaciones matemticas bsicas entre arrays son vlidas si los arrays tienen el mismo tamao. El resultado se obtiene por la aplicacin elemento a elemento de la operacin. Las operaciones elementales que se pueden hacer de elemento a elemento son: suma, resta, multiplicacin, divisin y potenciacin, se simbolizan por: +, -, .*, ./ o .\ y .^. 8. La potencia de un array tiene mltiples definiciones dependiendo de la forma de la expresin. 9. Se pueden construir array a partir de subconjuntos de otros arrays. 10. Los arrays en MATLAB pueden tener cualquier orientacin rectangular y se nombran como array vector (fila), array columna y matrices (multiples filas y columnas). 11. Los vectores fila se pueden convertir a vectores columna y viceversa, usando la operacin de transpuesta representada por (.). Un apostrofe simple () representa transpuesta conjugada. [ Sea Suma escalar Multiplicacin escalar Tabla V. Operaciones con Arrays ] [ ] [ [

] ]

Suma de Arrays Multiplicacin de Arrays Divisin a la derecha de Arrays Potencia de Arrays

[ [ [ [ [ [ ] ] ]

] ]

Ejercicios: 1) Crea un array de cero a 1 con incrementos de 0.1, multiplicado por . >> X = [0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi] X= Columns 1 through 8 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 Columns 9 through 11 2.5133 2.8274 3.1416 2) Crea otro array Y a partir del ya creado X, obteniendo el seno de cada elemento. >> Y = sin(X) Y= Columns 1 through 8 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 9 through 11 0.5878 0.3090 0.0000 3) Muestra el tercer elemento del array X. >> X(3) ans = 0.6283 4) Se obtienen elementos del 1 al 5 del array X. >> X(1:5) ans = 0 0.3142 0.6283 0.9425 1.2566

5) Se obtienen elementos del 3 al 1, observar que en este caso se va en decremento (es de -1). Nos muestra entonces el elemento 3, el 2 y el 1. >> X(3:-1:1) ans = 0.6283 0.3142

6) Obtenemos elementos del 2 al 7 con un incremento de 2 en 2, nos muestra entonces el elemento 2, el 4 y el 6. El siguiente sera el 8 pero se sale del rango (es hasta 7). >> X(2:2:7) ans = 0.3142 0.9425 1.5708 7) Obtiene del array Y los elementos 8, 2 y 9. >> Y([8 2 9]) ans = 0.8090 0.3090 0.5878 8) Crea otra vez el array X pero de otra forma; primero se crea el vector de 0 a 1 con incrementos de 0.1 y despus se multiplica por . >> X = (0:0.1:1)*pi X= Columns 1 through 8 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 Columns 9 through 11 2.5133 2.8274 3.1416 9) Se crean 2 arrays; el array A con elementos de 1 a 5 e incrementos de 1 en 1, y el array B con elementos de 1 a 9 e incrementos de 2 en 2. >> A = 1:5 , B = 1:2:9 A= 1 2 3 4 5 B= 1 3 5 7 9

10) Se crea un array C; en el cual se junta el array B y el array A. En este caso primero va el array B y despus el array A. >> C = [B A] C= 1 3 5

11) Crea un array D; en el cual se incluyen elementos del array A que van del 1 al 5 con incrementos de 2 en 2, y al final se incluyen los elementos 1, 0 y 1. >> D = [A(1:2:5) 1 0 1] D= 1 3 5 1 0 1 12) Se resta 2 a cada elemento del array A. >> A-2 ans = -1 0

13) Se multiplica cada elemento del array A por 2 y se le resta 1, recordar que la multiplicacin tiene mayor precedencia que la suma. >> 2*A-1 ans = 1 3 5

14) Crea un vector con cadena de caracteres. >> s='ABCDEF' s= ABCDEF 15) Cambia los caracteres a minuscula a partir de s. Por ejemplo en el cdigo ASCII, el valor de A es 65, a eso se le suma el valor de a que es 97 y se le resta 65 del valor de A, lo cual nos da el valor de a (en minscula). Para B que es 66, se le suma 97 del valor de a y se le resta 65 del valor de A, lo cual nos da 98 que corresponde a b (en

minscula), y as sucesivamente. Todo se almacena en un array n en el cual se representa el resultado en forma de nmeros que corresponden a cada carcter en minsculas. >> n = s+'a'- 'A' n= 97 98 99 100 101 102

16) Se representa el resultado de n, en forma de caracteres. >> setstr(n) ans = abcdef Operaciones con Matrices. 1. Los elementos de una matriz se direccionan en la forma fila, columna: (fila, columna). 2. Valores internos de una matriz se acceden identificando los subndices de los elementos deseados. 3. Utilizar el smbolo dos puntos como la designacin de filas y columnas implica, respectivamente, todas las filas o columnas; por ejemplo: A(: , 1) representa todas las filas en la columna uno, A(2 , :) representa todas las columnas en la fila dos. 4. Colocar datos fuera del rango actual de una matriz rellena con ceros las zonas no especificadas para mantener una forma de matriz rectangular. 5. Fijar las filas o columnas de una matriz igual a la matriz a la matriz vaca [ ] elimina estas filas o columnas. 6. Usar slo dos puntos, por ejemplo A(:), reagrupa una matriz en un vector columna tomando todas las columnas a un tiempo. 7. Vectores lgicos 0-1 pueden utilizarse tambin para direccionar partes de un vector. En este caso, los vectores lgicos 0-1 deben tener el mismo tamao que el vector que direcciona. Los elementos falsos (0) se eliminan, los elementos verdaderos (1) se retienen. Ejercicios: >> A = [1 2 3; 4 5 6; 7 8 9] A= %Crea una matriz A de 3x3

1 4 7

2 5 8

3 6 9 %Cambia el elemento de la fila 3, columna 3 por cero

>> A (3,3)=0 A= 1 2 3 4 5 6 7 8 0 >> A(2,6)= 1 A= 1 2 3 4 5 6 7 8 0

0 0 0

0 0 0

0 1 0

%Se introduce un elemento en la fila 2, columna 6. %Pero como no existe tal columna, se crea %automticamente aumentando el tamao de la %matriz con ceros

>> A = [1 2 3; 4 5 6; 7 8 9] A= 1 2 3 4 5 6 7 8 9 >> B = A(3:-1:1,:) B= 7 8 9 4 5 6 1 2 3 >> C = [A B(:,[1 3])] C= 1 2 3 7 9 4 5 6 4 6 7 8 9 1 3 >> B = A(1:2,2:3) B= 2 3 5 6 >> C = [1 3] C=

%Se define nuevamente la misma matriz A de 3x3

%Se obtiene una matriz B, a partir de la matriz A %Se aaden las filas de A, de la tercera a la primera %(se invierten).

%Se crea una matriz C, a partir de la matriz A %aadiendo la columna uno y la columna tres %de la matriz B a la derecha de la matriz A

%Toma los elementos de la fila uno y dos, y %columna dos y tres, de la matriz A y los almacena %en una matriz B

%Crea un vector (fila) C de dos elementos

3 %Crea un vector columna B a partir de cada una de %las columnas de la matriz A a un tiempo

>> B = A(:) B= 1 4 7 2 5 8 3 6 9 >> B = B.' B= 1 4 7 >> B = A B= 1 2 4 5 7 8

%Transpone un vector, en este caso la transpuesta %de un vector columna es un vector fila 2 5 8 3 6 9 %Asigna la matriz A a la variable B, se remplaza su %valor anterior de esta ltima.

3 6 9 %Elimina la columna dos de la matriz B.

>> B(:,2)=[] B= 1 3 4 6 7 9 >> B = B.' B= 1 4 7 3 6 9 >> B(2,:)=[] B= 1 4 7 >> A(2,:)= B A= 1 2 3 1 4 7

%Transpone la matriz B (las filas las hace columnas o %viceversa).

%Elimina la segunda fila de B

%Reemplaza la segunda fila de la matriz A por B

>> X = -3:0.5:3 %Crea un vector X con valores desde -3 hasta 3, con X= %incrementos de 0.5 Columns 1 through 8 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0 0.5000 Columns 9 through 13 1.0000 1.5000 2.0000 2.5000 3.0000

>> X=-3 :3 X= -3 -2 -1

%Crea un vector con valores desde -3 hasta 3 con %incrementos de uno en uno. 0 1 2 3 %Crea un vector y a partir del vector X, reteniendo %los elementos verdaderos (1) y se descartando los %falsos (0). Para esta condicin, el valor absoluto de % cada elemento del vector X tiene que ser mayor a 1 %Multiplica los elementos verdaderos (1) por cada %elemento del vector X, mostrando los elementos %del vector X que cumplen la condicin, si X fuera %matriz el resultado sera un vector. %Crea un vector Y tomando el primer elemento de X %cuatro veces

>> y=abs(X)>1 y= 1 1 0 0 >> y= X(abs(X)> 1) y= -3 -2 2 3 >> Y=X([1 1 1 1]) Y= -3 -3 -3 -3

>> X (abs(X)>2)=[] X= -2 -1 0 1 2

%Borra los elementos del vector X tales que, su valor %absoluto sea mayor que 2; es decir, borra el -3 y el 3

Para almacenar una matriz de caracteres, primero es necesario declarar la variable, puede estar vaca: >> v =[] Luego se ocupa crear un script, para eso hay que dar click en el cono y se abrir ventana como en la figura 3. Donde a la matriz v la llenamos con caracteres.

Figura 3. Editor de textos de MATLAB

Una vez hecho esto, damos click en save and run (Guardar y ejecutar), nos aparecer una ventana como en la figura 4 donde hay que guardar especificando el nombre y direccin del archivo. Ntese que la extensin del script es .m.

Figura 4. Guardando un archivo script

Volviendo nuevamente a la ventana de comandos de MATLAB, se observa que se ha creado dicha matriz, en la ventana de Estacin de Trabajo aparece como una matriz de caracteres

Y en la ventana de comandos aparece la matriz. v= esto es una matriz, un rengln debe tener el mismo nmero de columnas como las matrices

Funciones MATLAB tiene un nmero grande de funciones. Algunas funciones son intrnsecas o construidas en el propio proceso de MATLAB. Otras estn disponibles en libreras externas archivos-M distribuidos con MATLAB (Toolbox). Y otras son adicionadas por los usuarios, o grupo de usuarios, para alguna aplicacin especfica en archivos-M. Con la orden help <Funcin> MATLAB despliega el contenido de la funcin as como de los parmetros necesarios para su correcta ejecucin. Por ejemplo: >> help sqrt %Ayuda de la funcin de raz cuadrada SQRT Square root. SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive. See also sqrtm Se pueden combinar funciones de varias formas. Algunas funciones usan dos o ms argumentos de entrada, donde cada argumento puede ser una expresin. Por ejemplo: >> a=3;b=4; %Se obtienen valores para a y b >> theta = sqrt(atan2(a,b)) %se evalua la funcin con a y b, calculando la raz cuadrada theta = %del arco tangente de un ngulo de coordenadas x,y. 0.8022 O tambin pueden usar dos o ms argumentos de salida, donde los argumentos estarn encerrados por [ ] y separados por comas. Por ejemplo: >> x = [5 2 4 9 3 1] x= 5 2 4 9 3 >> [y,i]= max(x) y= 9 i= 4 >> r=5; >> S = pi*r^2 S= 78.5398 %Asigna valores a la variable x 1 %Nos da el valor mximo del vector x en una variable y %as como su posicin i.

%Se asigna el valor 5 a la variable r %r se toma como la entrada del radio para calcular %el rea de un crculo que se almacena en la variable s

Grficas simples en 2-D

Los grficos son una poderosa forma visual de interpretar los datos. Considerando un proceso que se seguira para realizar una grfica a mano de una funcin seno durante un periodo, por ejemplo para . Se tendra que hacer: I. II. III. Escoger los valores para la variable independiente x (forman el eje horizontal de la grfica). Calcular el seno para cada valor independiente (proporcionando los datos del eje vertical). Cada pareja de datos [x, y] se marca sobre un conjunto apropiado de ejes.

Para mejorar su visin, es comn dibujar una lnea recta entre cada par de puntos marcados. Utilizando array, MATLAB sigue este mismo enfoque para hacer grficas. Considerando la misma tarea de dibujar una onda senoidal tal como la que acabamos de describir.

>> x = linspace (0,2*pi,20) %Se crean 20 puntos en el eje x entre 0 y x= %y se almacenan en un vector Columns 1 through 8 0 0.2167 0.4333 0.6500 0.8666 1.0833 1.3000 1.5166 Columns 9 through 16 1.7333 1.9500 2.1666 2.3833 2.5999 2.8166 3.0333 3.2499 Columns 17 through 24 3.4666 3.6832 3.8999 4.1166 4.3332 4.5499 4.7666 4.9832 Columns 25 through 30 5.1999 5.4165 5.6332 5.8499 6.0665 6.2832 >> y = sin(x) %Se calcula el seno de cada uno de los puntos y= %generados y se guardan en un vector y Columns 1 through 8 0 0.3247 0.6142 0.8372 0.9694 0.9966 0.9158 0.7357 Columns 9 through 16 0.4759 0.1646 -0.1646 -0.4759 -0.7357 -0.9158 -0.9966 -0.9694 Columns 17 through 20 -0.8372 -0.6142 -0.3247 -0.0000 >> plot(x,y) %Se genera la grfica, que conecta cada par de %puntos con una lnea recta

Fig. 5. Grfica del sen (x) generada con 20 puntos

>> z = cos(x); >> plot(x,y,x,z)

%Clcula el coseno de cada uno de los 20 puntos %Grfica el seno y el conseno en una misma grfica

Fig. 6. Grfica del seno y del coseno a 20 puntos

>> plot (x,y,x,2*y.*z,'--')

%Grfica la funcin seno con lneas %conectando los puntos, y la funcin % con lneas punteadas '--'

Fig. 7. Grfica del sin(x) y sin(2x)

>> plot(x,y) >> hold on

%Grfica la funcin seno (ver figura 5) %Mantiene la grfica anterior en pantalla para aadir %otra grfica. >> plot(x,2*y.*z,'--') %Grfica la funcin sin(2x) con lneas punteadas (ver %figura 7) sin borrarse la grfica del sen(x) debido a la %instruccin hold on. >> hold off %Permite que en la prxima instruccin de plot se %sobrescriba la grfica. >> grid %Coloca una rejilla en la grfica >> xlabel('Variable independiente x') %Coloca una etiqueta sobre el eje x >> ylabel('Variable dependiente') %Coloca una etiqueta sobre el eje y >> title('2sin(x)cos(x)=sin(2x)') %Coloca un ttulo en la grfica

Fig. 8. Ttulo y etiquetas de una grfica

>> plot3 (y,z,x), grid

%Grfica en 3-D, ntese que despus del comando %plot se escribe 3 para indicar que es en tres

%dimensiones.

Fig. 9. Grfica en 3-D

1. La orden Plot crea una grfica de vectores o columnas de matrices. La forma de la orden es plot (x1, y1, S1, x2, y2, S2, ) donde (xn, yn) son conjuntos de arrays de datos y Sn son cadenas opcionales que especifican color, marcas, y/o estilos de lnea.

Smbolo

Tabla VI. Color, marcas y estilos de lneas Color Smbolo Estilo de lnea Amarillo . Punto Magenta O Crculo Cian X Marca x Rojo + Ms Verde * Estrella Azul Lnea slida (Por defecto) Blanco : Lnea punteada Negro 0 Lnea punto raya -Lnea de trazos

2. coloca una rejilla en las marcas de la grfica. 3. Se pueden aadir ttulos y etiquetas en los ejes usando 4. La orden text (x, y, S) aade una cadena de caracteres S a la grfica actual en las coordenadas (x, y) 5. permite colocar texto interactivamente en la grfica utilizando el ratn.

6.

cambia los lmites de los ejes o la apariencia de las grficas (obtener ayuda con help axis). 7. Se pueden aadir grficas a la grfica actual fijando hold on. Haciendo hold off permite que la prxima orden de plot borre la ventana de la figura antes de hacer una nueva grfica. 8. Se pueden generar mltiples ventanas de figuras mediante la orden figure. figure(n) escoge que ventana de figura n sea la ventana de la figura activa. 9. Una ventana de figura se puede subdividir en un matriz y cualquier subdivisin hacerse activa con la orden (escoge como activa el rea p-sima). 10. Si fija , la ventana de la figura activa se puede expandir interactivamente usando el ratn, seleccionando el rea de expansin o simplemente con un click del ratn, lo desactiva. Ejercicios: >> x = linspace (0,2*pi,20) %Genera 20 puntos en el eje x entre 0 y x= %y los almacena en la variable x Columns 1 through 8 0 0.3307 0.6614 0.9921 1.3228 1.6535 1.9842 2.3149 Columns 9 through 16 2.6456 2.9762 3.3069 3.6376 3.9683 4.2990 4.6297 4.9604 Columns 17 through 20 5.2911 5.6218 5.9525 6.2832

>> y=sin(x) %Obtiene el seno de cada uno de los elementos de la y= %variable x, y los almacena en la variable y Columns 1 through 8 0 0.3247 0.6142 0.8372 0.9694 0.9966 0.9158 0.7357 Columns 9 through 16 0.4759 0.1646 -0.1646 -0.4759 -0.7357 -0.9158 -0.9966 -0.9694 Columns 17 through 20 -0.8372 -0.6142 -0.3247 -0.0000 >> z=cos(x) z= Columns 1 through 8 1.0000 0.9458 0.7891 Columns 9 through 16 -0.8795 -0.9864 -0.9864 Columns 17 through 20 %Clcula el coseno de cada uno de los elementos de la %variable x, y los almacena en la variable z 0.5469 0.2455 -0.0826 -0.4017 -0.6773 -0.8795 -0.6773 -0.4017 -0.0826 0.2455

0.5469 0.7891 0.9458 1.0000 >> w =[y;z] %Crea una matriz w a partir de los vectores y y z, w= %que corresponde a las funciones seno y coseno Columns 1 through 8 0 0.3247 0.6142 0.8372 0.9694 0.9966 0.9158 0.7357 1.0000 0.9458 0.7891 0.5469 0.2455 -0.0826 -0.4017 -0.6773 Columns 9 through 16 0.4759 0.1646 -0.1646 -0.4759 -0.7357 -0.9158 -0.9966 -0.9694 -0.8795 -0.9864 -0.9864 -0.8795 -0.6773 -0.4017 -0.0826 0.2455 Columns 17 through 20 -0.8372 -0.6142 -0.3247 -0.0000 0.5469 0.7891 0.9458 1.0000 >> plot (x, w), title('Figura 10') %Grfica el eje x y los dos renglones de la matriz w %correspondientes al seno y al coseno. Adems le %agrega el ttulo Figura 10 %Muestra otra ventana para grficar. %grfica el eje y y los dos renglones de la matriz w %correspondientes al seno y al coseno. Solo se %cambian los ejes respecto a la grfica anterior

>> figure(2) >> plot(w, x),title('Figura 11')

Fig. 10. Grfica del seno y coseno respecto al eje x.

Fig. 11. Grfica del seno y coseno respecto al eje y

>> plot(x,y ,'k -',x,z,'r --' ,x,y,'ko')

>> grid

%De izquierda a derecha en el comando; la %primera es una grfica del seno con una %lnea slida y color negro, la segunda es una %grfica del coseno de color rojo y con lnea %de trazos, por ltimo, la tercera es una %grfica del seno de color negra y con crculos %Se activa la rejilla.

>> xlabel('Variable independiente x') >> ylabel('Variable dependiente y z') >> title('Curvas del seno y coseno') >> text(3.0,0.3,'sin(x)') >> gtext('cos(x)')

%Etiqueta del eje x %Etiqueta del eje y %Ttulo de la grfica %Etiqueta de la grfica en la localizacin (3, .3) %Etiqueta de la curva de forma interactiva

Fig. 12. Grficas del seno y coseno usando diferentes estilos

>> subplot(2,2,1) %Se selecciona la subgrfica superior izquierda >> grid off, plot(x,y), axis off, title('sin(x)') %Se desactiva la rejilla, se grfica la funcin %seno, se eliminan los ejes de referencia y se %le pone el ttulo. >> subplot(2,2,2) %Se selecciona la subgrfica superior derecha >> grid on, plot(x,z), axis on, title('cos(x)') %Se activa la rejilla, se grfica la funcin %coseno, se agregan los ejes de referencia %y se pone el ttulo >> subplot(2,2,3) %Se selecciona la subgrfica inferior izquierda >> grid off, plot(x,2*y.*z), axis ij %Se desactiva la rejilla, se grfica la funcin %sen(2x), el eje vertical aumenta de arriba %hacia abajo >> subplot(2,2,4) %Se selecciona la subgrfica inferior derecha >> plot(x,y./z), axis ('xy', 'normal') %Se grfica la funcin sen(x)/cos(x) y se %retornan los valores por defecto >> grid on, title('sin(x)/cos(x)') %Se activa la rejilla y se agrega un ttulo >> subplot(2,2,3), grid %Se regresa a la subgrfica inferior izquierda >> title('2sin(x)cos(x)') %Se le agrega un ttulo

Fig. 13. Subgrficas, se muestran 4 grficas por pantalla.

>> subplot(1,1,1) >> plot(x,y./z) >> grid on, title('sin(x)/cos(x)') >> zoom on

%Muestra una grfica por pantalla %Grfica la funcin sen(x)/cos(x) %Se activa la rejilla y se le pone ttulo %Se activa el zoom y se selecciona una parte %de la grfica
sin(x)/cos(x)

12 10 8 6 4 2 0 -2 -4 3.6 3.8 4 4.2 4.4 4.6 4.8 5 5.2 5.4 5.6

Fig. 14. grfica sen(x)/cos(x), modo zoom activado

>> zoom off

%Se desactiva el modo zoom Otras Caractersticas de los grficos de 2-D

1. 2.

es lo mismo que , excepto que se usan logartmicas para ambos ejes. es lo mismo que excepto que usa una escala logartmica en el eje x y escala lineal en el eje y. es lo mismo solo que el eje y es el de la escala logartmica y el eje x es lineal. 3. La secuencia de datos discretos se puede representar usando la funcin Ejercicios: >> loglog (x,y) %Se grfica con una escala %logartmica para la funcin %seno
10 10 10 10 10 10 10
-0.1

-0.2

-0.3

-0.4

-0.5

-0.6

-0.7

>> semilogx (x,y) %Se grfica una funcin %con escala logartmica en % x y lineal en y

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

10

10

>> semilogy (x,y) %Se grfica una funcin con %escala logartmica en y y %lineal en x.

10 10 10 10 10 10 10

-0.1

-0.2

-0.3

-0.4

-0.5

-0.6

-0.7

0.5

1.5

2.5

>> stem (x,y) %Muestra la funcin en %su forma discreta

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

CONCLUSIONES Cuando obtuvimos el valor del seno de , mediante la instruccin:


>> sin (pi) ans = 1.2246e-016

Dicho valor obtenido es una aproximacin a cero, podemos entonces concluir que MATLAB usa algoritmos basados en mtodos numricos para aproximar el valor de algunas funciones. As pues del mismo modo que lo hacen las calculadoras, solo que MATLAB nos da un valor muy aproximado a cero por su gran capacidad de memoria de almacenamiento, mientras que la calculadora solo lo redondea.

BIBLIOGRAFA
[1] Dr. Osvaldo Gutirrez Snchez, Control I, Instituto Tecnolgico de Morelia, Departamento de Ingeniera Elctrica.

[2] David Bez Lpez, MATLAB con Aplicaciones a la Ingeniera, Fsica y Finanzas, 1ra. Edicin, Editorial Alfaomega, septiembre 2006. [3] Javier Garca de Jaln, Jos Ignacio Rodrguez, Alfonso Brazlez, Aprenda Matlab 5.3 como si estuviera en primero, Perteneciente a la coleccin: Aprenda, como si estuviera en primero, San Sebastin, Agosto 1999.

También podría gustarte