En aquest tema, aprendrem a utilitzar les estructures de control de flux en MATLAB, que ens permeten prendre decisions dins dels nostres programes. Les estructures de control de flux més comunes són if
, else
, elseif
i switch
.
- Estructura
if
if
L'estructura if
s'utilitza per executar un bloc de codi només si una condició específica és certa.
Sintaxi
Exemple
En aquest exemple, el missatge "x és positiu" es mostrarà perquè la condició x > 0
és certa.
- Estructura
if-else
if-else
L'estructura if-else
permet executar un bloc de codi si la condició és certa i un altre bloc si la condició és falsa.
Sintaxi
if condició % Bloc de codi a executar si la condició és certa else % Bloc de codi a executar si la condició és falsa end
Exemple
En aquest exemple, el missatge "x és negatiu o zero" es mostrarà perquè la condició x > 0
és falsa.
- Estructura
if-elseif-else
if-elseif-else
L'estructura if-elseif-else
permet comprovar múltiples condicions de manera seqüencial.
Sintaxi
if condició1 % Bloc de codi a executar si condició1 és certa elseif condició2 % Bloc de codi a executar si condició2 és certa else % Bloc de codi a executar si cap de les condicions anteriors és certa end
Exemple
x = 0; if x > 0 disp('x és positiu'); elseif x < 0 disp('x és negatiu'); else disp('x és zero'); end
En aquest exemple, el missatge "x és zero" es mostrarà perquè cap de les condicions anteriors és certa.
- Estructura
switch
switch
L'estructura switch
s'utilitza per seleccionar un bloc de codi a executar entre múltiples opcions basades en el valor d'una variable.
Sintaxi
switch variable case valor1 % Bloc de codi a executar si variable és igual a valor1 case valor2 % Bloc de codi a executar si variable és igual a valor2 otherwise % Bloc de codi a executar si variable no coincideix amb cap valor anterior end
Exemple
dia = 'dilluns'; switch dia case 'dilluns' disp('Avui és dilluns'); case 'dimarts' disp('Avui és dimarts'); case 'dimecres' disp('Avui és dimecres'); otherwise disp('No és dilluns, dimarts ni dimecres'); end
En aquest exemple, el missatge "Avui és dilluns" es mostrarà perquè la variable dia
és igual a 'dilluns'.
Exercicis Pràctics
Exercici 1
Escriu un programa que comprovi si un nombre és positiu, negatiu o zero i mostri un missatge adequat.
Solució
nombre = input('Introdueix un nombre: '); if nombre > 0 disp('El nombre és positiu'); elseif nombre < 0 disp('El nombre és negatiu'); else disp('El nombre és zero'); end
Exercici 2
Escriu un programa que prengui una nota (0-10) i mostri la qualificació corresponent (Suspès, Aprovat, Notable, Excel·lent).
Solució
nota = input('Introdueix la nota (0-10): '); if nota < 5 disp('Suspès'); elseif nota >= 5 && nota < 7 disp('Aprovat'); elseif nota >= 7 && nota < 9 disp('Notable'); elseif nota >= 9 && nota <= 10 disp('Excel·lent'); else disp('Nota no vàlida'); end
Exercici 3
Escriu un programa que prengui el nom d'un mes i mostri el nombre de dies que té.
Solució
mes = input('Introdueix el nom del mes: ', 's'); switch lower(mes) case {'gener', 'març', 'maig', 'juliol', 'agost', 'octubre', 'desembre'} disp('Aquest mes té 31 dies'); case {'abril', 'juny', 'setembre', 'novembre'} disp('Aquest mes té 30 dies'); case 'febrer' disp('Aquest mes té 28 o 29 dies'); otherwise disp('Nom del mes no vàlid'); end
Conclusió
En aquesta secció, hem après a utilitzar les estructures de control de flux if
, else
, elseif
i switch
en MATLAB. Aquestes estructures són fonamentals per prendre decisions dins dels nostres programes i permeten que el codi sigui més flexible i dinàmic. A continuació, passarem a estudiar els bucles for
i while
en el següent tema.
Curs de Programació en MATLAB
Mòdul 1: Introducció a MATLAB
- Començant amb MATLAB
- Interfície i Entorn de MATLAB
- Comandes i Sintaxi Bàsiques
- Variables i Tipus de Dades
- Operacions i Funcions Bàsiques
Mòdul 2: Vectors i Matrius
- Creació de Vectors i Matrius
- Operacions amb Matrius
- Indexació i Segmentació
- Funcions de Matrius
- Àlgebra Lineal en MATLAB
Mòdul 3: Estructures de Programació
- Flux de Control: if, else, switch
- Bucles: for, while
- Funcions: Definició i Abast
- Scripts vs. Funcions
- Depuració i Gestió d'Errors
Mòdul 4: Visualització de Dades
- Conceptes Bàsics de Gràfics
- Gràfics 2D
- Gràfics 3D
- Personalització de Gràfics
- Tècniques Avançades de Gràfics
Mòdul 5: Anàlisi de Dades i Estadística
- Importació i Exportació de Dades
- Estadístiques Descriptives
- Preprocessament de Dades
- Anàlisi de Regressió
- Proves Estadístiques
Mòdul 6: Temes Avançats
- Entrada/Sortida de Fitxers
- Gestió de Grans Conjunts de Dades
- Tècniques d'Optimització
- Conceptes Bàsics de Simulink
- Computació Paral·lela