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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| function calcul_pente_auto(repertoire)
T0=strcat(repertoire, '_result');
Excel = actxserver ('Excel.Application');
% T0 = fullfile(repertoire, '_result');
%on lit fichier Excel avec les résultats à 1Hz pour un repertoire donné.
%REMARQUES : Matlab ne récupère que les nombres de la feuille 'result' et pas les
%chaînes de caractères.
if ~exist(T0,'file')
ExcelWorkbook = Excel.Workbooks.Add;
ExcelWorkbook.SaveAs(T0,1);
ExcelWorkbook.Close(false);
end
Excel.Workbooks.Open(T0);
Y = xlsread1(T0,'result');
nl = size(Y,1);
for i=1:nl %nl=evenement ie pour chaque evenement
nl
%on lit le début, fin et type du reflux considéré i.e. on récupère donc les
%événements de reflux et leur type (liquide, mélange, gazeux).
debut=Y(i,1);
fin=Y(i,2);
type=Y(i,5);
%On examine ensuite chacune des 6 pistes d'impédance pour l'événement
%en cours i.e. on parcourt les colonnes 6 à 11. On regarde les impédances
%différentes du nombre 1E36 i.e. les impédances touchées par les reflux.
for j=6:11 %pour chaque piste de cet evenement
if (Y(i,j)~=1E36)
piste=j-5;
%On regarde la feuille ij où i=piste et j=type dans le xls
feuille=strcat(num2str(piste),num2str(type));
%Dans deb_fin on prends les données de début et fin pour
%evenements_Impi_j pour i=piste, j=type
deb_fin=xlsread1(T0,feuille,'A:B');
for k=1:size(deb_fin,1)
%On stocke dans X le résultat de l'intersection [deb,fin],
%événement provenant du tableau_final de reflux pour le fichier
%à 1Hz avec deb_fin(k,:) qui désigne les événements [deb,fin]
%evenements_Impi_j pour i=piste, j=type.
X=intersect([debut,fin],deb_fin(k,:));
if ~isempty(X)
ligne=k;
end
end
%pour chaque ligne on cherche le début et la fin sur le fichier à
%50 Hz
%on cherche l'evenement qui correspond à 1Hz, ensuite l'événement à
%50 Hz (X)
debut=1 + 50*(deb_fin(ligne,1)-1);
fin=1 + 50*(deb_fin(ligne,2)-1);
rep_50=strcat(repertoire(1:end-2),'-50');
%on lit le fichier à 50 Hz (les int) entre debut et fin pour chaque piste
%avec lecture_int
X=lecture_int(rep_50,piste,debut,fin);
end %if (R(i,j)~=1E36)
end
end
Excel.ActiveWorkbook.Save;
Excel.Quit
Excel.delete
clear Excel
end |
Partager