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
|
for k=1:numel(list_spread) %Nombre de ligne des spread pour une contrepartie
chemin_spread = fullfile(repertoire_mother_spread, list_spread(k,1).name);%Chemin d'acc?s des spreads de chaque contrepartie
list_total= dir(fullfile(chemin_spread)); %Liste total des spreads pour chaque contrepartie
list_total( strncmp({list_total.name}, '.', 1) ) = []; %enl?ve les 2 premi?res valeurs qui sont ds points
o=0;
for p=1:numel(list_total) %Boucle pour le nombre total de spread de chaque contrepartie
if isempty(strfind(list_total(p,1).name,'SUB'))==1
nom_spread_test = sscanf(list_total(p,1).name, '%3c.txt'); %Ne prend en compte que les spreads MAR
if strcmp(nom_spread_test,'MAR')==1
o=o+1; %Compte le nombre de fois o? un MAR est rencontr? pour une contrepartie don?e
list_total2(p+q,1).name=list_total(p,1).name; %Cr?ation d'un list_total2 avec tous les spreads MAR pour toutes les contreparties
chemin_spread2 = fullfile(repertoire_mother_spread, list_spread(k,1).name,list_total(p,1).name); %Chemin pour r?cuperer le fichier spread de la contrepartie
fid=fopen(chemin_spread2,'r'); %ID du spread de la contrepartie consid?r?e
M = textscan(fid,'%s %f','TreatAsEmpty','.','HeaderLines',1); %Ouvre le spread
fclose(fid);
J=datenum(M{1,1}); %convertie les dates string en format matlab
Spread=[J,M{1,2}]; %correspond au S dans mon exemple du début, donc pour chaque pas on ouvre un S%Concatene en 1?re colonne les dates matlab, et en seconde les spreads
udate = unique([udate ; Spread(:,1)]);
end
end
C = NaN(numel(udate), 2000); %le problème va être de ne pas mettre 2000 mais le nombre exact, enfin il suffira que je face une variable qui compte dans la 1ème boucle
C(:,1) = udate;
% for p=1:numel(list_total) %Boucle pour le nombre total de spread de chaque contrepartie
if isempty(strfind(list_total(p,1).name,'SUB'))==1
nom_spread_test = sscanf(list_total(p,1).name, '%3c.txt'); %Ne prend en compte que les spreads MAR
if strcmp(nom_spread_test,'MAR')==1
o=o+1; %Compte le nombre de fois o? un MAR est rencontr? pour une contrepartie don?e
list_total2(p+q,1).name=list_total(p,1).name; %Cr?ation d'un list_total2 avec tous les spreads MAR pour toutes les contreparties
chemin_spread2 = fullfile(repertoire_mother_spread, list_spread(k,1).name,list_total(p,1).name); %Chemin pour r?cuperer le fichier spread de la contrepartie
fid=fopen(chemin_spread2,'r'); %ID du spread de la contrepartie consid?r?e
M = textscan(fid,'%s %f','TreatAsEmpty','.','HeaderLines',1); %Ouvre le spread
fclose(fid);
J=datenum(M{1,1}); %convertie les dates string en format matlab
Spread=[J,M{1,2}]; %Concatene en 1?re colonne les dates matlab, et en seconde les spreads
idx = ismember(udate, Spread(:,1));
C(idx,2) = Spread(:,2);
end
end |
Partager