Sei sulla pagina 1di 8

Introducción a MATLAB

Juan Sebastian Rodriguez Muñoz tebastian17@hotmail.com


Laura Gisella Ayala Blanco lau199610@hotmail.com
Laura Rodríguez Grosso lauragrosso2910@gmail.com

II. HABILIDADES
RESUMEN: En esta práctica aprenderemos a
utilizar las funciones básicas de Matlab, que es un ● Identificar cuáles son las funciones básicas para
software que permite manipulaciones matriciales, declarar variables en Matlab.
trazado de funciones y datos, implementación de
algoritmos, creación de interfaces de usuario e
interfaz con programas escritos en otros ● Analizar el procesamiento y funcionamiento de
lenguajes, incluidos C, C ++ , C # , Java , Fortran cada una de las funciones de Matlab.
y Python . ● Identificar cómo se imprime el contenido de una
PALABRAS CLAVE: Matlab, Análisis de datos, variable.
C++, Procesamiento.
ABSTRACT:
In this practice we will learn to use the basic
functions of Matlab, which is a software that allows
matrix manipulations, tracing of functions and data,
algorithm implementation, creation of user
interfaces and interface with programs written in III. CONSULTA PREVIA
other languages, including C, C + +, C #, Java,
Fortran and Python. ● ¿Cómo se declaran los datos tipo entero, tipo
KEYWORDS: Matlab, Data Analysis, C++, double, bool, string y char en matlab?
Processing.
RTA: El programa almacena todos los valores
I. INTRODUCCIÓN numéricos como punto flotante de doble precisión.
Puede elegir almacenar cualquier número o matriz
de números, como enteros o como precisión simple.
Matlab es un lenguaje de alto rendimiento para Las matrices de precisión entera y única ofrecen un
cálculos técnicos, es al mismo tiempo un entorno y almacenamiento con mayor eficiencia de memoria
un lenguaje de programación. Uno de sus puntos que la precisión doble.
fuertes es que permite construir nuestras propias
herramientas reutilizables. Podemos crear 1. Entero: int8, int16, int32, int64.
fácilmente nuestras propias funciones y programas Matrices de enteros y el número
especiales (conocidos como M-archivos) en código indica el signo de bits.
Matlab, los podemos agrupar en Toolbox (también 2. double: double matrices de doble
llamadas librerías): colección especializada de M- precisión.
archivos para trabajar en clases particulares de 3. bool: no se encuentra esta
problemas. función en MATLAB son de
Matlab, a parte del cálculo matricial y álgebra llamado lógico así que
lineal, también puede manejar polinomios, implícitamente se convierte a
funciones, ecuaciones diferenciales ordinarias, double.
gráficos
4. string: se usa como str = “datos” case 'Monday'
y así convertirlos a matrices.
5. char: se escribe como C y disp('Start of the work week')
convierte una matriz en una
matriz de caracteres. [2] case 'Tuesday'
● Qué tipos de atajos a los n ciclos repetitivos existen
para abreviar la construcción de vectores. disp('Day 2')

RTA: case 'Wednesday'

Las instrucciones condicionales permiten disp('Day 3')


seleccionar en tiempo de ejecución qué bloque de
código se va a ejecutar. La instrucción condicional case 'Thursday'
más simple es una instrucción if. Por ejemplo, este
programa genera un número entero al azar, y si es disp('Day 4')
par lo divide por 2:
case 'Friday'
% Generate a random number
disp('Last day of the work week')
a = randi(100, 1);
otherwise
% If it is even, divide by 2
disp('Weekend!')
if rem(a, 2) == 0
end
disp('a is even')
Tanto para if como para switch, MATLAB®
b = a/2; ejecuta el código que corresponde a la primera
condición verdadera y luego sale del bloque de
end código. Cada instrucción condicional requiere la
palabra clave end.
Las instrucciones if pueden incluir opciones
alternativas mediante el uso de las palabras clave
opcionales elseif o else. Por ejemplo:
En general, cuando los valores posibles tienen
a = randi(100, 1); muchas opciones discretas y conocidas, las
instrucciones switch son más fáciles de leer que las
if a < 30 instrucciones if. Sin embargo, no es posible buscar
desigualdades entre valores de switch y case. Por
disp('small') ejemplo, este tipo de condición no se puede
implementar con un switch:
elseif a < 80

disp('medium')
yourNumber = input('Enter a number: ');
else

disp('large')
if yourNumber < 0
end
disp('Negative')
Alternativamente, cuando desee probar la igualdad
frente a un conjunto de valores conocidos, use una elseif yourNumber > 0
instrucción switch. Por ejemplo:
disp('Positive')
[dayNum, dayString] = weekday(date, 'long',
'en_US'); else

switch dayString disp('Zero')


end para todos los elementos de las matrices. Por lo
tanto, se ejecuta la cláusula else:
Comparaciones de arreglos en instrucciones
condicionales if A > B

Es importante comprender cómo funcionan los 'greater'


operadores relacionales y las instrucciones if con
las matrices. Cuando desee comprobar la igualdad elseif A < B
entre dos variables, podría usar la siguiente
condición: 'less'

if A == B, ... elseif A == B

Este es un código válido de MATLAB, y actúa 'equal'


según lo esperado cuando A y B son escalares. Pero
cuando A y B son matrices, A == B no prueba si son else
iguales, sino dónde son iguales. El resultado es otra
matriz de ceros y unos que muestra la igualdad error('Unexpected situation')
elemento por elemento.
end
A = magic(4); B = A; B(1,1) = 0;
Hay varias funciones que ayudan a convertir
A == B comparaciones de matrices en condiciones
escalares utilizables con if, incluyendo:
ans =

0 1 1 1
isequal
1 1 1 1
isempty
1 1 1 1
all
1 1 1 1
any
La forma adecuada de comprobar la igualdad entre
dos variables es usando la función isequal: Control de bucle: for, while, continue, break

if isequal(A, B), ... Esta sección trata las funciones de MATLAB que
proporcionan control sobre bucles de programas.
isequal devuelve un valor escalar lógico de 1 (que
representa la variable true) o 0 (false), en lugar de
una matriz, como la expresión a evaluar por la
función if. Si se utilizan las matrices A y B for
anteriores, se obtiene:
El bucle for repite un grupo de instrucciones una
isequal(A, B) cantidad de veces fija y predeterminada. Un end
correspondiente delimita las instrucciones:
ans =

0
for n = 3:32
El siguiente ejemplo ayuda a enfatizar este punto.
Si A y B son escalares, el siguiente programa nunca r(n) = rank(magic(n));
alcanzará la “situación inesperada” del final. Sin
embargo, para la mayoría de los pares de matrices, end
incluyendo nuestros cuadrados mágicos con
columnas intercambiadas, ninguna de las r
condiciones A > B, A < B o A == B resulta válida
El punto y coma que finaliza la instrucción interna El resultado es una raíz del polinomio x3 – 2x – 5,
suprime la impresión repetida, y la r que aparece es decir:
después del bucle muestra el resultado final.
x=

2.09455148154233
Es recomendable sangrar los bucles para mejorar su
legibilidad, en especial cuando están anidados: Las precauciones asociadas a las comparaciones de
matrices que se analizan en la sección de la
instrucción if también se aplican a la instrucción
while.
for i = 1:m
continue
for j = 1:n
La instrucción continue traslada el control a la
H(i,j) = 1/(i+j); siguiente iteración del bucle for o del bucle while
en el cual aparece, y omite cualquier instrucción
end restante en el cuerpo del bucle. Lo mismo ocurre
para las instrucciones continue dentro de bucles
end anidados. Es decir, la ejecución continúa al
comienzo del bucle en el cual se encontró la
while instrucción continue.

El bucle while repite un grupo de instrucciones una El siguiente ejemplo muestra un bucle continue que
cantidad indefinida de veces bajo control de una cuenta las líneas de código del archivo magic.m y
condición lógica. Un end correspondiente delimita omite todos los comentarios y líneas en blanco. La
las instrucciones. instrucción continue se utiliza para avanzar a la
siguiente línea de magic.m, sin incrementar la
El siguiente es un programa completo, que ilustra el cuenta cuando se encuentra un comentario o una
uso de while, if, else y end, y utiliza la bisección de línea en blanco.
intervalos para buscar un cero de un polinomio:
fid = fopen('magic.m','r');

count = 0;
a = 0; fa = -Inf;
while ~feof(fid)
b = 3; fb = Inf;
line = fgetl(fid);
while b-a > eps*b
if isempty(line) || strncmp(line,'%',1) ||
x = (a+b)/2; ~ischar(line)

fx = x^3-2*x-5; continue

if sign(fx) == sign(fa) end

a = x; fa = fx; count = count + 1;

else end

b = x; fb = fx; fprintf('%d lines\n',count);

end fclose(fid);

end break

x La instrucción break le permite salir temprano de un


bucle for o un bucle while. En bucles anidados,
break sale solo del bucle más interno.
La siguiente alternativa mejora el ejemplo ofrecido °F=9/5°C+"\3\2"
en la sección anterior. ¿Por qué es recomendable °R=9/5°K
este uso de break? Pseudocódigo:

a = 0; fa = -Inf;

b = 3; fb = Inf;

while b-a > eps*b

x = (a+b)/2;

fx = x^3-2*x-5;

if fx == 0

break

elseif sign(fx) == sign(fa)

a = x; fa = fx;

else

b = x; fb = fx;

end

end
Diagrama de flujo:
x

Finalización del programa: return

Esta sección trata la función return de MATLAB, la


cual permite terminar el programa antes de que este
complete su ciclo.

return

La función return finaliza la secuencia actual de


comandos y devuelve el control a la función
invocadora o al teclado. return también se utiliza
para terminar el modo keyboard (teclado).
Normalmente, una función llamada transfiere el
control a la función que la invocó cuando llega al
final de la función. Es posible insertar una
instrucción return dentro de la función llamada para
forzar una finalización temprana y transferir el
control a la función invocadora.

IV. RESULTADOS

1. Elabore el algoritmo para el programa de


conversión de temperaturas. Usando las
siguientes ecuaciones:
°F"\=\°" R-"\4\5\9\.\6\7"
.
Diagrama de flujo:

2. Realice un programa que le permita convertir de


fasor a Impedancia y viceversa, el usuario debe
ingresar y elegir el parámetro a convertir.

Pseudocódigo:
VII. CONCLUSIONES

● Se identificó cuáles son las funciones básicas para


declarar variables en Matlab.

● Se analizó el procesamiento y funcionamiento de


cada una de las funciones de Matlab.
● Se identificó cómo se imprime el contenido de una
variable.

VIII. APLICACIÓN PROFESIONAL


● Esta práctica es importante en nuestra carrera
porque el manejo de Matlab facilita el análisis de
gráficas para el comportamiento de señales en los
equipos biomédicos.

IX. BIBLIOGRAFÍA

[ «wikipedia,» 15 junio 2017. [En línea].


1 Available:
] https://es.wikipedia.org/wiki/MATLAB.
[Último acceso: 03 septiembre 2019].

[ «mathworks,» 15 febrero 2010. [En línea].


2 Available:
] https://la.mathworks.com/help/matlab/numeric-
V. CUESTIONARIO types.html. [Último acceso: 03 septiembre
2019].
1. Se tiene un programa en matlab con 3 ciclos repetitivos
anidados sin embargo el mismo programa en C++ se ejecuta
en menor tiempo. Explique el porqué de este fenómeno.
● [3] Griego. (2007, Feb 1). Blog [Online]. Available:
https://smf.edaboard.com/topic-2113674.0.html
RTA: En c++ se ejecuta en menor tiempo ya que es más
específico el siglo en Matlab es un poco mayor el tiempo ya
que el siglo no esta tan especifico.
● [4] dKace. (2007, Feb 1). Blog [Online]. Available:
https://smf.edaboard.com/topic-2113674.0.html

VI. CAUSAS DE ERROR Y ACCIONES PARA


TENER MEJORES RESULTADOS

 No realizar de forma correcta los diagramas de flujo


 No declarar las variables antes de hacer cada uno de
los ejercicios planteados en la guía
X. ANEXOS

Potrebbero piacerti anche