1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| rep='F:\xxx';
ext='*.txt';
chemin=fullfile(rep,ext);
list=dir(chemin);
Excel = actxserver('Excel.Application');
Workbook = Excel.Workbooks.Add;
Excel.Visible=true;
Excel.Worksheets.Item(1).Name='Valeurs Moyennes';
Excel.Worksheets.Item(2).Name='Valeurs récupérées';
Excel.Worksheets.Item(3).Name='Graphique Lv Moyen';
Excel.Worksheets.Item(3).Name='Graphique Effort Max';
Excel.ActiveSheet.Range('B4').Value='Moyenne Lv (dB)';
Excel.ActiveSheet.Range('C4').Value='Moyenne La (dB)';
Excel.ActiveSheet.Range('D4').Value='Moyenne Effort Maximal (N)';
Excel.ActiveSheet.Range('E4').Value='Moyenne Energie Effort (J)';
Excel.ActiveSheet.Range('F4').Value='Effort Traction Maximal (N)';
Excel.ActiveSheet.Range('A1').Value='Date de création';
Excel.ActiveSheet.Range('A2').Value='Nombre de fichiers';
Excel.ActiveSheet.Range('A4').Value='OF ou numéro de pièce';
Excel.ActiveSheet.Range('B1').Value = now-datenum('01-Jan-1904 00:00:00');
Excel.ActiveSheet.Range('B1').NumberFormatLocal = 'jj/mm/aaaa HH:MM';
n=1;
DONNEE=zeros(numel(list),5);
for n=1:numel(list)
filename=list(n).name;
fid=fopen(filename,'r');
data = strrep(fread(fid, [1 inf], '*char'), ',', '.');
fclose(fid);
T = textscan(data,'%f%f%f%f%f%f%f', 'CollectOutput', 1);
i=5;
for i=5:1:7
Tmp=T{1}(5:end,i);
[A(n,i) B(n,i)]=max(Tmp);
y(n,i)=max(max(T{1}(5:end,i))).*0.1;
P1(n,i)=find(Tmp(B(n,i)+1:end)<y(n,i),1,'first');
P2(n,i)=find(Tmp(1:B(n,i))<y(n,i),1,'last');
ENERGIE(n,i)=trapz(Tmp(P2(n,i):P1(n,i)+B(n,i)));
RMS(n,i-4)=sqrt(mean(T{1}(P2(n,i):P1(n,i)+B(n,i),i-4).^2));
La(n,i-4)=20*log10(RMS(n,i-4)/10^-6);
Lv(n,i-4)=20*log10(RMS(n,i-4)/10^-9);
end
La(n,4:7)=0;
Lv(n,4:7)=0;
EFFORTT(n)=max(T{1}(5:end,4));
EFFORTT=EFFORTT';
DONNEE(n,:)=[mean(Lv(n,1:3)),mean(La(n,1:3)),mean(A(n,5:7)),mean(ENERGIE(n,5:7)),EFFORTT(n)];
[pathstr, name, ext]=fileparts(filename);
range = sprintf('%c%d:%c%d','A'+0,5,'A'+0,4+n);
range2 = sprintf('%c%d:%c%d','A'+1,5,'A'+5,4+n);
Excel.ActiveSheet.Range(range).Value=name;
Excel.ActiveSheet.Range(range2).Value=DONNEE;
end
Excel.ActiveSheet.Range('B2').Value=n; |
Partager