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
| clear all
%Ouverture du dossier où se trouve les .mat
rep = uigetdir( 'Select directory with waterline .mat')
cd (rep)
[filename,pathname]=uigetfile( '*.mat','MultiSelect','on'); %récupération d'une liste filename avec tous les fichiers mat
%condition pour que le prog marche
if(numel(filename)==0);
disp('pas de fichier .mat dans le dossier sélectionner');
return
end
%Paramètre d'entrée
Y=input('Donnez la valeur de Y qui est constante \n')
%Ouvrir nouveau fichier
filename_new = ['Yconstant',num2str(Y),'.txt']
fid=fopen(filename_new,'w');
%lecture du fichier .mat
for k=numel(filename):-1:1;
clear fname
clear allWL
clear date
fname=char([filename(k)]);
load(fname,'-mat'); %lecture du .mat
%Récupération de la date
date1 = char([allWL.name]); %lecture de la date du fichier
Mois=date1(16:18);
Jour=date1(20:21);
Annee=date1(36:39);
date=[Jour,'/', Mois,'/',Annee]; %Récupère le jour, le mois l'année du fichier
datejulien = datenum(date); % transforme la date gregorienne en date julienne
%création de la matrice contenant les waterlines
for p=1:1:length(allWL) % boucle sur le nombre de partie de la WL
% (utile lorsque l'on fait un WL manuellement
% en plusieurs fois (zoom dézoom).
% Récupèration des x pour un y constant
mat = floor(allWL(1,p).xyz); % arrondi les composantes x y z de la matrice pour obtenir un y sous la forme 10^3
%tableau_final=[];
for j=1:1:length(mat(:,2)); % Pour ts les i parcourant la colonne y
if mat(j,2) == Y % Si y=2000
fprintf(fid,'%s %i\n',date,mat(j,1)); % imprime un tableau avec les dates en 1er colonne et le X en 2nd
break % et tu t'arrete la
else
fprintf(fid, '%s %s\n',date,'NAN'); % Sinon imprime NaN au niveau des X ////!!!\\\\\ PROBLEME
break
end
end
end
end
fclose(fid);
disp('affiche les résultats ds le fichier') |
Partager