MATrix LABoratory
Es una herramienta de software matemático, que ofrece un entorno de desarrollo integrado con
un lenguaje de programación propio.
Características:
Lenguaje de alto nivel.
Funciones matemáticas.
Gráficos integrados.
Herramientas de desarrollo.
Herramienta para la creación de aplicaciones con interfaces graficas personalizadas.
Integración con otras aplicaciones y lenguajes.
Espacio de trabajo:
Command Window
Se ejecutan interactivamente las instrucciones de matlab y donde se muestran
los resultados correspondientes.
Ventana más importante.
Command History
Todos los comandos que hayan sido ingresados son guardados en esta
subventana.
Permite ejecutar comandos registrados en ella haciendo doble click.
Workspace
Se lista todo el conjunto de variables que están definidas o que se están
utilizando al momento de la ejecución.
Se puede cambiar el nombre de las variables en el workspace.
Se pueden copiar, duplicar o borrar las variables.
Subventana que se puede modificar en el aspecto al gusto.
Array Editor
Permite ver los valores de los elementos de cualquier matriz o vector definido
en el programa.
Puede modificar estos valores.
Útil para entender ciertos algoritmos.
Current Folder
Para que un fichero se puede ejecutar se debe cumplir una de las dos
condiciones siguientes:
1. Que este en el directorio actual.
2. Que este en uno de los directorios indicados en el Path de Matlab.
Permite ordenar los archivos.
Permite añadir archivos al Path de Matlab.
Editor/Debugger
Es la ventana en la cual se pueden crear, editar o guardar programas en archivos
llamados m-files o ficheros m.
Permite ejecutar programas paso a paso para poder identificar errores.
Muestra en distintos colores los correspondientes comandos.
Puede identificar errores, así como la advertencia para poder quitar dicho error.
El círculo naranja que señala un punto color rojo que significa que ha identificado un error en los
datos de entrada propuestos.
Help
Matlab dispone de una ayuda.
Posible buscar información necesaria para resolver dudas.
MatLab posee una amplia y muy completa función de ayuda, en la parte señalada en el recuadro
se pueden realizar las búsquedas requeridas por el programador
Profiler
Es un programa de utilidad que permite saber cómo se ha empleado el tiempo
de la CPU en la ejecución de un determinado programa.
Permite determinar los cuellos de botella (determina la cantidad de piezas
posibles después de un determinado periodo de tiempo) de un programa.
Preferencias de MATLAB
MATLAB dispone de un cuadro de dialogo desde el que se establecen todas las
opciones que el usuario puede determinar por su cuenta
Se pueden cambiar las características del programa
Los cambios realizados quedan guardados para futuras sesiones de matlab
Permite modificar en su gran parte las características visuales de matlab
(generalidades del texto)
Comentarios
---Se puede hacer más legible el código fuente y más estructurado
---Se introducen con el símbolo %
Los comentarios a como se puede ver en la imagen son presentados en color verde por defecto,
estos no aparecen ni afectan en nada a la hora de la ejecución
Whos hace una lista de variables que existen pero con más información
Home lleva el cursor a la primera línea pero no borra los comandos anteriores
Clc lleva el cursor a la primera línea y borra los comandos anteriores (las variables
siguen en la memoria, en el workspace)
Helpwin también muestra un texto de ayuda de alguna función, pero esta vez lo
muestra en una ventana independiente, fuera del command Windows
Format, permite editar el formato numérico con el que matlab muestra los resultados
en pantalla
En MATLAB
*No hace falta declararlas ni establecer su tamaño de antemano
*Es posible definir un tamaño y cambiarlo luego
*Las matrices se definen por filas
*Los elementos de una misma fila se pueden separar por:
-Espacios en blanco
-Comas (,)
*Las filas se separan por:
-Pulsaciones de enter
-Por el carácter punto y coma (;)
Ejemplos de Vectores:
Diferentes especificaciones
se podrán identificar en el
workspace
Si se desea obtener un
vector columna, los
valores deben separarse
por punto y coma (;)
Ejemplos de Matrices:
En el caso de las matrices, se
escriben de igual forma dentro
de corchetes y las filas se
separan mediante punto y
coma
A partir de la introducción de una matriz esta lista para realizar diferentes operaciones con los
valores introducidos
En el caso de matrices se accede a los elementos colocando los dos índices entre paréntesis
separados por una coma, es decir “A(i,j)”, donde “i” es la fila y “j” columna
Ejemplo:
Para matrices cuyos elementos son números reales, como es este caso, ambas funciones
devuelven el mismo resultado
En el caso de la potenciación, podemos utilizar el comando “mpower”, para realizar la
operación en la ventana de comandos se hace de la siguiente manera: “mpower(A,x)”,
donde A es la matriz y x es el exponente que deseamos efectuar o podemos realizar la
operación mediante el operador A^x
Sin embargo el operador de división tiene otro tipo de uso en MATLAB, donde el
procedimiento requiere de mucha atención:
Para la resolución de sistemas de ecuaciones lineales:
MATLAB también trabaja con variables escalares, que serían como matrices de
dimensión 1; MATLAB trabaja siempre con doble precisión, es decir, guardando cada
dato en 8 bytes
Double
Números reales de doble precisión
Como se puede apreciar en la primera operación el resultado es “Inf” que quiere decir infinito y en
la segunda y tercera operación el resultado es “NaN” que quiere decir Not a Number
Funciones que no tienen argumento en MATLAB:
-“Eps”, devuelve la diferencia entre uno y el número de coma flotante inmediatamente
superior, es decir, representa el número más pequeño posible que puede sumársele a 1
para que (1+eps)>1
eps= 2.2204e-16
-“Realmin”, devuelve el número más pequeño con el que se puede trabajar
realmin= 2.2251e-308
-“Realmax”, devuelve el número más grande con el que se puede trabajar
realmax= 1.7977e+308
Podemos apreciar que con el comando “int32()” se almacenan los valores con un peso de 8 bytes
Mientras que los comandos “intmin”, representan los valores mínimos que se pueden
representar en MATLAB a 32, 64 y 8 bytes
De igual forma el comando “intmax”, representa los valores máximos que se pueden
representar en MATLAB a 32, 64 y 8 bytes
Función isinteger(i)
Función “class(i)”
Ejemplos:
MATLAB utiliza por
defecto double
Las funciones singles y doubles permiten realizar conversiones entre ambos tipos de
variables
Del mismo modo, al ingresar los comandos anteriores seguidos de la función single o
duble, los resultados serán:
-“realmin(‘single’)”= 1.1755e-38
-“realmax(‘single’)”= 3.4028e+38
Función isofloat(x)
Permite saber si “x” es una variable real ya sea de simple o doble precisión, en el caso
de que lo sea se muestra un 1 y de no ser así se muestra un 0
Variables “logical”
En este ejemplo se desean conocer los elementos mayores a 5 que estén en la matriz A,
por lo tanto podemos observar la ejecución del comando j=A, y la ejecución devuelve
valores falsos o negativos; si deseamos comprobar que la matriz j es logical, escribimos
el comando isa(j,’logical’) y el resultado deberá ser 1.
Si deseamos intercambiar los valores mayores que 5 en la matriz deberemos ejecutar el
comando A(j)=x, donde x será el nuevo valor que deseamos poner.
Números complejos
En muchos casos matriciales los datos y/o resultados no son reales sino
complejos con parte real y parte imaginaria.
MATLAB representa la parte imaginaria de los números complejos mediante las
letras i o j.
A como podemos observar en estos ejemplos MATLAB, devuelve 2 resultados, un
número complejo y el valor imaginario (véase el ejemplo de a=sqrt(-4), sabemos que el
resultado de una raíz negativa es un número complejo)
Al momento de trabajar con números complejos se recomienda no utilizar variables
con i y/o j, es decir no definirlas con un valor numérico.
Función complex(a,b)
MATLAB dispone de una función llamada complex, que crea un número complejo a
partir de dos argumentos que representan la parte real e imaginaria.
Cadena de caracteres
En el workspace
podemos apreciar
que se guarda
como caracter
Operaciones con matrices y vectores
Se conoce que por defecto una expresión termina al pulsar enter, pero si se desea
seguir con la expresión en la siguiente línea se deben introducir 3 puntos)
-Nombres de variables:
*Deben empezar siempre por una letra.
*Pueden constar de hasta 63 letras y números.
*namelengthmax: Permite preguntar al programa por el número máximo de caracteres
permitidos como nombre de una variable. (El resultado será 63)
*MATLAB distingue entre mayúsculas y minúsculas (Case Sensitive)
*El carácter guion bajo (_) se considera como una letra.
*No es posible definir variables con el mismo nombre que las palabras clave de
MATLAB. (Para obtener la lista de palabras claves se usa el comando “iskeyword”
*MATLAB si permite crear variables con el mismo nombre que una función.
Otras formas de definir matrices
1. Matrices predefinidas
*Funciones auxiliares:
-size(A), devuelve el número de filas y el número de columnas de la matriz
A.
-length(x), devuelve el número de elementos de un determinado vector x.
-zeros(size(A)), forma una matriz de ceros del mismo tamaño de una
matriz A previamente creada.
-ones(size(A)), forma una matriz de unos del mismo tamaño de una matriz
A previamente creada.
-diag(x), forma una matriz diagonal cuyos elementos de su diagonal son los
mismos del vector x.
-diag(A), forma un vector a partir de los elementos de la diagonal de la
matriz ya existente A.
3. A partir de un archivo o fichero
Se pueden crear archivos .m, que luego son reconocidos por el command window al
momento de una ejecución.
Los operadores lógicos se combinan con los relacionales para poder comprobar el
cumplimiento de condiciones múltiples.
Programación en MATLAB
Estilos de programas
Para decir que un programa está desarrollado correctamente se recomienda seguir las
siguientes indicaciones:
1. La lectura del programa debe ser fácil de entender.
2. Los comentarios son recomendados para facilitar las aclaraciones del programa.
3. Definir las variables del programa desde el principio.
4. Para ver donde empiezan y donde acaban los ciclos y condicionales es costumbre
introducir una sangría en las líneas contenidas en ellos.
Control de flujo
If-else
Switch
For
While
Condicionales:
Los condicionales permiten realizar una u otra operación según se cumpla o no
determinada condición.
En los diagramas, las condiciones se cierran con rombos, mientras que la sentencia u
bloques de código se cierran por rectángulos
if
If: condición sentencias
End
La condición del if puede ser una condición matricial, del tipo A—B, donde A y B son
matrices del mismo tamaño.
Una condición de la forma A῀=B, donde A y B son matrices del mismo tamaño.
En resumen if A==B exige que todos los elementos sean iguales.
If A῀=B exige que todos los elementos sean diferentes.
Como se había dicho MATLAB cuenta con funciones para resolver operaciones
matriciales como:
Isequal(A, B): Devuelve un uno si las dos matrices son idénticas y un cero en caso de
que difieran en algo, además las variables de tipo cadena no pueden ser comparadas
mediante los operadores == o ῀=
Sentencia switch – case – otherwise
Su forma general es:
Switch var
Case opción 1
Bloque1
Case opción 2
Bloque2
Case opción 3
Bloque3
Otherwise
Bloque4
End.
Son ficheros con un nombre tal como «file1.m» que contienen una sucesión de
comandos análoga a la que se teclearía en el uso interactivo del programa. Dichos
comandos se ejecutan sucesivamente cuando se teclea el nombre del fichero que los
contiene. Cuando son ejecutados desde la línea de comandos, las variables pertenecen
al trabajo base de MATLAB, por el contrario, si se ejecuta desde una función, las
variables pertenecen al espacio de trabajo de la función.
Funciones
Características:
1. -En Matlab una función no puede definir nunca los argumentos que recibe, de cara
al entorno que ha realizado la llamada.
2. -Los resultados de una función en MATLAB se obtienen siempre a través de los
valores de retorno, que pueden ser múltiples y matriciales.
3. - Tanto el número de argumentos como el de valores de retorno no tienen que ser
fijos, dependiendo de cómo el usuario llame a la función.
4. -Las variables definidas dentro de una función son variables locales.
5. -Para que la función tenga acceso a variables que no han sido pasadas como
argumentos es necesario declarar esas variables como variables globales.
6. La ejecución de una termina cuando se llega a su última sentencia ejecutable. Si se
quiere forzar el que esta termine se puede usar la sentencia return, que devuelve
inmediatamente el control al entorno de llamada.
Referencias de función
Referencias de función
La referencia de función permite al usuario mantener el control sobre la función
que se está desarrollando.
1. Error en la sintaxis.
2. Errores en tiempo de ejecución.
Para ver cómo se utiliza el debugger en un caso concreto, considérense los siguientes
pasos:
1. Inicie la sesión de debugger creando los siguientes ficheros, llamados test.m y test1.m
test.m
function a=test(b)
c = sqrt(b)*cos(b);
a = test1(b,c);
test1.m
function a=test1(b)
q = cond(b);
[w,e] = eig(c);
a = w*q;
2. Utilizando el comando dbtype puede obtener el listado de estas funciones con los
números de cada línea, y puede aprovechar también para ver cómo es una función
propio de MATLAB (por ejemplo, la función condición numérica cond).
dbstop in test
dbstop at 19 in cond
línea 2.
test(magic(3))
2 c=sqrt(b)*cos(b);
2. Puede obtenerse una especie de mapa de las llamadas a todas las funciones que ha
habido hasta el momento, con el comando dbstack.
3. Para continuar con la ejecución del programa, tecléese dbcont. La ejecución prosigue
hasta alcanzar el siguiente breakpoint.
4. Se pueden ver cuántas nuevas llamadas a función ha habido hasta ahora con el
comando
dbstack.
Para conocer el valor de las variables del programa que desee, procédase del siguiente
modo:
1. Se pueden conocer las variables que se están utilizando en ese espacio de trabajo
tecleando los comandos who o whos.
3. Con el comando dbstep el programa avanza únicamente una nueva línea o sentencia.
2. Se pueden conocer las variables que son accesibles desde este espacio de trabajo
tecleando who, y el valor de cada una de ellas tecleando su nombre.
Una de las cosas que se puede hacer con el debugger es crear una nueva variable. Esto
se hace del siguiente modo:
2. Se puede ver que esta variable también aparece cuando se teclea who o whos.
2. Puede darse cuenta de que los breakpoint siguen vigentes si teclea dbstatus test.
Sumatoria.m
Set condition
Continue
2. Herramienta “Profiler”
Esta herramienta permite determinar qué secciones específicas del código consumen
cantidades excesivas del tiempo total de ejecución, lo que permite la posibilidad de
optimizar estas secciones específicas de código
Permite saber el tiempo que se requiere para ejecutar el script y todas las funciones
que éste llama. Luego, podemos usar esta información para optimizar nuestro código y
hacer que se ejecute más rápido.
Características de las funciones en MATLAB
El concepto de función en Matlab es semejante al de c y al de otros lenguajes de
programación, aunque con algunas diferencias importantes al igual que es una función
tiene nombre valor de retorno y argumentos una función se llama utilizando su nombre
en una expresión utilizando lo como un comando.
Por ejemplo:
>> [ máximo, posmax] = max (x);
>> r = sqrt(x^2+y^^2) + eps;
>> a= cos(alfa)- sin(alfa);
Una diferencia importante con otros lenguajes que Matlab las funciones pueden tener
valores de retorno matriciales múltiples.
Una característica de Matlab es que las funciones que no tienen argumentos no llevan
paréntesis por lo que a simple vista no siempre son fáciles de distinguir de las demás
variables.
Por ejemplo; (sin, cos, log, log10, ex, sqrt, round, fix, ceil, floor, abs, atan, atan2)
Matlab tiene una ventana independiente para realizar las operaciones gráficas, existen
unos comandos que abren esta ventana y otros que se utilizan para dibujar sobre la
ventana activa ya sea sustituyendo lo que hubiera en ella o bien añadiendo nuevos
elementos gráficos a un dibujo anterior.
Función plot
Esta es la función clave de todos los gráficos 2D en Matlab, el elemento básico de este
tipo de graficas es el vector. Se utilizan también cadenas de 1,2 o 3 caracteres para
indicar colores y tipos de líneas.
La tarea de esta función es la de crear vectores, también existe una segunda forma de
utilizar la funcione plot() e con dos vectores como argumentos. En este caso los
elementos del segundo vector se representan en ordenadas frente a los valores del
primer, que se representan en abscisas.
Por medio del comando title podemos añadir un título a la gráfica.
Por medio del comando Xlabel() se puede añadir una etiqueta o rotulo al eje de
abscisas, de igual forma ylabel() añade una etiqueta al eje de las y.
El comando grip activa la función de una cuadricula de dibujo y añadiendo off
desaparece la cuadricula.
El comando legent () define rótulos para las distintas líneas o ejes utilizados en la figura.
La función plot () dibuja una nueva figura en la ventana activa, sustituyendo cualquier
cosa que hubiera dibujada anteriormente en esa ventana; o abre una nueva figura si no
hay ninguna abierta.
La función plot () permite también dibujar múltiples curvas introduciendo varias parejas
de vectores como argumentos. En este caso, cada uno de los segundos vectores se
dibujan en ordenadas como función de los valores del primer vector de la pareja que se
representan en abscisas.
Plot (x, A) Dibuja las columnas (o filas) de A en ordenadas frente al vector x en abscisas.
Las dimensiones de A y x deben ser coherentes.
Plot (A, B) dibuja las columnas de B en ordenadas frente a las columnas de A en las
abscisas, dos a dos. Las dimensiones deben coincidir.
Función figure
Al usar la función figure sin argumentos, se crea una nueva ventana grafica con el
numero consecutivo que le corresponda.
El comando figure (n) hace que la ventana n pase a ser la ventana o figura activa. Si
dicha ventana no existe, se crea una nueva con el número consecutivo que le
corresponda.
UNIVERSIDAD NACIONAL DE INGENIERIA
REPORTE MATLAB
NOMBRE:
David Carlos Alaniz Moreira
TUTOR:
Sergio Álvarez
GRUPO
2M1-Q