% funzione che definisce i dati per la Barretta Estensimetrica, in particolare % tempo (TimeEL) e Dato (Extensometer) function [TimeEL,Extensometer,NTCExtensometer,ErrExtensometerLink]... = defDatiEL(DatiExtensometerLink,DatiNTCExtensometerLink,ErrExtensometerLink,... ChEL,EL_NTC,rEL,Ndatidespike,FileName) fileID = fopen(FileName,'a'); fmt = '%s \r'; text = 'defDatiEL function started'; fprintf(fileID,fmt,text); [r,c] = size(DatiExtensometerLink); Ncorr = 0; % Elimino gli eventuali Not a Number for a = 2:r for b = 2:c check = isnan(DatiExtensometerLink(a,b)); if check == 1 DatiExtensometerLink(a,b) = DatiExtensometerLink(a-1,b); ErrExtensometerLink(a,b-1) = 1; Ncorr = Ncorr+1; end if EL_NTC(b-1) == 1 % La prima colonna è una data check = isnan(DatiNTCExtensometerLink(a,b)); if check == 1 DatiNTCExtensometerLink(a,b) = DatiNTCExtensometerLink(a-1,b); if ErrExtensometerLink(a,b-1) == 0 ErrExtensometerLink(a,b-1) = 0.5; else ErrExtensometerLink(a,b-1) = 1; end Ncorr = Ncorr+1; end end end end text = ['' num2str(Ncorr) ' NaN of Extensometer Link corrected by defDatiEL function']; fprintf(fileID,fmt,text); TimeEL = DatiExtensometerLink(:,1); % data Extensometer = zeros(r,rEL); NTCExtensometer = zeros(r,rEL); b = 2; % colonna del primo dato for s = 1:rEL Extensometer(:,s) = DatiExtensometerLink(:,b); % dati Extensometer Link if ChEL(s,1) == 1 || ChEL(s,1) >= 2 % Solo barretta estensimetrica if EL_NTC(s,1)==1 % si legge anche il termometro NTCExtensometer(:,s) = DatiNTCExtensometerLink(:,b); % dati Extensometer Link end b = b+1; end end Num_Dati = Ndatidespike; % numero di dati per il despike if Num_Dati > r Num_Dati = r; end for i = 1:rEL % despiking Barrette Estensimetriche Extensometer(:,i) = filloutliers(Extensometer(:,i),'linear','movmedian',Num_Dati); end text = 'Data of Extensometer Link defined correctly. defDatiEL function closed'; fprintf(fileID,fmt,text); fclose(fileID); end