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ó end
Exemple
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; end
Abast 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; end
En 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; end
Exemple 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 end
Exercicis 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; end
Exercici 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; end
Exercici 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 end
Conclusió
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