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
ifL'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-elseL'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
endExemple
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-elseL'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
endExemple
x = 0;
if x > 0
disp('x és positiu');
elseif x < 0
disp('x és negatiu');
else
disp('x és zero');
endEn aquest exemple, el missatge "x és zero" es mostrarà perquè cap de les condicions anteriors és certa.
- Estructura
switch
switchL'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
endExemple
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');
endEn 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');
endExercici 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');
endExercici 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');
endConclusió
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
