Le problème "char"
Pardon j'ai oublié de mettre ces 3 lignes juste avant :
J'ai lu et relu la page des tableaux de cellules mais je n'arrive pas à m'en servir pour ma situation. Je saisis mal ce qu'est un "char" je pense... Parce que le nom du fichier est "WLS-2011..." ce qui est une chaîne de caractères pour moi, donc un "string". Je crois que Matlab considère le nom du fichier comme un "char" tout simplement, que j'essaie de transformer en chaîne de caractères. J'essaierai de trouver quelques tutoriels sur les tableaux de cellules. :oops:Code:
1
2
3
4
5 mini=1; maxi=length(datetotalliste); for m=mini:maxi datetotal=datetotalliste(m).name; [...]
Sauvegarde d'une matrice dans un fichier :
J'utilise les deux car importdata ne récupère pas les dates+heures.
Voici le code qui permet de récupérer les dates+heures dans la matrice "fichiertotal", ainsi que les données dans la matrice "datas". A noter que "datetotal" varie selon le nom du fichier car ce bout de code est imbriqué dans une boucle for :
(En bleu ce qui est inutile finalement, et à noter que mes fichiers ont une en-tête de 57 lignes que je ne veux pas)
Comme dit en commentaire dans le code, sans ces "bidouillages" (puisqu'en réalité, j'essaie de m'en sortir comme je peux :) ), j'obtiens ceci :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 n=1; nns=1; [...] A = fopen(datetotal); % Permet de fournir l'entree fid necessaire à textscan Matricedate = textscan(A,'%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s %*[^\n]','delimiter','\t', 'headerlines',57); %Je récupère les dates et heures, toujours même nombre de caractères. Ce qui suit me permet d'éviter avoir des tableaux de cellules comme je montre juste après le code. fichierpartiel=Matricedate{1}; %Enregistre les dates du fichier pour la boucle (n), puis (n+1), puis (n+2)... Cette matrice est effacée à chaque fois. s=size(fichierpartiel);s=s(1,1); ns=n+s; fichiertotal(n:(ns-1),1)=fichierpartiel(:,1); %Enregistre à la suite les dates des fichiers (n) (n+1) (n+2) n=n+s; datapartiel=importdata(datetotal,'\t',57); %vars=fieldnames(datapartiel.data); %datas=datapartiel.data; datas=[datas;datapartiel.data]; %Enregistre toutes les données uniquement, la première colonne (les dates+heures) est ignorée. %ss=size(datas);ss=ss(1,1); %nss=nns+ss; %datasdata(nns:(nss-1),1)=datas(:,1); %sss=size(datasdata);sss=sss(1,1); fclose(A);
Je ne sais pas vraiment m'en servir, j'espère que ce que j'ai écrit est une "bonne solution".Code:
1
2
3
4
5
6
7 Columns 1 through 7 {72x1 cell} {72x1 cell} {72x1 cell} {72x1 cell} {72x1 cell} {72x1 cell} {72x1 cell} [...] Columns 15 through 19 {72x1 cell} {72x1 cell} {72x1 cell} {72x1 cell} {72x1 cell}
J'ai fait plusieurs essais avec ces fonctions sans grande réussite, alors je m'étais penché sur dlmwrite. Quand je lance "datas", la mise en forme est bonne sous matlab, mais quand je veux simplement que ce soit enregistrer dans un fichier texte, cette mise en forme disparaît... aucun retour à la ligne rien...