Saltar al contenido
Control Automático Educación

Condicionales Comparadores y Bucles en MATLAB

Hola controleros y controleras en el dia de hoy vamos a aprender a usar instrucciones Condicionales, Comparadores y Bucles dentro del software de MATLAB.

Esta entrada hace parte de nuestro curso gratuito de MATLAB para INICIANTES

Comparadores en Matlab

Las comparaciones son verdaderas o falsas, y la mayoría de los programas de cómputo (incluido MATLAB) usa el número 1 para verdadero (true) y el 0 para falso (false).

Normalmente estas comparaciones son usadas dentro de un condicional para ejecutar o no una parte determinada del código.

Para poder realizar comparaciones, existen dos tipos de operadores dentro de Matlab, los operadores relacionales y los operadores lógicos.

Comparaciones MATLAB

Los operadores relacionales como su nombre lo indica, son operaciones que me relacionan dos variables, donde se pregunta si una variable es menor que, mayor que, menor igual que, mayor igual que, igual o diferente que otra.

Algunos ejemplos ocupando los operadores lógicos de matlab como el AND, OR, NOT o XOR podemos verlos a continuación, donde como se darán cuenta necesitaremos valernos de las preposiciones para poder obtener el resultado lógico de (verdadero o Falso) en las famosas tablas de verdad.

operaciones logicas matlab

Condicionales en Matlab

Uno de los condicionales más comunes es el empleado por el enunciado if, el cual presenta la siguiente estructura:

Si la comparación (una expresión lógica) es verdadera, se ejecutan los enunciados entre el enunciado if y el enunciado end. Si la comparación es falsa, el programa salta inmediatamente al enunciado que sigue a end.

Sin embargo podemos complementar la condición if adicionando el comando else.

if/else

La cláusula else le permite ejecutar un conjunto de enunciados si la comparación es verdadera y un conjunto diferente de enunciados si la comparación es falsa.

Cuando se anidan varios niveles de enunciados if/else, puede ser difícil determinar cuáles expresiones lógicas deben ser verdaderas (o falsas) con la finalidad de ejecutar cada conjunto de enunciados. La función elseifle permite comprobar criterios múltiples mientras se mantiene el código fácil de leer.

La estructura switch/case se usa con frecuencia cuando existe una serie de opciones de ruta de programación para una variable dada, dependiendo de su valor. Switch/case es similar a if/else/elseif. De hecho, cualquier cosa que pueda hacer con switch/case se podría hacer con if/else/elseif. Sin embargo, el código es un poco más fácil de leer con switch/case

Bucles en MATLAB

Los bucles (loops) se usan cuando necesita repetir un conjunto de instrucciones muchas veces.

MATLAB soporta dos tipos diferentes de bucles: el bucle for y el bucle while.

Los bucles for son la opción más sencilla cuando usted sabe cuántas veces necesita repetir el bucle.

Los bucles while son las opciones más sencillas cuando necesita mantener la repetición de las instrucciones hasta que se satisface un criterio.

Bucles For en Matlab

La estructura del bucle for es simple. La primera línea identifica el bucle y define un índice, que es un número que cambia en cada paso a través del bucle. Después de la línea de identificación viene el grupo de comandos que se quiere ejecutar. Finalmente, la terminación del bucle se identifica mediante el comando end.

Una de las formas más comunes de usar un bucle fores para definir una nueva matriz.

Bucle for matlab

Bucles While en Matlab

Los bucles while son similares a los bucles for. La gran diferencia es la forma en que MATLAB decide cuántas veces repetir el bucle. Los bucles whilecontinúan hasta que se satisface algún criterio.

La mayoría de los bucles fortambién se pueden codificar como bucles while.

Break y continue

El comando break se puede usar para terminar un bucle prematuramente (mientras que la comparación en la primera línea todavía es verdadera). Un enunciado break provocará la terminación de la parte más pequeña que encierre un bucle while o for.

El comando continue es similar a break; sin embargo, en lugar de terminar el bucle, el programa sólo salta al paso siguiente.

Cómo mejorar la eficiencia de los bucles

En general, usar un bucle for (o un bucle while) es menos eficiente en MATLAB que usar operaciones de arreglos. Se puede probar esta afirmación al cronometrar la multiplicación de los elementos en un arreglo largo. Primero se crea una matriz A que contiene 40,000 unos. El comando ones crea una matriz nxn de unos

El resultado es una matriz 200×200 de unos. Ahora se pueden comparar los resultados de multiplicar cada elemento por pi, usando primero una multiplicación de arreglo y luego un bucle for.

El código de ejemplo lo puedes descargar a continuación:

Códigos en Matlab

Puedes descargar los códigos vistos en esta entrada para que aprendas a usar correctamente los Condicionales comparaciones y bucles en MATLAB.

if/elseif/else

switch/case

while/for

Prueba de Rendimiento

Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:

👉 Invitar a Sergio a un Café ☕️

Que esten muy bien, nos vemos en la siguiente entrada.