Capítulo I-Matlab
Capítulo I-Matlab
Capítulo I-Matlab
Introducción a Matlab
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
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.
2. Modelamiento físico
Las dos herramientas citadas son lo suficientemente funcionales para que corran
sobre Android emulando a la perfección Matlab en términos generales.
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)
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.
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.
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.
- load: carga el workspace desde un archivo, tiene varias funciones, por lo que se
recomienda consultar la ayuda que ofrece Matlab.
diary('nombrearchivo')
diary on
texto='graba todo lo que se coloque aquí';
diary off
texto2='ya ha culminado la grabación';
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.
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.
Figura 1.10
Figura 1.11. Pestaña del editor que está relacionada con la creación y diseño de un script.
Figura 1.13
Figura 1.14.
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.
Las herramientas que forman parte de las Apps de Matlab poseen diversas
funcionalidades útiles en diversos campos científicos e ingeniería en general.
Help
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.
Doc
>> doc
Demos
>> demos
Comando secuencia
Editor
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:
Figura 1.22
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.
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
B = sqrt(X)
Digitar solo help, se despliegan todas las funciones que dispone Matlab en sus
librerías, tal como se ha explicado en la unidad 1.
>> 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
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)
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 =
MaxPossibleArrayBytes: 8.0443e+09
MemAvailableAllArrays: 8.0443e+09
MemUsedMATLAB: 1.5158e+09
userview =
MaxPossibleArrayBytes: 8.0735e+09
MemAvailableAllArrays: 8.0735e+09
MemUsedMATLAB: 1.5169e+09
systemview =
Licencia
>> license
Para ver la descripción completa de las estructuras del lenguaje de MATLAB que
son claves para la programación, digite:
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.
…..
…..
>> 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.
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
Figura 2.3
Con esta misma operación se puede personalizar cualquier comando para los
requerimientos y/o necesidades del usuario.
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
>> whos
>> who
Con el comando clear all limpia todo, incluyendo lo que hay en el workspace.
2.10 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
Ejemplos
>> Ndia=weekday(7)
Ndia =
6
DayNumber =
4
DayName =
Wed
>>D = [750498;735236];
>>DayForm = 'long';
>>[DayNumber,DayName] = weekday(D,DayForm)
DayNumber =
6
4
DayName =
Friday
Wednesday
>>D = '03-ago-2020';
>>spanish='local'
>>[DayNumber,DayName] = weekday(D,spanish)
spanish =
local
DayNumber =
2
DayName =
Lun.
>>D = 828647;
>>DayForm = 'long';
>>language = 'local';
>>[DayNumber, DayName] = weekday(D,DayForm,language)
DayNumber =
7
DayName =
Sábado
2.12 Date
>> date
ans =
'09-Feb-2019'
2.13 Now
>> 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.
>> rem(now,1)
ans =
0.8534
>> datestr(now)
ans =
'09-Feb-2019 20:29:02'
2.14 Ver
Este comando muestra la versión y año de Matlab, al igual que las versiones de sus
librerías.
>> ver
pwd
ans =
C:\Users\USER\Documents\MATLAB
2.16 Dir
>> dir
>> ls
>> !dir
>> mkdir('prueba')
>> 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
2.19 Who
>> who
Your variables are:
ans
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.
2.20 Reloj
>> 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 20:35:11'
>> weekday(now)
ans =
8
Etime
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.
format shortg
tr = 'March 28, 2016 11:55:00';
t1 = datevec(tr,'mmmm dd, yyyy HH:MM:SS')
t1 =
2016 3 28 11 55 0
t2 = clock
t2 =
2017 2 1 22 43 43.328
e = etime(t2,t1)
e =
9.0579e+07
>> path
2.22 Salir
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
>> 5
ans
5
>>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);
>> 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.
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.
v = [0 1 2 3 4 5];
v = [0 1 2; 3 4 5];
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)
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.
Figura 2.6
>> !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.
Esta lista contiene las funciones internas provistas por Matlab. Para ello se digita
las siguientes instrucciones:
X = [matlabroot '\toolbox\matlab'];
dir(X)
Para listar las funciones provistas por Matlab para el análisis de datos se emplea la
instrucción 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.
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
Figura 2.9
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
a. 12.4 segundos
b. 2.32 minutos
c. 0.28 horas
%% 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:
2𝑥𝑦𝑧 2
b.
3𝑢2 𝑣𝑤
2𝑥−3𝑦
c.
𝑢𝑤+𝑥𝑦
e. √𝑢2 − 2𝑢𝑣 + 𝑤
(𝑤−2)2 (𝑦−5)2
g. √ +
2𝑣 3𝑧
4𝑥−3𝑦 𝑣
h.
√(𝑦−4)2 +2(𝑢+5)2
2𝑢−𝑣
i. (2𝑢2𝑢 𝑣(3𝑤 + 5𝑥))
7√𝑢2 +𝑣 2
Determinar:
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:
𝑆 3 + 𝑊 3 − (𝑆 + 𝑊 ) 2
𝐷𝑑 =
(𝑆 + 𝑊 ) 3
2𝑡 3 + 4𝑡 2 − 5𝑡 9𝑡 2 − 5𝑡
+ 3
3𝑡 2 − 5𝑡 − 4 2𝑡 + 𝑡 − 7
13. Los momentos de inercia de una circunferencia maciza y de una corona circular
son respectivamente:
4 −𝑅4 )
𝜋𝑅 4 𝜋(𝑅𝑒𝑥𝑡 𝑖𝑛𝑡
𝐼𝑜 = ; 𝐼𝑜 =
2 2
25
𝑉(𝑟) = 𝜋𝑟 2 ( − 1)
(𝑟 + 0.6)2
Hallar V(1.5), V(2) y V(2.5)
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).
𝑄̇𝑝𝑟𝑜𝑚= 𝑄
∆𝑡
𝜋 2 𝐸𝐼𝑚𝑖𝑛
𝐹𝑐𝑟𝑖𝑡 =
(𝛼𝐿)2
𝛼 = 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.
𝑅𝑇 𝑎
𝑃= −
𝑉 − 𝑏 𝑉(𝑉 + 𝑏)√𝑇
𝑅2 𝑇𝑐2.5 𝑅𝑇𝑐
𝑎 = 0.427 𝑏 = 0.0866
𝑃𝑐 𝑃𝑐
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
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.