En aquest tema, aprendrem a crear i utilitzar funcions en MATLAB. Les funcions són blocs de codi reutilitzables que permeten estructurar millor els programes, reduir la duplicació de codi i millorar la llegibilitat i mantenibilitat del codi.
Continguts
Definició de Funcions
Una funció en MATLAB es defineix en un fitxer separat amb l'extensió .m. La sintaxi bàsica per definir una funció és la següent:
function [output1, output2, ...] = functionName(input1, input2, ...)
% Descripció de la funció
% Codi de la funció
endExemple
En aquest exemple, la funció addNumbers pren dos paràmetres d'entrada a i b, i retorna la seva suma.
Paràmetres d'Entrada i Sortida
Les funcions poden tenir múltiples paràmetres d'entrada i sortida. Els paràmetres d'entrada es passen a la funció quan es crida, i els paràmetres de sortida es retornen al final de l'execució de la funció.
Exemple amb múltiples paràmetres d'entrada i sortida
function [sum, difference, product] = basicOperations(x, y)
% Aquesta funció calcula la suma, la diferència i el producte de dos nombres
sum = x + y;
difference = x - y;
product = x * y;
endAbast de les Variables
L'abast d'una variable es refereix a la part del codi on la variable és accessible. En MATLAB, les variables definides dins d'una funció són locals a aquesta funció i no són accessibles fora d'ella.
Exemple d'abast de variables
function result = localScopeExample()
% Aquesta funció demostra l'abast local de les variables
a = 10;
b = 20;
result = a + b;
endEn aquest exemple, les variables a i b són locals a la funció localScopeExample i no es poden accedir fora d'ella.
Exemples Pràctics
Exemple 1: Funció per calcular l'àrea d'un cercle
function area = circleArea(radius)
% Aquesta funció calcula l'àrea d'un cercle donat el seu radi
area = pi * radius^2;
endExemple 2: Funció per trobar el màxim de tres nombres
function maxVal = maxOfThree(a, b, c)
% Aquesta funció retorna el màxim de tres nombres
maxVal = a;
if b > maxVal
maxVal = b;
end
if c > maxVal
maxVal = c;
end
endExercicis Pràctics
Exercici 1: Funció per calcular la mitjana de tres nombres
Descripció: Escriu una funció anomenada averageOfThree que prengui tres nombres com a paràmetres d'entrada i retorni la seva mitjana.
function avg = averageOfThree(x, y, z)
% Aquesta funció calcula la mitjana de tres nombres
avg = (x + y + z) / 3;
endExercici 2: Funció per convertir graus Celsius a Fahrenheit
Descripció: Escriu una funció anomenada celsiusToFahrenheit que prengui una temperatura en graus Celsius com a paràmetre d'entrada i retorni la temperatura equivalent en graus Fahrenheit.
function fahrenheit = celsiusToFahrenheit(celsius)
% Aquesta funció converteix graus Celsius a Fahrenheit
fahrenheit = (celsius * 9/5) + 32;
endExercici 3: Funció per calcular el factorial d'un nombre
Descripció: Escriu una funció anomenada factorial que prengui un nombre enter positiu com a paràmetre d'entrada i retorni el seu factorial.
function result = factorial(n)
% Aquesta funció calcula el factorial d'un nombre enter positiu
if n == 0
result = 1;
else
result = n * factorial(n - 1);
end
endConclusió
En aquesta secció, hem après a definir funcions en MATLAB, a treballar amb paràmetres d'entrada i sortida, i a comprendre l'abast de les variables dins de les funcions. Les funcions són una eina poderosa per organitzar i reutilitzar codi, i són essencials per escriure programes eficients i mantenibles. A continuació, passarem a explorar la diferència entre scripts i funcions, així com les tècniques de depuració i gestió d'errors.
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
