Non sono sicuro di avere capito.
Ad ogni modo, se hai due funzioni, la seconda delle quali deve operare su una creata dalla prima funzione, la cosa più semplice che puoi fare è
[*] dichiarare la variabile che ti interessa come parametro di output della prima funzione
[*] definire la seconda funzione in modo richieda almeno un parametro di input
Quando, nel tuo codice esegui chiami la prima funzione, questa creerà nel workspace la matrice che desideri.
Quando chiami la seconda funzione specifica, come parametro, il nome che hai assegnato alla matrice
Un piccolo esempio:
[*] la prima funzione crea semplicemente una matrice (oltre ad alcuni controlli e un paio di output aggiuntivi (per completezza dell'esempio)
[*] la seconda funzione accetta in input una matrice ed un flag n base al quale restituisce,in output la matrice triangolare superiore o inferiore della matrice di input
Prima funzione
function [matrice_out,x,y]=first_function(r,c)
go_on=1;
if(r <= 1)
disp('Errore in first_function: parametro 1 <= 0')
go_on=0;
end
if(c <= 1)
disp('Errore in first_function: parametro 2 <= 0')
go_on_0;
end
if(go_on)
matrice_out=rand(r,c)
x=123;
y=333;
end
Seconda funzione
function [matrice_tri]=second_function(input_mat,sup_inf)
[n_row,n_col]=size(input_mat)
go_on=1;
if(n_row < 2 || n_col < 2)
disp('Errore in second_function: il primo input deve essere una matrice')
go_on=0;
end
if(go_on)
if(sup_inf == 1)
matrice_tri=triu(input_mat)
elseif(sup_inf == 0)
matrice_tri=tril(input_mat)
else
disp('Errore in second_function: secondo parametro non valido')
mattrice_tri=NaN
end
end
Chiamata delle due funzioni
r=1;
c=10;
[matrice_completa,p2,p3]=first_function(r,c)
[matrice_tri]=second_function(matrice_completa,1)