English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La funzione è un insieme di istruzioni che eseguono insieme un compito. In MATLAB, la funzione è definita in un file separato. Il nome del file e il nome della funzione devono essere gli stessi.
La funzione opera sulle variabili nel proprio spazio di lavoro (noto anche come spazio di lavoro locale), diverso dallo spazio di lavoro accessibile dal prompt dei comandi MATLAB (noto come spazio di lavoro di base).
La funzione può accettare più parametri di input e può restituire più parametri di output.
La sintassi delle istruzioni della funzione è-
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)
Di seguito chiamatomymaxLa funzione deve essere scritta con il nomemymax.mIl file. Accetta cinque numeri come parametri e restituisce il numero maggiore.
Crea un file di funzione, chiamato mymax.m e inserisci il seguente codice therein-
function max = mymax(n1, n2, n3, n4, n5) %Questa funzione serve a calcolare %Inserisci cinque numeri max = n1; if(n2 > max) max = n2; fine if(n3 > max) max = n3; fine if(n4 > max) max = n4; fine if(n5 > max) max = n5; fine
La prima riga della funzione inizia con il termine chiave function iniziale dà il nome della funzione e l'ordine dei parametri. Nel nostro esempio,mymaxLa funzione ha cinque parametri di input e un parametro di output.
Le righe di commento dopo la dichiarazione della funzione forniscono il testo di aiuto. Quando digiti il seguente contenuto, verranno stampate queste righe:
help mymax
MATLAB eseguirà le seguenti istruzioni e restituirà i seguenti risultati-
Questa funzione calcola il massimo dei cinque numeri forniti come input
Puoi chiamare la funzione come
mymax(34, 78, 89, 23, 11)
MATLAB eseguirà le seguenti istruzioni e restituirà i seguenti risultati-
ans = 89
Le funzioni anonime sono come le funzioni inline nei linguaggi di programmazione tradizionali, definite in un singolo comando MATLAB. Sono composte da un'espressione MATLAB e da un numero variabile di parametri di input e output.
È possibile definire direttamente le funzioni anonime nella riga di comando di MATLAB o nei file di funzione o script.
In questo modo, è possibile creare funzioni semplici senza dover creare un file per esse.
La sintassi per creare una funzione anonima da un'espressione è
f = @(arglist)expression
In questo esempio, scriveremo una funzione anonima chiamata power, che prenderà due numeri come input e aumenterà il primo numero alla potenza del secondo numero.
Creare un file script e inserire il seguente codice-
power = @(x, n) x.^n; result1 = power(7, 3) result2 = power(49, 0.5) result3 = power(10, -10) result4 = power(4.5, 1.5)
Quando si esegue il file, viene visualizzato -
result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459
Tutte le funzioni devono essere definite nel file, eccetto le funzioni anonime. Ogni file di funzione contiene un funzione principale obbligatoria che appare prima e un numero variabile di sottofunzioni opzionali utilizzate dalla funzione principale.
La funzione principale può essere chiamata dall'esterno del file principale (dalla riga di comando o da altre funzioni), ma non può essere chiamata dalla riga di comando o da altre funzioni al di fuori del file di funzione.
La funzione secondaria è visibile solo alla funzione principale e agli altri sottofunzioni del file di funzione che la definiscono.
Scriviamo una funzione chiamata quadratic per calcolare i radici di un'equazione quadratica. La funzione contiene tre input: il coefficiente quadratico, il coefficiente lineare e il termine costante. Restituirà le radici.
Il file di funzione quadratic.m conterrà la funzione principale quadratic e la funzione secondaria disc, che calcola il discriminante.
Creare un file di funzione quadratic.m e inserire il seguente codice al suo interno
function [x1,x2] = quadratic(a,b,c) % Questa funzione restituisce % Equazione quadratica. % Deve avere 3 parametri di input % x2, x e % Termine costante % Restituisce le radici d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % Fine della funzione quadratic function dis = disc(a,b,c) % Calcolo del discriminante della funzione dis = sqrt(b^2 - 4*a*c); end % Fine della sottounione
Puoi chiamare queste funzioni dal prompt dei comandi, come segue:
quadratic(2,4,-4)
MATLAB eseguirà le seguenti istruzioni e restituirà i seguenti risultati-
ans = 0.7321
Puoi definire una funzione all'interno del corpo di un'altra funzione. Queste si chiamano funzioni annidate. Le funzioni annidate contengono qualsiasi componente di qualsiasi altra funzione.
Le funzioni annidate sono definite all'interno di un'altro'area di lavoro di una funzione, condividono l'accesso all'area di lavoro della funzione contenente.
La sintassi delle funzioni annidate è la seguente-
function x = A(p1, p2) ... B(p2) function y = B(p3) ... fine ... fine
Riscriviamo il caso precedentequadraticLa funzione. Tuttavia, questa volta, la funzione disc sarà una funzione annidata.
Crea un file funzionequadratic2.m,e inserisci il seguente codice-
function [x1,x2] = quadratic2(a,b,c) function disc % Funzione annidata d = sqrt(b^2 - 4*a*c); end % Fine della funzione disc disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % Fine della funzione quadratic2
Puoi chiamare la funzione sopra dal prompt dei comandi come segue:
quadratic2(2,4,-4)
MATLAB eseguirà le seguenti istruzioni e restituirà i seguenti risultati-
ans = 0.73205
Le funzioni private sono funzioni principali visibili solo a un gruppo limitato di altre funzioni. Se non si desidera rendere pubblica l'esecuzione della funzione function(s), è possibile crearle come funzioni private.
Le funzioni private si trovano in una sottodirectory chiamata Private.
Sono visibili solo alle funzioni del folder padre.
RiscriviamoquadraticLa funzione. Tuttavia, questa volta, la funzione disc calcolerà il discriminante e sarà una funzione privata.
Crea una sottodirectory chiamata private nella directory di lavoro e mettici dentro il seguente file funzione disc.m
function dis = disc(a,b,c) % Calcolo del discriminante della funzione dis = sqrt(b^2 - 4*a*c); end % Fine della sottounione
Crea un file funzione quadratic3.m nella tua directory di lavoro e inserisci il seguente codice-
function [x1,x2] = quadratic3(a,b,c) % Questa funzione restituisce % Equazione quadratica unitaria. Deve avere 3 parametri di input % Sono x2, x e % Costante % Ritorna le radici d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); fine % Fine di quadratic3
Puoi chiamare la funzione sopra dal prompt dei comandi come segue:
quadratic3(2,4,-4)
MATLAB eseguirà le seguenti istruzioni e restituirà i seguenti risultati-
ans = 0.73205
Le variabili globali possono essere condivise da più funzioni. Per farlo, è necessario dichiarare la variabile come variabile globale in tutte le funzioni.
Se si desidera accedere a questa variabile dallo spazio di lavoro di base, dichiarare la variabile nella riga di comando.
Le dichiarazioni globali devono avvenire prima che la variabile venga utilizzata effettivamente nel funzionamento. È meglio utilizzare lettere maiuscole per i nomi delle variabili globali per distinguerle dagli altri variabili.
Creiamo un file di funzione chiamato average.m e inseriamo il seguente codice-
funzione avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; fine
Creare un file script e inserire il seguente codice-
global TOTAL; TOTAL = 10; n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42]; av = average(n)
Quando si esegue il file, visualizzerà i seguenti risultati-
av = 35.500