Se il messaggio di errore è
Too many output arguments fidati, è così.
Se definisci la funzione come
function y=calcola_lontana(n,vettore)
significa che la funzione ritorna una sola variabile (
y)
Nella funzione hai definito Il "
tipo" della variabile come vettore (
y=[rps,index_theta]), quindi la funzione ritornerà un vettore composto da due elementi.
Di conseguenza, quando chiami la funzione, devi specificare, come output, una sola variabile (che sarà un vettore).
L'istruzione con la quale chiami la funzione:
[rps,index_theta]=calcola_lontana(n,vettore);
implica che ti aspetti di ricevere come output, due variabili (
rps e
index_theta); il fatto che la sintassi preveda che le specifichi all'interno di parentesi quadre (
[rps,index_theta]), non significa che costituiscano un vettore.
Quindi, hai due possibilità:
1) modificare la definizione della funzione in modo che ritorni due variabili:
function [rps,index_theta]=calcola_lontana(n,vettore)
%corpo della funzione
rps=3; % Esempio di valore calcolato nella funzione
index_theta=1; % Esempio di valore calcolato nella funzione
% y=[rps,index_theta];
in modo da poterla chiamare come
[rps,index_theta]=calcola_lontana(n,vettore);
2) lasci invariata la definizione della funzione:
function y=calcola_lontana(n,vettore)
%corpo della funzione
y=[rps,index_theta];
e la chiami specificando solo un parametro di output:
vettore_output=calcola_lontana(n,vettore);