Estratto del documento

Cap. 4: Start programming

Cambiare il numero di ingressi e uscite

Quando ho un numero di argomenti in ingresso di cui non conosco il numero (potenzialmente infinito), ho bisogno di due variabili:

  • Varargin (variabili in input): variabile predefinita che contiene la lista di tutte le variabili in ingresso dopo la prima. È una variabile cella, cioè un array di diversi tipi di variabili (numeri, vettori, matrici, stringhe, booleani, ecc.) fornite come input alla funzione. Per accedere all'i-esimo elemento di varargin si usa la sintassi varargin{i}.
  • Varargout (variabili in uscita).

Il numero di elementi in ingresso e in uscita è memorizzato nelle variabili:

  • Nargin (numero di argomenti in input) è un intero e indica quanto è lungo il vettore.
  • Nargout (numero di argomenti in uscita). Non trattati qui.

Funzioni e procedure

Quando si parla di funzioni, le cose da ricordare sono:

  • Come si gestiscono le variabili: le variabili dentro una funzione nascono e muoiono con quella.
  • La funzione non è una procedura: la procedura è semplicemente un pezzo di codice dentro il workspace, mentre la funzione è un qualcosa che ha un ingresso (input) e restituisce qualcosa (output). Quello che restituisce viene scritto all’inizio, dopo la parola function. function [min, max] = minmax(v1, varargin)

Uscite (outputs), Nome del file, Ingressi (inputs):

  • Se l’ingresso è composto da uno o due elementi si scrive semplicemente il nome del vettore.
  • Nel caso in cui si tratti di 2 o più ingressi si scrive varargin.

Esempio: somma di una sequenza di numeri interi in ingresso

function [out1] = sum_integers(x, varargin)

sprintf('Number of inputs: %d\n', nargin)

sprintf('Number of inputs in varargin: %d\n', length(varargin))

Selem = x; % Memorizza la somma parziale degli interi in ingresso

for i = 1:nargin-1

Selem = Selem + varargin{i};

end

out1 = Selem;

end

>> x1 = 6; x2 = 7; x3 = 1;

>> [y] = sum_integers(x1, x2, x3)

ans = 'Number of inputs: 3'

ans = 'Number of inputs in varargin: 2'

y = 14

Esempio: calcolare la media degli elementi passati in ingresso

>> media(2,4,10,8)

function [med]= media(x, varargin)

ans = Numero_elem = 0; 7.3333

Somma_elem = 0; % sbagliato, prende in considerazione solo i valori 4, 10, 8.

for i = 1:nargin-1

Numero_elem = Numero_elem + length(varargin{i});

Somma_elem = Somma_elem + sum(varargin{i});

end

med = Somma_elem / Numero_elem;

>> media(2,4,10,8)

function [med] = media(x, varargin)

Anteprima
Vedrai una selezione di 4 pagine su 13
Informatica, programmazione Pag. 1 Informatica, programmazione Pag. 2
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Informatica, programmazione Pag. 6
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Informatica, programmazione Pag. 11
1 su 13
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Kevinzerilli di informazioni apprese con la frequenza delle lezioni di Conoscenze informatiche e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Williams Louise.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community