Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Señales y Sistemas Lineales. Semestre 2021-1. Profesor: Mario Alejandro Giraldo Vásquez, M.Sc.
En esta sesión aprenderá los comandos básicos de programación en Matlab, muchos de estos comandos usted ya los
conoce para otros lenguajes por el curso de fundamentos de programación. A continuación, se describe el trabajo que
debe realizar con su compañero de laboratorio, podrá solicitar toda la asesoría necesaria al monitor.
MATLAB functions
Son útiles para ampliar y mejorar el uso de Matlab en aplicaciones específicas.
Pueden aceptar argumentos de entrada y retornar argumentos de salida.
Almacenan las variables en un espacio interno para cada función, es decir, no se pueden utilizar en otras funciones o
en la línea de comandos de Matlab.
números reales a y b.Comentario con texto de ayuda x=a+b; Cuerpo de la función % Fin de
la función suma Comentario fin de la función
1
Tanto la función como el script pueden tener las mismas partes, excepto por la Línea de definición de la función l a cual
aplica solamente para las funciones. A continuación, se describen cada una de las partes en un mayor detalle.
Parte del archivo Descripción
Texto de ayuda Una descripción detallada del programa, se muestra junto a la línea H1 cuando
ara la función
se utiliza el comando help p
Cuerpo de la función Código del programa que realiza los cálculos necesarios y asigna los valores a
los argumentos de salida.
Comentario Texto en el cuerpo del programa que explica los trabajos internos del programa
La línea de definición informa a Matlab que el archivo contiene una función. Esta línea contiene la palabra function que es una
palabra clave de Matlab y siempre debe estar en la primera línea del archivo. Por ejemplo para la función fact se tiene:
Todas las funciones de Matlab tienen la línea de definición siguiendo el anterior esquema.
Function Name (Nombre de la función): El nombre de la función debe comenzar con una letra, puede contener
cualquier carácter alfanumérico y no debe exceder los 63 caracteres. Los nombres de las funciones no pueden ser
iguales a otras funciones de Matlab o funciones ya creadas, así mismo no pueden tener el nombre de otras palabras
claves de Matlab. Si quieres conocer un listado de las palabras claves de Matlab usa el siguiente comando:
iskeyword
El archivo que contiene la función debe ser guardado con el mismo nombre de la función, si el archivo no contiene el
mismo nombre de la función, Matlab ignora la línea de definición de la función y ejecuta las demás líneas de comandos.
Function Arguments (Argumentos de la función): Si la función tiene múltiples valores de salida, los argumentos de salida
deben estar acotados entre paréntesis cuadrados; si existen argumentos de entrada estos deben estar acotados entre
paréntesis, se deben usar comas para separar múltiples argumentos de entrada o de salida. Por ejemplo la siguiente función
recibe tres argumentos (theta, phi, rho) y devuelve al workspace o tros tres argumentos [x, y, z], las demás variables que
pueda usar en su interior para hacer los cálculos, no estarán disponibles en el workspace de matlab:
function [x, y, z] = sphere(theta, phi, rho)
Atención: A la función se le deben enviar las variables con las que trabajará en su
código!!! Si no hay argumentos de salida, se deja en blanco como sigue:
function printresults(x)
2
Actividad 1
Debe crear y ejecutar una función que permita al usuario realizar la suma de dos números reales y/o complejos.
(Puede usar como guía el ejemplo de la página anterior)
2. Se abre la siguiente ventana, donde todo está listo para comenzar a digitar la función:
help suma
prueba1 = suma(5,7)
prueba2 = suma(5,3i)
En el mismo directorio donde creó el programa suma, debe crear un programa que permita realizar la resta entre dos
números, otro programa que permita realizar la multiplicación, y un último programa que utilice la función de división.
Cada programa debe ir en archivos separados. Los programas creados deben seguir el formato del programa suma, es
decir, deben incluir la ayuda completa para cada función. En el comand window d e Matlab ejecute las funciones para
verificar su correcto funcionamiento. Recuerde ejecutarlas como se le indicó en el paso 5 anterior, es decir siguiendo la
forma de ejecución de funciones (no confundir con la forma de ejecución de scripts)
Las estructuras de control ofrecidas por el lenguaje de programación de Matlab, permiten adicionar más niveles de
complejidad a programas simples. A continuación, se definen cada una de las sentencias o estructuras de control, se
explica su sintaxis y se presentan algunos ejemplos.
IF
if evalúa una expresión lógica y ejecuta un bloque de estamentos basándose en el resultado de la expresión lógica, es decir,
cuando la expresión lógica es verdadera (1), el programa ejecuta los estamentos y cuando la expresión lógica es falsa (0), el
programa pasa por alto los estamentos hasta llegar al end correspondiente al if. La estructura básica es la siguiente:
if expresión_lógica
estamentos
end
ELSE
else brinda la posibilidad de ejecutar estamentos cuando la expresión lógica evaluada por una función es falsa, es
decir, no cumple con la expresión lógica. La sintaxis para usar esta estructura de control se muestra a continuación:
if expresión_lógica
estamentos
else
estamentos
end
ELSEIF
En algunos programas es necesario tener más de una expresión lógica, es decir, los programas necesitan más de una
opción para evaluar, en esos casos es necesario utilizar la sentencia elseif. La sintaxis para su uso se ilustra a
continuación: if expresión_lógica_1
estamentos
elseif expresión_lógica_2
estamentos
…
elseif expresión_lógica_n
estamentos
else
estamentos
4
end
Operadores Relacionales
Función Operación Símbolo
eq Igual (Equal) ==
Operadores Lógicos
Función Operación Símbolo
relop Corto circuito lógico - AND &&
or OR lógico |
not NO lógico ~
Más información:
Salida:
Usualmente, se requiere que sea el usuario quien ingrese uno o varios valores de entrada para poder correr
el programa, para ello algunos de los comandos que se utilizan son:
ermite al usuario ingresar un valor en el comand window de Matlab y asignarlo a la variable
input: p
= input ( 'ingrese su edad: ' )
x. x
menu: a bre una caja de texto tipo menú con diferentes opciones para el usuario, y guarda el número de la
opción seleccionada por el mismo; en caso de que se cierre la ventana, se guardara como 0. Estructura: s=menu
(‘título del menu’,’opcion1’,’opcion2’, …,’opción’)
Ejemplo:
Por otro lado, para mostrar resultados o comentarios al usuario se utilizan los comandos:
Ejemplo:
disp ('El numero ingresado es primo') % en el comand window se muestra la
cadena disp (x) % en el comand window se muestra el valor de x
errordlg: Crea y muestra una caja de texto con el título Error Dialog, que contiene la cadena que se
Ejemplo:
6
Universidad Nacional de Colombia. Facultad de Minas. Departamento de Energía Eléctrica y Automática.
Señales y Sistemas Lineales. Semestre 2021-1. Profesor: Mario Alejandro Giraldo Vásquez, M.Sc.
En el anterior programa se utilizan tres expresiones lógicas, es importante resaltar que las expresiones se evalúan
en orden, es decir, si no se cumple con la primera expresión lógica se evalúa la segunda y así sucesivamente.
switch expresion
case valor1
statements
case valor2
statements
...
otherwise
statements
end
Ejemplo:
clear all
clc
x=input('Ingrese un valor de 11 a 15: ');
x=floor(x);
switch x
case 11
disp('El valor ingresado es 11')
case 12
disp('El valor ingresado es 12')
case 13
disp('El valor ingresado es 13')
case 14
disp('El valor ingresado es 14')
case 15
disp('El valor ingresado es 15')
otherwise
disp('El valor es menor que 11 y/o mayor que 15')
end
Actividad 2
Con ayuda de los códigos de las señales cuadrada, sinusoidal y triangular realizados en la primera práctica, plantee la
creación de una función en Matlab que reciba como argumentos la amplitud de la señal, la frecuencia fundamental y un
tercer argumento asignado para el ciclo de dureza (señal cuadrada), ancho (señal triangular) o fase (señal sinusoidal). Se
7
requiere además un cuarto parámetro, por medio del cual los usuarios elegirán el tipo de señal, es decir: C, para señal
cuadrada, T, para triangular y S para sinusoidal.
Solucione este problema haciendo uso de los comandos switch, case y otherwise.
Actividad 3
Haciendo uso de la función creada en la Actividad 2, cree un programa principal en el que utilice las instrucciones de
entrada presentadas anteriormente para el ingreso de los parámetros y del tipo de señal.
Llame la función en dicho programa inmediatamente después de que ingrese los parámetros, además tenga en cuenta que un
parámetro puede estar mal ingresado, como puede ser un ciclo de dureza mayor al 100%, o un valor para señal triangular
mayor a 1, para evitar eso cree alertas para todos los casos de error posibles utilizando las instrucciones if, elseif y
else.
Actividad 4
ara Matlab y con la ayuda de los ejemplos incluya en el
Lea el help de las sentencias for y while, p
programa la opción que le permita al usuario seleccionar desde un principio la cantidad de señales que desea
graficar, además la función deberá ir graficando señal por señal.
Por otro lado, para aplicar la sentencia while de la oportunidad al usuario de ingresar los parámetros las
veces necesarias hasta que estos estén correctos.
Los programas deben estar funcionales al momento de finalizar la sesión y deben garantizar que se
diferencia correctamente lo que hace cada una de las sentencias.
Referencias