Capítulo I
Características generales de Matlab
Msc. Ing. Jairo E. Márquez
Introducción a Matlab
MATLAB significa MATrix LABoratory (LABORATORIO DE MATRICES).
Creado en California por Jack Little and Cleve Moler en 1984, para realizar cálculo
matricial en ordenadores sin necesidad de conocimientos de programación.
Es una aplicación computacional de carácter técnico diseñado para la
solución de problemas matemáticos, en la que se integra el análisis numérico, la
estadística, probabilidad, optimización, cálculo diferencial e integral, algebra lineal,
procesamiento de señales, ecuaciones diferenciales e inteligencia artificial entre
otros, que permite además la adquisición de datos, gráficos en 2D y 3D de
funciones, desarrollo de algoritmos, modelamiento, simulación y prototipado,
desarrollo de aplicaciones con interfaces gráficas, etc..
También esta herramienta, permite el desarrollo de algoritmos y crear
aplicaciones interactivas, bien sea planas o con interfaces de usuario
personalizadas. El lenguaje nativo de MATLAB es C, con librerías desarrolladas en
LAPACK y BLAS. Con el lenguaje C, permite al usuario mediante el MATLAB Coder
el desarrollo de programas se realiza de manera fácil y casi intuitiva, para diversas
áreas científicas, educación e ingeniería.
El programa comercial lo distribuye The Mathworks Inc (Natick, MA).
[Link] que es compatible con los sistemas operativos Linux,
Windows y Mac.
MATLAB es un lenguaje de programación de alto nivel con un entorno
interactivo que permite el cálculo técnico, en la que se incluyen funciones para el
desarrollo de algoritmos, análisis de datos, cálculo numérico, y visualización.
Con MATLAB es posible reutilizar código heredado escrito en otro lenguaje de
programación, crear sitios web con capacidad de respuesta basados en MATLAB o
programar hardware mediante código C embebido libre de errores generado
directamente desde MATLAB. Los equipos que utilizan lenguajes de programación
diferentes pueden trabajar juntos, dedicando más tiempo a desarrollar productos y
menos a traducir el código a otro lenguaje.
MATLAB ofrece una integración bidireccional flexible con otros lenguajes de
programación, por ejemplo:
Llamada a MATLAB desde otro lenguaje
Llamada a librerías escritas en otro lenguaje desde MATLAB
Conversión de código de MATLAB a código C/C++
Empaquetado de programas de MATLAB
Llamada a MATLAB desde otro lenguaje
Con MATLAB Engine API es posible utilizarla desde otro entorno de
programación. Estas API permiten la ejecución de comandos de MATLAB desde su
lenguaje de programación sin tener que iniciar una sesión de escritorio en MATLAB.
Existen MATLAB Engine API disponibles para:
C/C++
Fortran
Java
Python
Aplicaciones y componentes COM, incluidos muchos programas escritos en
lenguajes tales como Visual C#® .NET y Visual Basic® .NET
Permite llamar librerías escritas en otro lenguaje desde MATLAB. También, si tiene
funciones y objetos en otro lenguaje de programación, puede llamarlos desde
MATLAB. A partir de la versión R2015b, es posible llamar a los siguientes
componentes de programa desde MATLAB:
• Librerías de Java
• Librerías de Python
• Funciones de archivos MEX para C/C++ o Fortran
• Librerías de C compartidas
• Librerías de .NET
• Objetos COM
• Servicios web RESTful y WSDL
Conversión de código de MATLAB a código C/C++
Existe la posibilidad de convertir los algoritmos de MATLAB a código C/C++
mediante MATLAB Coder. El código C generado es legible y portable, y ofrece
soporte para la mayor parte del lenguaje de MATLAB y una amplia gama de
toolboxes.
Si trabaja con un lenguaje de programación distinto de C/C++, puede usar el código
de MATLAB generado mediante MATLAB Compiler SDK. La decisión entre usar
MATLAB Coder o MATLAB Compiler SDK para la integración con C/C++ dependerá
de su flujo de trabajo y los requisitos, incluida la necesidad de que el código resulte
portable y autónomo.
Empaquetado de programas de MATLAB como componentes de software
Los programas de MATLAB se pueden empaquetar a modo de componentes de
software específicos del lenguaje para poder integrarlos con los lenguajes de
programación habituales. Estos componentes se pueden integrar con aplicaciones
personalizadas y se pueden desplegar en sistemas de escritorio, web y
empresariales.
Esta opción resulta útil si el usuario final no dispone de MATLAB. Los componentes
de software se crean mediante MATLAB Compiler SDK, y se pueden distribuir de
forma gratuita.
Es posible generar los siguientes componentes de lenguaje a partir de código de
MATLAB:
• Ensamblados de Microsoft .NET®
• Paquetes de Python
• Clases de Java®
1.1 Toolboxes de Matlab
Matlab cuenta con paquetes de aplicación de funciones especializadas
llamadas toolboxes, que proporcionan acceso a múltiples rutinas, importantes para
diversas aplicaciones científicas. Así:
Symbolic Math Toolbox.
Extended Symbolic Math
Data base Toolbox
Data Acquisition Toolbox
Instrument Control Toolbox
Curve Fitting Toolbox
Excel Link Toolbox
Control system Toolbox
Robust Control Toolbox
Frequency Domain System Identification Toolbox
Fuzzy Logic Toolbox
Higher Order Spectral Analisys Toolbox
Image Processing Toolbox
Mapping Toolbox
Model Predective Control Toolbox
Μ-Analysis and Synthesis Toolbox
LMI (Inecuaciones Matriciales Lineales) Control Toolbox
Model Predictive Control Toolbox
Model Based Calibration Toolbox
NAG Foundation Toolbox
Neural Network Toolbox
Nonlinear Control Design Toolbox
Optimization Toolbox
Quantitative Feedback Theory Toolbox
Signal Processing Toolbox
Filter Desing Toolbox
Wavelet Toolbox
System Identification Toolbox
Spline Toolbox
Statistics Toolbox
System Identification Toolbox
Partial Differencial Equation Toolbox
Financial Toolbox
Financial Time Series Toolbox
Financial Derivatives Toolbox
Garch Toolbox
Datafeed Toolbox
Wireless System Design: Trabaja con tecnologías contemporáneas como
LTE, 5G y WLAN, al igual que con esquemas de modulación: FBMC, UFMC,
GFDM, entre otros.
1.2 Productos Simulink
Otras de las herramientas fundamentales que forman parte de Matlab, y muy
útil para el área de la ingeniería, es Simulink, que provee los medios de diseño y
simulación de sistemas dinámicos lineales como no lineales en tiempo real a partir
de entornos gráficos interactivos de modelado basado en eventos, que se realizan
por medio del uso de diagramas de bloques, al igual que la incorporación de código
en C en los mismos. Permite, además, el modelado físico, análisis de sistemas,
procesamiento de señales y comunicación, gráficos de simulación y presentación
de informes.
Los productos de simulink están divididos según su aplicación, así:
1. Modelamiento basado en eventos.
- StateFlow: Diseño y simulación de máquinas de estado.
- SimEvents: Modelación y simulación de sistemas discretos.
2. Modelamiento físico
- Simscape: Modela y simula sistemas físicos multidominio.
- SimMechanics: Modela y simula sistemas mecánicos multicuerpo.
- SimDriveline: Modela y simula sistemas mecánicos unidimensionales.
- SimHydraulics: Modela y simula sistemas hidráulicos.
- SimRF: Diseña y simula sistemas de Radio Frecuencia.
- SimElectronics: Modela y simula sistemas electrónicos y mecatrónicos.
- SimPowerSystems: Modela y simula sistemas eléctricos de potencia.
3. Prototipado y simulación rápida. Targets
Las targets (o tarjetas de adquisición de datos) se relacionan con Matlab
mediante módulos que permiten la gestión de señales de sistemas de
monitoreo.
4. Verificación, validación y prueba
- Simulink Verication and Validation: Comprueba modelos y código
generado al realizar la simulación.
- Simulink Design Verifier: Identifica los errores de diseño, genera vectores
de prueba, verificación de diseños y requisitos de un sistema previamente
diseñado.
- SystemTest: Administra pruebas y analiza los resultados para sistemas de
verificación y validación.
- HDL Verifier: Verifica sistemas VHDL y Verilog, utilizando simuladores de
HDL y bancos de pruebas tipo FPGA-in-the-loop.
- Simulink Code Inspector: Automatiza las revisiones de código fuente para
los estándares de seguridad.
- Polyspace Client for C/C++: Muestra la ausencia de errores en tiempo de
ejecución en el código fuente.
- Polyspace Server for C/C++: Realiza códigos de verificación de clusters de
computadores y muestra sus respectivas métricas.
- Polyspace Client for Ada: Prueba la ausencia de errores en tiempo de
ejecución en el código fuente.
- Polyspace Server for Ada: Realiza código de verificación en clústeres de
computadores y publica sus métricas.
- Polyspace Model Link SL: Traza resultados poliespaciados en modelos de
Simulink.
- Polyspace Model Link TL: Traza resultados poliespaciados mediante
sistemas dSPACE TargetLink blocks.
- Polyspace UML Link RH: Realiza el seguimiento de los resultados
poliespaciados para sistemas tipo IBM Rational Rhapsody models.
- DO Qualification Kit: Calificador de herramientas de Simulink y verificación
poliespaciada bajo la norma DO-178 y DO-278.
5. Gráficas y desarrollo de reportes de Simulación.
- Simulink 3D Animation: Animación y visualización de modelos en 3D.
- Gauges Blockset: Señales para monitoreo con instrumentación gráfica.
- Simulink Report Generator: Generación de documentación para Simulink
y modelos Stateflow.
6. Otras herramientas implementadas en las últimas versiones
- Simulink Perfomance Tool
- Requirements Management Interface
- Virtual Reality
- Simulink for Arduino
1.3 Matlab C Math Library
Esta librería de Matlab está constituida por las siguientes categorías de
funciones y archivos .m compilados, como son:
Funciones matemáticas básicas y especializadas.
Matrices y vectores.
Estadística básica y análisis de datos.
Gestión de cadenas de caracteres.
Operadores lógicos y aritméticos.
Gestión de memoria y errores.
Polinomios e interpolación.
Entradas y Salidas.
Algebra lineal.
1.4 Herramientas de desarrollo
MATLAB posee herramientas de desarrollo para implementar los algoritmos
de manera eficiente, entra las que se puede destacar:
- MATLAB Editor. Esta la componen las funciones de edición y de depuración
estándar.
- M-Lint Code Checker. Se encarga del análisis del código y emite
recomendaciones en cuanto a mejoras o modificaciones del mismo para
optimizar el rendimiento y mantenimiento.
- MATLAB Profiler. Se encarga de registrar el tiempo de ejecución de las líneas
de código que forman parte del programa.
Nota 1. Matlab ha incursionado en los sistemas móviles, mediante la
creación de herramientas de desarrollo relacionadas con el sistema
operativo Android, que se pueden encontrar en Google Play Store.
Existen tres grupos principales de aplicaciones móviles:
- Guías de referencia sobre Matlab.
- Control remoto de Matlab.
- Emuladores de Matlab para Android.
Para el primer caso se encuentra Matlab Quick Reference Guide. Es una guía
básica que muestra información sobre Matlab clasificada por categorías, donde
aparecen las funciones explicadas brevemente.
Para el segundo caso, existen aplicaciones que permiten controlar
remotamente Matlab, que se estará ejecutándose en un PC. Hay un par de
aplicaciones, muy sencillas que permiten ejecutar operaciones potentes.
1. Matlab Commander. Esta aplicación permite ejecutar diversos comandos de
Matlab de manera remota. La comunicación entre la aplicación y el
computador no está encriptada.
2. Matlab Connect Free Edition. Esta aplicación es similar a la anterior, con la
diferencia que a nivel gráfico es menos agradable para el usuario.
Ambas aplicaciones requieren de instalar un programa en el computador,
además de Matlab. Matlab Commander se ejecuta con un archivo con extensión .jar
en el computador y Matlab Connect con un .m dentro de Matlab.
Existe otra aplicación bastante interesante llamada Matlab Mobile, que
permite conectar el smarphone o Tableta a Matlab. Esta aplicación crea y edita
archivos, al igual que permite observar los resultados de los datos adquiridos de un
grupo de sensores.
Para el tercer caso, existen diversos emuladores, uno de ellos es Mathmatiz.
Este emulador permite realizar autocompletado de funciones, muy útil en un
dispositivo móvil. La aplicación tiene un teclado integrado, lo que facilita digitar
expresiones matemáticas.
Otro emulador es Addi; el cual es un proyecto de software libre, cuyo objetivo
es implementar de forma completa Octave para Matlab. La forma de funcionamiento
es similar a Mathmatiz, con la diferencia que posee ayuda en línea.
Ambos emuladores permiten realizar cálculos complejos de Matlab, por lo
que el desarrollo de scripts más estructurados es viable, máxime si se van a correr
en un móvil.
En Google Play Store se pueden encontrar diversas aplicaciones relacionadas
con Matlab, unas gratis y otras pagas, aquí se citan algunas que en el momento de
edición del libro estaban activas:
- Manual Matlab
- Matlab Tutorial
- Learn Matlab Pro
- Learn Matlab for Beginner
- Learn Matlab complete Guide
- Matlab Fuction
- Matlab Langauge
- Matlab Hep Learn
- MATLAB and Simulink Events
- Sapno ka Matlab
Las herramientas para Android están divididas en tres grupos principales:
- Matlab Quick Reference Guide (Guías de referencia de Matlab). Estas guías
aparecen clasificadas por categorías y se explican las funciones disponibles que
posee Matlab.
- Matlab Remote Control (Control remoto de Matlab). Es un conjunto de
aplicaciones (Matlab Commander, Matlab Connect Free Edition) que permite
controlar de forma remota a Matlab, se ejecuta desde un computador que asume
el papel de servidor, permitiendo con ello gestionar los comandos enviados
desde Android para devolver el resultado, bien sea numérico como gráfico.
Estas aplicaciones requieren de manera adicional, instalar un programa que
ejecute un .jar en el computador, esto para Matlab Commander, para Matlab
Connect se requiere un .m dentro de Matlab.
- Android Emulators Matlab (Emuladores de Matlab para Android). En realidad,
son varios emuladores, el primero de ellos es Mathmatiz, que se caracteriza por
tener la función de autocompletado de funciones, útil en un dispositivo móvil.
Esta aplicación presenta un teclado integrado que permite digitar las
expresiones matemáticas y/o scripts .m.
El segundo emulador es Addi, que es un proyecto de software libre que busca
ser implementado con la aplicación matemática Octave1 sobre Matlab,
complementando de esta manera su potencial computacional en materia de
cálculos matemáticos más complejos.
Addi es más completo que el de Mathmatiz en cuanto a funcionalidad y
herramientas matemáticas que puede gestionar, sumado a que cuenta con
ayuda en línea, es más estable y permanentemente se le está realizando
mejoras. Este es un aspecto a tener en cuenta a la hora de emplear este tipo de
herramienta, que aparte de tener soporte, esté constantemente actualizándose.
Las dos herramientas citadas son lo suficientemente funcionales para que corran
sobre Android emulando a la perfección Matlab en términos generales.
1.5 Escritorio de Matlab
Cuando se inicia Matlab, el escritorio (desktop) aparecerá con sus paneles
en la disposición (layout) por defecto (default). Vamos a ver con mayor detenimiento
estas partes:
1
Octave o GNU Octave es la contraparte de Matlab, con la diferencia que es software libre. Entre las
características que comparte con Matlab es cargar archivos .m, soportar parte de las funciones matemáticas que
forman parte de la biblioteca estándar de C de Matlab.
Command Window (ventana de comandos)
Es la región principal donde se ejecutan las operaciones directas en Matlab,
tales como cálculos, programas script, en la que se registran los resultados de las
mismas.
Figura 1.1. Interfaz gráfica de Matlab, que por defecto se establece de la forma como aparece
distribuida en la figura. Tenga en cuenta que esta interfaz se puede personalizar según conveniencia
del usuario.
En este espacio aparece por defecto dos flechas al lado de la función en el
command window llamado promp (>>)
Figura 1.2. El promp es un símbolo matemático que expresa que está activo Matlab y permite el
ingreso y salida de información.
Este símbolo tiene como objetivo indicar el inicio y final de una operación.
Command History (Historial de comandos)
Guarda todos los comandos que se han digitado en el Command Window.
Esta ventana es importante, porque permite revisar las tareas y/o ejercicios
realizados en sesiones previas, revisando el historial de comandos. También,
permite re-ejecutar los comandos que han sido ingresados previamente a través de
la línea de comandos.
Si no aparece directamente activo en la nueva versión, se puede localizar a
la parte superior derecha de Matlab, tal como se muestra en la imagen.
Figura 1.3. El command history por defecto está oculto, pero puede dejarse fijo en la interfaz
gráfica, al seleccionarse el botón Layout, luego, command history y Docket.
Workspace (Espacio de Trabajo)
Este espacio proporciona información acerca de las variables que se están
utilizando en el command window.
Matlab ofrece la posibilidad de cargar o guardar las variables que desee el
usuario. Los comandos relacionados para esta tarea que gestionan el workspace
son:
- load: carga el workspace desde un archivo, tiene varias funciones, por lo que se
recomienda consultar la ayuda que ofrece Matlab.
- save: guarda el workspace las variables solicitadas en el archivo de nombre
dado con el formato pedido con el argumento opcions. Para conocer los
formatos disponibles y sus posibles incompatibilidades se recomienda consultar
la ayuda que ofrece Matlab.
- diary: Esta función permite guardar todos los comandos y resultados en un
archivo cuyo nombre se asignó previamente. Se recomienda consultar la ayuda
que ofrece Matlab. Por ejemplo:
diary('nombrearchivo')
diary on
texto='graba todo lo que se coloque aquí';
diary off
texto2='ya ha culminado la grabación';
De lo anterior se infiere que por medio del Workspace se puede explorar
datos que se vayan creando o importando a partir de archivos.
Current Folder (Directorio Actual)
Muestra los ficheros creados y guardados en el subdirectorio de Matlab.
Como ejercicio se va a crear una carpeta que la vamos a denominar
“prueba”, en la cual se van a guardar los scripts que se desarrollen como ejercicios.
Para ello dar clic derecho sobre la pestaña Current Folder, allí se despliega una
serie de opciones, entre ellas New Folder, tal como señala la flecha en la figura 1.4.
Figura 1.4. Instrucción pata crear una carpeta de trabajo de Matlab.
Se cambia el nombre de New Folder a prueba (ver la flecha). Luego, la carpeta
de trabajo que se establece es prueba, como se comprobará en la
ventana Current folder.
El siguiente paso es establecer como carpeta principal la “carpeta prueba”,
esto con el fin que todos los scripts y/o demás archivos, sean guardados en la
mencionada carpeta. Para ello solo dar doble clic en la carpeta y con ello queda
todo listo.
Si desea verificar la existencia de la carpeta de otra manera, solo diríjase a
donde quedo la carpeta de trabajo de MATLAB, que para este caso en particular en
el Sistema Operativo Windows se crea en Mis documentos por defecto.
Cabe agregar, que un fichero tipo script se puede seleccionar con el
cursor para eliminarlo y cambiar de nombre en la ventana Current folder.
1.6 Entorno de trabajo de MATLAB
La última versión de Matlab es la R2020a cuando se editó este libro, en la
que se destaca en su interfaz gráfica, la introducción de la Cinta de Herramientas
o Toolstrip. En ella, aparecen organizadas las funciones del escritorio, que en
versiones anteriores se encuentra en los menús y barra de herramientas, tal como
se muestra en la figura 1.5:
Figura 1.5. Cinta de herramientas de la ventana principal de Matlab
Como se aprecia en la cinta, aparece un conjunto de pestañas globales
divididas en secciones (HOME, PLOTS y APPS), en la que cada una gestiona
controles, tales como botones y menús desplegables.
Es importante anotar que, si se desea maximizar el espacio ocupado por la
cinta para ver otros botones de Matlab, se puede dar clic derecho sobre cualquier
parte de la misma, luego seleccione Minimize Toolstrip. También, se puede dar
doble clic en cualquiera de las pestañas y automáticamente estas se minimizan, tal
como se observa en la figura 1.6:
Figura 1.6. Toolstrip minimizado.
Para restaurar temporalmente solo dar clic en una pestaña. Si se desea
restaurar definitivamente, dar clic derecho sobre la cinta y seleccionar Restore
Toolstrip, o en su defecto, dar doble clic en cualquiera de las pestañas.
Para la gestión de las pestañas globales, se procede a dar una explicación
general de las mismas:
La pestaña Home gestiona operaciones de propósito general sobre
archivos tales como: crear scripts (New Script), abrir (Open), crear, comparar y
buscar archivos, importar datos, salvar información en el workspace, y sobre esta,
crear, abrir o borrar variables. También, desde esta cinta se puede acceder a las
librerías de Simulink, administrar el espacio de trabajo o workspace y configurar la
distribución del escritorio (layout), tal como se muestra en la figura 1.7:
Figura 1.7. Pestaña principal Home.
La pestaña PLOTS se usa para crear gráficas y para ello se vale de una
galería que dispone Matlab, al igual que los toolbox que se instalen eventualmente.
Para el uso de esta galería, se debe seleccionar las variables a graficar en la
ventana Workspace y luego se escoge el tipo de visualización.
Cabe anotar que la galería según los datos de entrada, va a mostrar las
opciones de graficación más apropiadas, tal como se muestra parcialmente en la
figura 1.8:
Figura 1.8. Pestaña que relaciona las diversas opciones de graficas en 2D y 3D.
La pestaña APPS está destinada a la ejecución de aplicaciones interactivas
que se obtienen automáticamente con los Toolboxes que estén instalados. El ícono
que apunta hacia abajo, despliega la galería con más opciones, como se observa
en la figura 1.9:
Figura 1.9. Apps relacionadas con las aplicaciones interactivas de Matlab.
Los tres botones a la izquierda de la pestaña son más aplicaciones, que
dan espacio para instalar otras o para empaquetar dado el caso.
Pestañas contextuales
Las pestañas contextuales aparecen solo cuando se realizan tareas
específicas. Por ejemplo, si se usa el Editor de Matlab, éste va a desplegar tres
nuevas pestañas, Editor, Publish y View.
Normalmente el Editor no está acoplado al escritorio, y de estarlo las
pestañas citadas aparecen cerca de las pestañas globales, tal como se observa en
la figura 1.10:
Figura 1.10
La pestaña contextual Editor está compuesta por una serie de funciones
que permiten la edición de un archivo, en la que también se dispone de una sección
Debug para el depurado del código tal como se muestra en la figura 1.11:
Figura 1.11. Pestaña del editor que está relacionada con la creación y diseño de un script.
Si se coloca un "breakpoint" en el archivo y se hace "clic" en RUN, la
pestaña Editor toma el aspecto de la imagen siguiente:
Figura 1.12. Ubicación del botón Breakpoit.
La pestaña Publish es la que permite dar formato y almacenamiento a los
textos y/o archivos creados en Matlab, tal como se observa en la figura 1.13:
Figura 1.13
La pestaña View permite controlar la apariencia y layout de los archivos,
tal como se observa en la figura 1.14.
Figura 1.14.
Existen otras pestañas contextuales ubicadas en el Editor de Variables
(Variable Editor), que queda para el lector explorar.
Minimizar pestañas
Para aprovechar el espacio vertical de trabajo de Matlab se puede minimizar las
pestañas dando clic derecho en cualquier parte del Toolstrip y seleccionar
“Minimize Toolstrip” tal como indica la flecha en la imagen 1.15:
Figura 1.15.
Luego dar clic en este ícono, de esta manera las pestañas se minimizan luciendo
así:
Figura 1.16
Para restablecer las pestañas, se procede a ubicar el cursor en cualquier lugar del
Toolstrip, dar clic derecho, aparece la leyenda “Restore Toolstrip”, clic de nuevo
y queda completo el proceso.
1.7 Apps de Matlab
Las herramientas que forman parte de las Apps de Matlab poseen diversas
funcionalidades útiles en diversos campos científicos e ingeniería en general.
1.8 Comandos de ayuda general
Help
El comando help proporciona ayuda general sobre las herramientas que
dispone Matlab en cuanto a sus funciones disponibles.
Al digitar esta instrucción en el command Window, se despliega gran cantidad de
información relacionada con las funciones que dispone Matlab para diversas
aplicaciones, tal como se observa en la figura 1.17. Si se desea profundizar en
alguna función en particular, solo debe dar clic en alguna de ellas, y esta
automáticamente va a desplegar más información complementaria.
Figura 1.17. Al digitar la instrucción Help en la ventana de trabajo de Matlab, se despliegan las
funciones que dispone el usuario según sus necesidades.
Nota 2. La barra azul que aparece en la esquina superior derecha de la cinta
de herramientas, se usa para accesos rápidos al entorno de Matlab.
Para pedir ayuda sobre un comando específico o cualquier tema
relacionado con Matlab, se puede digitar las siguientes instrucciones help comando
o help tema. Observe los respectivos ejemplos en las figuras 1.18 y 1.19:
Figura 1.19. Como ejemplo, se digita la instrucción help filter, luego dar enter, en seguida se despliega
información sobre la función, en la que se define y se expone su sintaxis general, al igual que otros
comandos complementarios.
Figura 1.20. Al digitar un tema particular en la ventana de trabajo, Matlab brinda bastante
información acerca del mismo.
Existe otra opción de ayuda, que es dirigirse directamente a la pestaña
HOME y oprimir el botón Help, en la que se despliega varias opciones de búsqueda
según necesidades específicas. Si dado el caso desea saber sobre alguna función
en particular, puede digitarse en el espacio Search Documentation, en la parte
superior.
Doc
Es un comando similar a help, con la diferencia que el resultado de las
consultas se visualiza en una página web. Para tener acceso a la información
consignada en la página, debe registrarse. Digitar en el command Window:
>> doc
Demos
Es un comando de ayuda que permite obtener información adicional de las
funciones de Matlab, simulink y otras herramientas específicas del programa. Digitar
en el command Window:
>> demos
Comando secuencia
Este comando lookfor permite encontrar funciones o comandos que se
refieren a una secuencia en específico. Por ejemplo, al buscar ayuda para todos los
comandos que contienen la secuencia inv, se puede usar el comando lookfor inv.
>> lookfor inv
idlti - Linear Time-Invariant model with Identifiable Parameters.
ultidyn - Creates uncertain linear time-invariant block.
lti - Linear Time-Invariant Model objects.
invalidateaxis -Invalidate an axis to recompute limits and ticks
ifft - Inverse discrete Fourier transform.
ifft2 - Two-dimensional inverse discrete Fourier transform.
ifftn - N-dimensional inverse discrete Fourier transform.
ifftshift - Inverse FFT shift.
….
Editor
Tiene como objetivo crear y depurar los ficheros script, funciones y
programación en general. Para su apertura se presentan tres formas:
1. Seleccionar directamente en el botón New Script: En este caso, se abre el
editor estándar, cuya extensión una vez que se guarde es “.m”.
2. Seleccionar directamente en el botón New Live Script: Se abre el editor
especial, cuya extensión una vez que se guarde es “.mlx”. La diferencia de
este script respecto al primero, es que para su ejecución empleando la
instrucción RUN, no requiere que previamente se guarde el programa.
Además, su interfaz de presentación de los datos es más estilizado.
3. Dirigirse al botón New, el cual despliega una serie de opciones, tal como se
observa en la imagen 1. 21 (Script, Live Script, Function, Live Function,
Class, System Object, etc.).
Figura 1.21
Otra forma es teclear en la línea de comandos del espacio de trabajo de
Matlab, la palabra edit seguida del nombre que se le quiere asignar al programa.
Por ejemplo:
>> edit programa1
Figura 1.22
Como se aprecia en la figura 1.22, aparece un mensaje que indica que el
archivo no existe y pregunta si desea crearlo, a lo que se responde que sí. Luego,
aparece inmediatamente el entorno de programación.
Interfaz gráfica de Usuario
La interfaz gráfica de usuario o GUI (Graphical User Interfase) es un
programa que permite la interacción entre el usuario y la aplicación basado en
interacción visual por medio de iconos, menús o punteros. En el caso de Matlab la
GUI está compuesta por un conjunto de herramientas que permite el diseño y
edición de la interfaz de usuario. Dentro de los elementos más relevantes para crear
la GUI está los paneles, los botones de pulsación, menús desplegables, cuadros de
texto y barras de desplazamiento, entre otros.
Una vez creada la interfaz, se generan automáticamente dos ficheros; uno
con extensión “.fig” que contiene toda la información sobre la parte visual de la
interface, y el otro fichero con la extensión “.m” en la que aparece codificado la
respuesta a las acciones del usuario sobre los controles.
Para poder acceder de manera rápida al GUIDE, se digita en la ventana de
trabajo la palabra guide, o en su defecto se dirige a parte superior a la pestaña
New, y se selecciona la opción señalada en la figura 1.23, y se da clic en ella.
Figura 1.23. Ruta para abrir el recurso de Simulink.
Aparece en siguiente cuadro
Figura 1.26. Ventana para el acceso de la plantilla de la interfaz gráfica de usuario.
Se elige la opción por defecto, Blank GUI. Las otras opciones ofrecen una
plantilla en la que ya existen algunos controles (Uicontrols), o se encuentra
incorporado un gráfico y un menú activo.
Cuando se selecciona black GUI se despliega un conjunto de iconos que
permite crear la interfaz, más delante se profundizará sobre este tema.
Comandos especiales de Matlab
Matlab dispone de algunos comandos, que son de gran ayuda para consultar
aspectos puntuales sobre alguna instrucción en particular, o conocer acerca del
propio programa, sus funcionalidades, gestión de recursos, etc., tales como:
2.1 Ayuda
Se utiliza cuando no se entiende la sintaxis de un comando o función. Para ello, se
digita help y el nombre del comando o función en cuestión.
Por ejemplo: Proporciona ayuda sobre la instrucción sqrt (raíz cuadrada).
>> help sqrt
sqrt - Square root
This MATLAB function returns the square root of each element
of the array X.
B = sqrt(X)
See also nthroot, realsqrt, sqrtm
Reference page for sqrt
Other functions named sqrt
Digitar solo help, se despliegan todas las funciones que dispone Matlab en sus
librerías, tal como se ha explicado en la unidad 1.
2.2 Versión de Matlab
Es importante saber en ciertas ocasiones con qué versión de Matlab se está
trabajando, para ello digite la instrucción versión, pero en inglés.
>> version
2.3 Computador
Para conocer el tipo de equipo de cómputo y sistema operativo sobre el que está
instalado Matlab, se emplea la instrucción:
>> computer
Mostrar información de la memoria
Matlab puede mostrar información acerca de cuánta memoria está disponible y
cuánto está utilizando el software actualmente. La información mostrada en la
pantalla del computador incluye los siguientes elementos:
- Matriz máxima posible: Muestra el tamaño del bloque de memoria libre
contiguo más grande. Como tal, es un límite superior de la matriz más grande
que Matlab puede crear en este momento.
- Memoria disponible para todas las matrices: Matlab muestra la cantidad
total de memoria disponible para almacenar datos, que pueden ser gestionados
a través de dos acciones:
El espacio de direcciones virtual disponible para Matlab.
La memoria disponible total del sistema.
- Memoria utilizada por MATLAB: Muestra la cantidad total de memoria del
sistema reservada para los procesos de Matlab. Es la suma de la memoria
física y el uso potencial de archivos de intercambio.
- Memoria física (RAM): Muestra la cantidad disponible y total de memoria física
(RAM) en el equipo que ejecuta Matlab. La memoria física disponible es la
misma que tiene el Administrador de tareas de Windows: rendimiento/memoria
física y la memoria física total es la misma.
La sintaxis para estos elementos es la siguiente:
memory
userview = memory
[userview systemview] = memory
>> memory
Maximum possible array: 7893 MB (8.276e+09 bytes) *
Memory available for all arrays: 7893 MB (8.276e+09 bytes) *
Memory used by MATLAB: 1439 MB (1.508e+09 bytes)
Physical Memory (RAM): 8174 MB (8.571e+09 bytes)
* Limited by System Memory (physical + swap file) available.
La función de memoria sólo está disponible en los sistemas Microsoft Windows. Los
resultados dependen del hardware del computador y de la carga a la que está
expuesto el mismo.
>> userview = memory
userview =
MaxPossibleArrayBytes: 8.0443e+09
MemAvailableAllArrays: 8.0443e+09
MemUsedMATLAB: 1.5158e+09
Para la tercera sintaxis
>> [userview systemview] = memory
userview =
MaxPossibleArrayBytes: 8.0735e+09
MemAvailableAllArrays: 8.0735e+09
MemUsedMATLAB: 1.5169e+09
systemview =
VirtualAddressSpace: [1x1 struct]
SystemMemory: [1x1 struct]
PhysicalMemory: [1x1 struct]
El espacio de direcciones virtuales (VirtualAddressSpace), es la cantidad de
memoria virtual disponible y total para los procesos de Matlab, el cual devuelve la
información en dos campos: Disponible y Total.
La memoria del sistema (SystemMemory), es la cantidad de memoria disponible en
el sistema informático. Este número incluye la cantidad de memoria física disponible
y la cantidad de espacio de archivos de intercambio disponibles en el equipo que
ejecuta, el cual devuelve la información en el campo SystemMemory de la estructura
de devolución.
Licencia
Para conocer si Matlab es licenciado o no se emplea la instrucción license. Es
importante saber este detalle, porque de no ser licenciado, este programa posee
restricciones que imposibilitan la ejecución de ciertas librerías clave, sumado a las
vulneraciones de derecho de autor a la que se está sujeto.
>> license
2.6 Limpiar pantalla
Se emplea el comando clc, el cual borra o limpia toda la ventana de comandos,
pero no borra internamente el valor de las variables de la memoria.
2.7 Estructuras del lenguaje de MATLAB
Para ver la descripción completa de las estructuras del lenguaje de MATLAB que
son claves para la programación, digite:
>> help lang
Programming language constructs.
Control flow.
if - Conditionally execute statements.
else - Execute statement if previous IF condition failed.
elseif - Execute if previous IF failed and condition is true.
end - Terminate scope of control statements.
for - Repeat statements a specific number of times.
parfor - Parallel FOR-loop.
…..
…..
Para imprimir el directorio raíz de Matlab:
>> matlabroot
ans =
C:\Program Files\MATLAB\R2015a
2.8 Práctica 1
Crear un acceso directo para borrar la zona de trabajo del Command Window.
1. Se digita el command window clc.
2. Luego se va a command history, se busca clc, se da clic derecho y seleccionar
create Favorite, tal como se indica en la figura 1.21:
Figura 2.1
3. Se le da el nombre al acceso en el espacio label (etiqueta) tal como indica la
flecha en la figura 2.2, en este caso Limpiar ventana.
Figura 2.2
4. Para personalizar el icono se va a “Icon” en el botón señalado con la flecha
hacia abajo y se busca la imagen que se desee. Luego salvar.
5. Para verificar el proceso anterior, dirigirse a la pestaña HOME, luego, ubicar el
botón Favorites dando clic en él. Como se observa en la figura 2.3, aparece
un pequeño botón que al oprimirse podrá borrar lo consignado en el Comman
Window.
Figura 2.3
Con esta misma operación se puede personalizar cualquier comando para los
requerimientos y/o necesidades del usuario.
2.9 Borrar toda la pantalla
Se emplea el comando clear para borrar el contenido digitado (variables locales,
funciones o variables globales) tanto en el espacio de trabajo, como lo que hay
almacenado en el workspace.
El uso de clear debe ser generalizado en las operaciones que se realicen, esto se
debe, porque a medida que se inician variables sin declararlas, hace que se esté
acumulando memoria en uso, lo que da como resultado una pérdida de rendimiento
de la misma (memory leak). Matlab no libera memoria una vez terminada una
ejecución de una función que emplee variables internas por lo que es recomendable
evitar la pérdida de memoria, simplemente liberando la utilizada.
Cabe recordar que Matlab emplea bastantes recursos computacionales y es una
buena práctica mantener óptimo el programa para evitar problemas en los procesos
por falta de memoria, que deriva que el sistema se torne lento o se bloquee.
>> clear var_1
Observe el workspace, y notará que la variable ha sido borrada.
Nota 1. Si no se añade ninguna razón de variable al comando clear, éste
borrará todas las variables en el workspace.
>> clear
>> whos
>> who
Como se aprecia, no aparece ningún registro.
Con el comando clear all limpia todo, incluyendo lo que hay en el workspace.
Para hacer limpieza de elementos específicos de Matlab existen otras opciones
como:
clear variables: Equivale al comando clear.
clear global: Elimina las variables globales.
clear functions: Elimina todas las funciones compiladas.
Aunque no es obligatorio, lo habitual es colocar al inicio de un script un conjunto de
instrucciones “de limpieza” del tipo hold off, axis, subplot, clear all, close all,
close all hidden, clc,…
2.10 Calendar
Permite que Matlab muestre el calendario asociado a la fecha actual en la que se
está abriendo el programa, para ello solo digite calendar
>> calendar
Feb 2019
S M Tu W Th F S
0 0 0 0 0 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 0 0
0 0 0 0 0 0 0
También se puede especificar otro mes y año como argumento. La sintaxis general
es:
c = calendar
c = calendar(d)
c = calendar(y, m)
>> calendar(1995,8)
Aug 1995
S M Tu W Th F S
0 0 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 0 0
0 0 0 0 0 0 0
2.11 weekday
Esta instrucción devuelve el día de la semana para un dato serial numérico. La
sintaxis general es la siguiente:
- DayNumber = weekday(D). Devuelve un número que representa el día de la
semana para cada elemento en D.
- [DayNumber,DayName] = weekday(D). Devuelve abreviado los nombres en
inglés para el día de la semana, en DayName.
- [DayNumber,DayName] = weekday(D,DayForm). Devuelve el nombre del día
de la semana en el formato especificado por DayForm, en inglés de los [Link].
- [DayNumber,DayName] = weekday(D,language). Devuelve el nombre
abreviado del día de la semana en el idioma especificado local.
- [DayNumber,DayName] = weekday(D,DayForm,language). Devuelve el
nombre del día de la semana en el formato especificado y en el idioma de la
localidad especificada.
Ejemplos
1. Si D=7, el número del día es:
>> Ndia=weekday(7)
Ndia =
6
2. Que día es el 24 de diciembre del 2025
>>D = '24-Dec-2025';
>>[DayNumber,DayName] = weekday(D)
DayNumber =
4
DayName =
Wed
3. Devolver el nombre completo del día de la semana para un vector de
números de fecha en serie.
>>D = [750498;735236];
>>DayForm = 'long';
>>[DayNumber,DayName] = weekday(D,DayForm)
DayNumber =
6
4
DayName =
Friday
Wednesday
4. Qué día es el 3 de Agosto del 2020.
>>D = '03-ago-2020';
>>spanish='local'
>>[DayNumber,DayName] = weekday(D,spanish)
spanish =
local
DayNumber =
2
DayName =
Lun.
5. Regrese los nombres de los días en español usando el argumento de entrada
de idioma.
>>D = 828647;
>>DayForm = 'long';
>>language = 'local';
>>[DayNumber, DayName] = weekday(D,DayForm,language)
DayNumber =
7
DayName =
Sábado
2.12 Date
Se emplea el comando date (fecha) que muestra la fecha actual.
>> date
ans =
'09-Feb-2019'
Nota 2. La palabra ans que aparece después de ejecutar una operación, es
la abreviatura de respuesta (answer) o valor calculado de una expresión.
2.13 Now
Devuelve un número (serial date number) que contiene toda la información de la
fecha y hora actual.
Se utiliza como argumento de otras funciones.
>> now
ans =
7.3747e+05
El comando floor (now) devuelve la fecha actual como un número de fecha en serie,
y el comando rem(now,1) devuelve la hora actual como un número de fecha en
serie.
El comando datestr(now) devuelve la fecha y la hora actuales como una cadena.
>> floor (now)
ans =
737465
>> rem(now,1)
ans =
0.8534
>> datestr(now)
ans =
'09-Feb-2019 [Link]'
2.14 Ver
Este comando muestra la versión y año de Matlab, al igual que las versiones de sus
librerías.
>> ver
Si quiere saber sobre una librería en particular, se digita, por ejemplo:
>> ver antenna
----------------------------------------------------------------------
MATLAB Version: 9.4.0.813654 (R2018a)
MATLAB License Number: 968398
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 17134)
Java Version: Java 1.8.0_144-b01 with Oracle Corporation Java HotSpot(TM)
64-Bit Server VM mixed mode
-------------------------------------------------------------------------
Antenna Toolbox Version 3.1 (R2018a)
2.15 Ruta de la carpeta de Matlab
Para conocer la ruta donde se encuentra la carpeta de Matlab se emplea la
instrucción pw. Recuerde que en esta carpeta residen todos los archivos creados
y/o agregados por el usuario que son guardados por defecto en ésta.
pwd
ans =
C:\Users\USER\Documents\MATLAB
2.16 Dir
Lista el directorio actual de la carpeta de Matlab, que se crea en el momento de
instalar el programa.
>> dir
Una variante a dir es la instrucción ls, así:
>> ls
Signo de Admiración y dir
El comando ¡dir se emplea para ejecutar un comando en la consola Ms-DOS del
sistema operativo de Windows para acceder a su sistema de directorio.
>> !dir
2.17 Crear o eliminar una carpeta
Para crear una carpeta en de Matlab, existen dos formas: la primera es ir
directamente a la carpeta de Matlab, dar clic derecho Nuevo-- Carpeta
Asignar Nombre.
La otra forma es directamente desde el command window, empleando la instrucción
mkdir (‘Nombre del archivo’).
>> mkdir('prueba')
Para eliminar una carpeta se digita rmdir (‘Nombre del archivo’).
>> rmdir('prueba')
2.18 What
El comando what al digitarse, muestra una lista de archivos con la extensión .m,
.MAT y .MEX, que se encuentran presentes en el Current Directory.
Cabe aclarar que el archivo .m, es todo aquel que se genera cuando se crea un
script en el editor de Matlab. Por ejemplo. Nombre_archivo.m
Esto significa que la extensión .m, es la que identifica por defecto cualquier archivo
de Matlab.
El archivo MAT, contiene datos de tipo binario, por lo que su forma de registro es
bajo la extensión .mat. Por ejemplo, Nombre_archivo.mat
El archivo MEX, representa un ejecutable compilado a partir del lenguaje de
programación Fortran o C, su extensión es .mex. Por ejemplo, Nombre_archivo.mex
M-files in the current directory C:\Users\Jairo\Documents\MATLAB
2.19 Who
Se emplea el comando who, que muestra la lista de variables que se están
utilizando en el espacio de trabajo actual, es decir, las variables que están en
memoria:
>> who
Your variables are:
ans
En este caso en particular al no haber ningún tipo de variable no se mostrará nada.
Existe una variante del comando anterior denominado whos, que muestra
información adicional acerca de la o las variables ingresadas al espacio de trabajo,
tales como el tamaño de memoria. Por ejemplo,
>> whos
Name Size Bytes Class Attributes
ans 1x19 38 char
Para este caso se muestra una variable de nombre ans, de tamaño matricial 1x19,
que está compuesto por 38 bytes y su clase es de tipo char.
Pruebe los comandos who global y whos global. Es importante comprender el
concepto de variable local y global para comunicar funciones y/o scripts de una
manera eficiente.
2.20 Reloj
El comando clock muestra la hora, incluyendo fecha y año.
>> clock
ans =
2019 8 3 14 28 33.06
Estos datos se interpretan como año, mes, día, hora, minutos y segundos. La
presentación de esta información puede cambiar según como se tenga configurado
el formato de presentación de los números reales.
Para que devuelva una cadena de caracteres con el día, mes, año, hora, minutos y
segundos se emplea la instrucción datestr(now).
>> datestr(now)
ans =
'09-Feb-2019 [Link]'
Si queremos que devuelva el número del día de la semana. El primer día es el
domingo, el segundo el lunes, etc., se emplea la instrucción weekday(now).
>> weekday(now)
ans =
8
Etime
Esta instrucción muestra el tiempo transcurrido entre los vectores de fecha, la
sintaxis es:
E = etime (t2, t1). Devuelve el número de segundos entre dos vectores de fecha o
matrices de vectores de fecha, t1 y t2.
Calcule el tiempo transcurrido entre una hora específica y la hora actual, hasta una
precisión de 0,01 segundos.
Defina la fecha y hora inicial, y convierta a la forma de vector fecha.
format shortg
tr = 'March 28, 2016 [Link]';
t1 = datevec(tr,'mmmm dd, yyyy HH:MM:SS')
t1 =
2016 3 28 11 55 0
Determinar la fecha y hora actual.
t2 = clock
t2 =
2017 2 1 22 43 43.328
La función de reloj devuelve la fecha y la hora actual como un vector fecha.
Empleando etime para calcular el número de segundos entre t1 y t2 es:
e = etime(t2,t1)
e =
9.0579e+07
2.21 Camino o ruta
El comando path cumple la función de imprimir en el espacio de trabajo, la ruta de
búsqueda de funciones específicas de MATLAB.
>> path
Se puede emplear el comando p=path, que devuelve una cadena de nombre p
que contiene la ruta de la carpeta.
2.22 Salir
Al digitar el comando quit en el command window automáticamente se sale del
programa de Matlab. Antes de usar este comando verifique haber guardado toda
la información del trabajo realizado. Otros comandos complementarios a quit son:
quit cancel
quit forcé
2.23 Exit
Este comando cierra Matlab. Antes de usarlo verifique haber guardado sus trabajos.
>> exit
2.24 Escape
Este comando se simboliza con el signo de admiración “!” que sirve para salir de
manera temporal de Matlab y consultar el directorio fuera del programa. Cabe
anotar que el sistema antivirus (en Microsoft) puede activarse al usar este
comando, así que antes de usarlo cerciórese de haber guardado el trabajo.
2.25 Comentarios
Para realizar comentarios en la consola de Matlab, se usa el símbolo % (tanto por
ciento) al comienzo de la línea, así:
>> % Esto es un comentario
Al emplearse correctamente este símbolo, debe aparecer en color verde, e implica
que todo lo que esté por delante de él será ignorado por el intérprete.
2.26 Símbolos especiales que usa Matlab
Coma. Se emplea para separar elementos de un vector, de constantes o variables.
>> a=4, b=-8, c =9
a =
4
b =
-8
c =
9
Punto y coma. Se interpreta como símbolo de retorno de carro. Se emplea para
concatenación de una sentencia en la misma línea y para suprimir la salida por
pantalla de algún resultado. Por ejemplo.
Sin punto y coma
>> 5
ans
5
Con punto y coma
>>5;
>>
Para que la información aparezca o no en el command window, solo se precisa
suprimir o colocar respectivamente en la parte final de la instrucción punto y coma
(;):
>> magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> magic(4);
Como se observa en el segundo caso, no se muestra por pantalla la operación como
tal, suprimiendo la salida, quedando en espera de una instrucción o instrucciones
adicionales.
Es recomendable usar el punto y coma, cuando se requiere de otras operaciones
adicionales, y solo se desea ver el resultado final, aunque si no se está seguro de
lo que se hace, es bueno probar sin el punto y coma, y verificar las operaciones,
luego, colocar de nuevo y continuar con el proceso, por ejemplo:
>> x=5;
>> y=9;
>> z=x+y
z =
14
Comillas simples
Se emplean para introducir texto literal, por lo cual todo lo que se encuentre entre
estas comillas se toma como texto y no como una variable. Cabe agregar que para
saber que se está usando bien estas comillas, estas deben tomar color violeta, al
igual que el texto, sumado a que debe aparecer la figura con el nombre del título
dado, tal como se muestra a continuación. Por ejemplo.
>> title('Esto es una prueba')
Figura 2.4
Tres puntos (...): Se emplean al final de una línea de código extenso, lo que se
interpreta que toma la siguiente línea como continuación. Por ejemplo.
>> Empleado1={'Juan Carlos Zapata';'Bogotá';
... {'DNI',801289216,81005897,801254787};
... 'C Buenaventura 45 8,5';
Corchetes [ ]. Se emplean para definir vectores y matrices.
v = [0 1 2 3 4 5];
v = [0 1 2; 3 4 5];
Paréntesis ( ). Se emplean para definir la precedencia de expresiones algebraicas
y para subíndices en general.
x=-pi:0.1:2*pi;
f=16*sin(x).^3;
g=13*cos(x)-6*cos(2*x)-2*cos(3*x)-cos(4*x);
plot(x,f,x,g)
Nota 3. Cuando se comete un error, este aparecerá en Matlab resaltado en
color Rojo. También puede aparecer cuando una instrucción se ha digitado
mal en cuanto a su gramática, o cuando no cumple ciertos requisitos o
condiciones matemáticas o dado el caso operativas.
Nota 4. En caso de aparecer información o líneas en color naranja, se
interpreta como una alerta o warning. Esto significa que puede haber un
potencial conflicto entre comandos o instrucciones, o que existe una
instrucción mejor de la que se está empleando, lo cual no implica que la
operación no pueda realizarse o esté mal.
2.27 Atajos en la ventana de trabajo
Editar información directamente en la ventana de trabajo es una de las facilidades
de Matlab. Para ello se dispone de una serie de atajos de teclado bastante útiles.
Lista de teclas y flechas combinadas que pueden ser usadas en la ventana de
trabajo son:
Tecla Tecla de Operación
control
Recupera lo que se digito con
anterioridad en la ventana de trabajo, por
Fecha arriba
lo que permite recuperar comandos.
Recupera lo que se digito con
anterioridad en la ventana de trabajo, por
Fecha abajo
lo que permite recuperar comandos.
Fecha Desplaza el cursor un carácter a la
izquierda izquierda.
Fecha Desplaza el cursor un carácter a la
derecha derecha.
Ctrl-Enter Ejecutar sección
Ctrl + Shift Ejecutar sección y avanzar
+ Enter
F5 Ejecutar todas las secciones.
Ecuación Ctrl + Alt + G Permite llamar ecuaciones bajo el
LaTeX formato LaTex
Figura 2.5. Distribución de las teclas de flechas en un teclado estándar de computador.
Con el teclado realice las pruebas respectivas según la tabla mostrada. El conocer
y practicar estos comandos va a ser de gran ayuda a la hora de adquirir habilidades
en el manejo y gestión de comandos e instrucciones en el espacio de trabajo.
2.28 La Tecla Tab
Matlab por medio de la tecla TAB, permite mostrar un menú contextual de la
sentencia que se quiere digitar. Para ello, se precisa que se digite una o más letras
que permita al identificador de Matlab bridar las opciones del comando o instrucción
que se busca, desplegando de esta manera una ventana, tal como se muestra en
la figura 2.6:
Figura 2.6
2.29 Explorador de Windows
Desde Matlab se puede abrir el explorador de Windows mediante la instrucción:
>> !explorer
Esta instrucción es muy útil cuando se desea consultar información que está
directamente en el equipo de cómputo sin necesidad de cerrar Matlab o salir del
programa.
2.30 Lista de directorios
Esta lista contiene las funciones internas provistas por Matlab. Para ello se digita
las siguientes instrucciones:
X = [matlabroot '\toolbox\matlab'];
dir(X)
2.31 Funciones para análisis de datos
Para listar las funciones provistas por Matlab para el análisis de datos se emplea la
instrucción help datafun.
>> help datafun
2.32 Scripts
Se ha venido hablando de los scripts, pero aún no se ha creado alguno. Los Scripts
son un conjunto de comandos y/o instrucciones de MATLAB, que se almacenan en
archivos de texto plano. Para ello se procede a ir a la pestaña HOME y en el ícono
New Script o New Live Script (buscar el sub-ícono Script, tal como se indica en la
figura 2.7) se da clic, tal como lo indica las flechas, desplegándose el editor:
Figura 2.7. Opción para desplegar el editor de texto o script estándar o vivo (Live Script). Como se
observa existen varias opciones para ello.
Una vez se despliega el editor, éste aparece en la zona de trabajo tal como se
muestra en la figura 2.8, en la que normalmente divide el command window en dos
partes, aunque también puede ocurrir que se abra el editor en una nueva ventana.
Recuerde que se puede personalizar la disposición de cada ventana de la interfaz
gráfica.
Figura 2.8. La zona de trabajo de la script conocida como editor, permite al programador realizar sus
programas y guardarlos, luego llamarlos, bien desde el command Windows digitando el nombre del
archivo, o abriéndolos directamente desde el current folder dando clic sobre el archivo.
Una vez abierto el editor, se puede digitar operaciones, programas y funciones en
general, con la particularidad que se podrá guardar con cualquier nombre, en la que
se agrega automáticamente al final la extensión .m (por ejemplo “miscript.m”), por
lo que muchas veces estos archivos se le conocen como archivos-m.
Cabe agregar que el archivo se guarda en la carpeta de MATLAB, que podrá
verificarse al observar directamente el Current Folder. En caso contrario, lo
recomendable es guardar los scripts creados en la mencionada carpeta, esto por
cuestión de orden y direccionamiento de archivos y ejecución.
Para ejecutar el script, se puede dar doble clic directamente desde el Current Folder,
o digitando el nombre del archivo en el Command Window.
>> nombre_archivo
Para ejecutar el script se presentan varias opciones, tal como se observa en la
figura:
Figura 2.9
El icono Run, solo se ejecuta siempre y cuando se haya creado y guardado
previamente el script, Run and Advance, permite ejecutar un programa por
secciones o bloques en forma secuencial hasta terminar (no requiere que el script
haya sido guardado). Run Section, por el contrario, solo ejecuta un bloque o
sección del script.
El ícono de Run and time, se emplea cuando se desea saber cuál es tiempo de
ejecución de cada instrucción.
2.33 Práctica 2
Dada la información, digitar y ejecutar desde un script, teniendo en cuenta el uso de
las instrucciones citadas anteriormente. Analice tanto las operaciones como las
instrucciones y cree comentarios dentro del mismo script:
1. Calcular la velocidad en m/s, de un cuerpo que recorre 250 m en un tiempo de:
a. 12.4 segundos
b. 2.32 minutos
c. 0.28 horas
2. Si la fuerza aplicada sobre un cuerpo es de 30 N, determine la aceleración
cuando:
a. La masa es de 520 Kg.
b. 1250 g
3. El volumen de una caja está dado por la función:
𝑉 (𝑥 ) = 𝑥(31 − 2𝑥)(42 − 2𝑥)
Determinar V(1), V(2) y V(2.5)
4. Dadas las variables A, B, C y D, desarrollar las operaciones indicadas.
A=26; B=55; C=-34; D=21;
%% Operación 1
𝐶
𝐸 = 𝐴𝐵 − (5 + 𝐴)
𝐷
%% Operación 2
2𝐴 − 𝐷
𝐹= + 3𝐵
5𝐶
%% Operación 3
𝐴−15
𝐺 = 𝐷𝐶 + 18𝐹
6−𝐵
%% Operación 4
𝐷+5𝐶
𝐻 = 5𝐴 − 3𝐺 +
2𝐵+𝐹
%% Operación 5
1
8𝐺
𝐼 = 𝐸 2 + 𝐹 −2 +
𝐻
%% Operación 6
(𝐸 3 − 𝐼 ) 2 + 5
𝐽=
𝐴𝐺 − 𝐻(8𝐹 3 − 50)
5. Dados los valores u = -2, v=1/2, w=3, x=-4, y=9 y z=1/6. Resolver las ecuaciones
dadas aproximando a dos cifras decimales:
a. 4𝑢𝑣 + 𝑔𝑤 −2𝑥 − 8𝑤𝑧
2𝑥𝑦𝑧 2
b.
3𝑢2 𝑣𝑤
2𝑥−3𝑦
c.
𝑢𝑤+𝑥𝑦
d. 3(𝑢 − 2𝑥 )0.5𝑣 + 3𝑦𝑧
e. √𝑢2 − 2𝑢𝑣 + 𝑤
f. 3𝑥(4𝑦 + 3𝑧) − 2𝑦(6𝑥 − 5𝑧) − 25
(𝑤−2)2 (𝑦−5)2
g. √ +
2𝑣 3𝑧
4𝑥−3𝑦 𝑣
h.
√(𝑦−4)2 +2(𝑢+5)2
2𝑢−𝑣
i. (2𝑢2𝑢 𝑣(3𝑤 + 5𝑥))
7√𝑢2 +𝑣 2
j. 3𝑢2𝑥 − 2𝑣𝑤 5𝑧 + 5𝑦𝑥
6. El rendimiento de combustible R (en millas) de un vehículo está determinado por
la ecuación:
1 5
𝑅 = − 𝑣2 + 𝑣
30 2
Donde v es la velocidad medida en mi/h. Determine R para velocidades de 45,
60 y 70 mi/h.
7. Conductividad térmica. Se define como la capacidad de una sustancia o cuerpo
de transferir la energía cinética de sus moléculas a otras adyacentes. La fórmula
general es:
𝑇1 − 𝑇2
𝑄̇ = 𝑘𝐴
𝐿
Donde 𝑄̇ es la conductividad térmica medida en W/K·m= J/(m·s·K); k, es la
constante de conductividad térmica (W/m oC); A, superficie del sistema (m2); T2
y T1, son las temperaturas de las superficies interior y exterior respectivamente
(en oC) y L, el espesor de la superficie (m).
El techo de un inmueble en la noche es calentado eléctricamente, cuyas
dimensiones son de 7 m de largo, por 9 m de ancho, con un espesor de 0.26 m,
en la que se presenta una variación de temperaturas de las superficies interior y
exterior de 17 oC y 5 oC respectivamente durante 10 horas.
Determinar:
a. Conductividad térmica, cuando k=0.8142 W/m oC.
b. Cantidad de pérdida de calor del techo (en Wh). La ecuación a emplear es la
siguiente: 𝑄 = 𝑄̇ ∆𝑡
c. Costo por pérdida de calor para el propietario del inmueble, donde el valor
estimado de electricidad es de 0.085 dólar/kWh. La fórmula a emplear es:
Costo = Cantidad de pérdida de calor *Costo unitario de la energía
8. La disminución diaria de producción de un producto vegetal Dd está expresada
por la siguiente ecuación:
𝑆 3 + 𝑊 3 − (𝑆 + 𝑊 ) 2
𝐷𝑑 =
(𝑆 + 𝑊 ) 3
Donde S indica el índice solar y W la cantidad de agua que recibe el cultivo.
Si S = 9 y W = 5, cuál es el índice de disminución diaria de producción.
9. Cuál es el valor de Z, si x = 10 y y =-5
20𝑥 2 𝑦 3 − 12𝑥 3 𝑦 2 − 11𝑥𝑦 − 5
𝑍=
−5𝑥𝑦 4 + 4
10. Sea el polinomio 𝑃(𝑥 ) = 9𝑥 6 + 5𝑥 5 − 7𝑥 4 + 2𝑥 3 − 3𝑥 2 + 𝑥 − 10
Hallar P(2) y P(-2)
11. Si t = 5, determine el valor total de la ecuación.
2𝑡 3 + 4𝑡 2 − 5𝑡 9𝑡 2 − 5𝑡
+ 3
3𝑡 2 − 5𝑡 − 4 2𝑡 + 𝑡 − 7
12. Si x = 7, y = 10, a = -4 y b= 3, halle el valor de W.
(2𝑥 2 + 15𝑥𝑦 + 𝑦 2 )(3𝑎 + 7𝑏)
𝑊=
(𝑥 + 𝑦)(2𝑥𝑦 + 3𝑏𝑥 + 𝑦 2 + 𝑏𝑦)
13. Los momentos de inercia de una circunferencia maciza y de una corona circular
son respectivamente:
4 −𝑅4 )
𝜋𝑅 4 𝜋(𝑅𝑒𝑥𝑡 𝑖𝑛𝑡
𝐼𝑜 = ; 𝐼𝑜 =
2 2
Determine los momentos para un radio externo de 10 cm y un radio interno ¼
del externo.
14. El volumen de un recipiente está definido por la ecuación:
25
𝑉(𝑟) = 𝜋𝑟 2 ( − 1)
(𝑟 + 0.6)2
Hallar V(1.5), V(2) y V(2.5)
15. La transferencia de energía Q (en Joules) a un sistema, equivale al aumento de
energía del mismo, así:
𝑄 = ∆𝑈 = 𝑚𝑐(𝑇2 − 𝑇1 )
Donde m es la masa en Kg; c, es el calor específico (J/kg oC); T2 y T1, son las
temperaturas final e inicial respectivamente (en oC).
Se debe tener en cuenta las siguientes condiciones:
Si T1 > T2 el cuerpo cede calor, lo que implica que Q < 0
Si T1 < T2 el cuerpo recibe calor, lo que implica que Q > 0
Si una esfera de cobre de diámetro 9 cm se calienta de 110 oC hasta 155 oC,
determinar:
a. Transferencia total de calor si la densidad de la esfera es 8950 kg/m3 y el
calor específico 0.3951 k J/kg oC.
b. Razón promedio de transferencia del calor (en J/s=Watts) cuando ha
transcurrido 40 minutos. La fórmula a emplear es:
𝑄̇𝑝𝑟𝑜𝑚= 𝑄
∆𝑡
c. Flujo de calor. Este se define como la transferencia de calor por unidad de
tiempo por unidad de área (en W/m2), es decir, la razón de transferencia del
calor por unidad de área. Para este caso en particular el área es de la esfera
(πD2). La ecuación general es:
𝑄̇𝑝𝑟𝑜𝑚
𝑞̇ 𝑝𝑟𝑜𝑚=
𝐴
d. Si la transferencia de energía de una lámina de plomo (c = 480 J/kg.K) de 20
x 20 cm es de -2500 J. Determine la temperatura final, si la lámina se
encuentra a 200 oC. Cuál es el flujo de calor al cabo de 30 minutos.
16. La carga crítica de Euler depende de la longitud de la pieza, del material, de su
sección transversal y de las condiciones de unión, vinculación o sujeción en los
extremos. Para el caso de una pieza de sujeción, donde los extremos son
diferentes, la carga crítica de Euler viene dada por la ecuación:
𝜋 2 𝐸𝐼𝑚𝑖𝑛
𝐹𝑐𝑟𝑖𝑡 =
(𝛼𝐿)2
Donde Fcrit es la fuerza crítica; E es el módulo de Young del material; I min, es el
momento de inercia mínimo de la sección transversal de una barra; L, longitud
de la barra; 𝛼, constante que depende de las siguientes condiciones:
𝛼 = 0.5 empotrado-empotrado
𝛼 ≈ 0.7 articulado-empotrado
𝛼=2 libre-empotrado
Calcular Fcrit para los tres casos de 𝛼 de una barra de titanio de longitud 0.5 m,
cuyo módulo de Young es de 11.6x1010 N/m2 y un momento de inercia de 0.025
Kg m2.
17. Ecuación de estado Redlich–Kwong. Es una la ecuación más precisa que la de
Van der Waals y de los gases ideales a temperaturas superiores a la crítica. Esta
ecuación relaciona la temperatura, presión y volumen de los gases, así:
𝑅𝑇 𝑎
𝑃= −
𝑉 − 𝑏 𝑉(𝑉 + 𝑏)√𝑇
Donde R es la constante universal de los gases (0.518 kJ/(kgK)), T, Temperatura
absoluta (Kelvin=K), P, Presión absoluta (kPa) y V es el volumen de un kilogramo
de gas (m3/kg). Los parámetros a y b equivalen a:
𝑅2 𝑇𝑐2.5 𝑅𝑇𝑐
𝑎 = 0.427 𝑏 = 0.0866
𝑃𝑐 𝑃𝑐
Donde Pc = 4600 kPa y Tc = 191 K. Determinar la presión de un gas que está
confinado en un volumen de 2.5 m3 a temperaturas de 50, 45, 40 oC.
18. En el siguiente cuadro aparecen las fórmulas de los momentos de inercia de
algunos cuerpos de composición homogénea respecto a los ejes señalados.
Calcular los momentos de inercia cuando M=5.45 kg, R=15 cm, L= 0.2 m, R1 =
5 cm, R2=5.8, a= 18.5 cm y b=9.2 cm.
19. En un proceso isotérmico suponiendo que el aire se comporta como un gas ideal
la presión atmosférica se calcula como:
𝑚𝑔 𝑉1
𝑃𝑎 =
𝐴 𝑉1 − 𝑉2
Donde m es la masa del cuerpo; g, la aceleración de la gravedad; A, es el área
de un émbolo; V1 y V2, son los volúmenes ocupados por el mercurio en un
sistema de émbolos.
Se coloca una pesa de 1.45 kg sobre un manómetro abierto, en la que se deja
que el émbolo ascienda hasta una altura que corresponde a un volumen de 75.2
cm3. Al retirar la pesa, el émbolo regresa a la altura de equilibrio, que
corresponde a un volumen de 65.2 cm3.
a. Determine la presión atmosférica suponiendo que el émbolo es circular con
un diámetro de 2 cm.
b. Si la presión atmosférica es de 100730 Pa al colocar un cuerpo de 1 kg. Cuál
es el valor del volumen V1, cuya área del émbolo es de 0.3019 m2, donde el
volumen de equilibrio es de 67.5 cm3.
2.34 Mensajes de error
Matlab tiene la propiedad de indicar al usuario y/o programador, los posibles errores
que se están cometiendo a la hora de ejecutar una operación. Esto es importante,
cuando se desarrolla algún ejercicio en el command Window directamente o en un
script.
Los errores siempre van aparecer resaltados, bien sea con una línea en rojo debajo
de la variable u operación o como una línea roja en la parte derecha del script.
Cuando se ejecuta la operación con esta línea roja activa, aparecerá una leyenda,
en la que se indica cuál es el tipo de error de sintaxis, incluso en ciertos casos puede
sugerir al usuario que instrucción es la más apropiada.
Cabe mencionar, que se puede ubicar el cursor donde está la línea en rojo y
aparecerá una leyenda indicando el error, tal como se observa en la figura. Si dado
el caso, se desea profundizar más en el tema, se oprime el botón Details que se
encuentra a la derecha del mensaje, tal como se muestra en la figura,
desplegándose una pequeña ventana, explicando un poco más acerca del error y
las acciones a seguir.
Puede aparecer una línea o leyenda en color naranja, que indica una alerta (o
warning). Esta puede indicar que hay una operación que puede mejorarse en cuanto
a su estructura de presentación, pero no implica que exista un error real. Aunque no
debe subestimarse esta alerta, porque si se maneja un programa muy estructurado,
o la instrucción mostrada depende de otras, puede que, al ejecutarse el programa
u operación, exija más recursos computacionales de los esperados o genere a
posteriori un error.