E' possibile dichiarare più funzioni nello stesso file .m, ma solo la prima viene vista dal workspace.
La cosa più semplice che puoi fare è:
[*] creare un "main file" che contenga la definizione delle variabili di inizializzazione e la chiamata alla funzione "risult" che sembra essere il punto di ingresso de tuo codice
[*] creare un file .m nel quale inserire la funzione "risult" e salvalo con il nome della funzione (risult.m)
[*] modificare la definizione della funzione "risult" eliminando il primo parametro "L" (che viene calcolato dalla funzione "larghezza"
[*] aggiungere, nella funzione "risult" la chiamata alla funzione "larghezza nella funzione "risult" prima dell'utilizzo della variabile L
[*] creare un file .m nel quale inserire la funzione "larghezza" e salvalo con il nome della funzione (larghezza.m)
[*] chiamare la funzione risult dal main file
[*] lanciare il mani file
Prova ad eseguire il tutto in modalità debug e verifica che il codice funzioni correttamente.
Di seguito un esempio dei tre files che devi creare; i commenti aggiunti dovrebbero spiegare le modifiche.
main script
dx = 0.01;
n = 100;
h = 500;
%C = risult(L,h,dx,n)
%
% Call risult without the L parameter that is computed by the function
% larghezza
%
C = risult(h,dx,n)
funzione risult
%function C = risult(L,h,dx,n)
%
% Define the function risult without the L parameter that is calculated by
% the function larghezza called by the risult functioin
%
function C = risult(h,dx,n)
C = 0;
for i=1:n
x = dx*(2*i-1)/2;
eps = 0.004*(h/2-x)/(h/2);
sigma = 20*(1-(1-eps/0.004)^2);
% nella prox riga mi serve la L che ho trovato nella precedente funz
% L e’ funzione della X che rappresenta la stessa quantita’
%
% calll larghezza
%
L=larghezza(x)
C= C+L*dx*sigma;
end
end
funzione larghezza
function L = larghezza (x)
L = 300-15*x;
end