Matlab: pb pour concaténer dates et données

Fermé
bean - 7 juin 2010 à 11:55
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 8 juin 2010 à 11:30
Bonjour,

J'ai créé une colonne datestring1 de dates, du type
2006/12/01 01:29:59:501
2006/12/01 01:29:59:601
2006/12/01 01:29:59:701
2006/12/01 01:29:59:801
2006/12/01 01:29:59:901

et j'aimerais la concaténer avec la matrice M des données mesurées correspondant à ces dates
Le problème, c'est que que j'utilise [datestring1,M] ou la fonction horzcat(datestring1,M), j'obtiens toujours du type
2006/12/01 01:29:59:101  
2006/12/01 01:29:59:201  
2006/12/01 01:29:59:301   
Les données sont donc mal affichées.

Je pense que c'est lié au type de datestring1, mais comment résoudre ce problème?

Merci,

3 réponses

une idee?
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 juin 2010 à 15:42
une idée : convertir ta matrice en string.
num2str() ?
0
Bonjour,
Merci, effectivement la matrice M de format double a été converti en char
Par contre l'export ne marche toujours pas.
Je pense que cela est du au fprintf. Comme la matrice double 6000x15 a été convertie en char 6000x190, je ne peux plus laisser les 15 fois %f dans fprintf.
Dois je taper 190 fois %f, ou il y a un moyen plus rapide pour indiquer dans fprintf le format de plusieurs colonnes?
Merci,
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
8 juin 2010 à 11:30
%f c'est pour les flottant. Si tu as des char, il faut mettre %s je pense.
0
finalement j'ai choisir de convertir les dates en type numérique. ça permet d'afficher datestring1 et M ensemble.
Voici la source:
datestring1=datestr(datenum('30-Dec-1899')+time(1:length(time)),'yyyy mm dd HH MM SS FFF');
dates = str2num(datestring1)
fprintf(fid, '%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f\n', horzcat(dates,M));

Cependant, les fichiers exportés ne respectent plus les colonnes, et deviennent
2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000 2006.000000
12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000
12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000
12.000000 12.000000 12.000000 12.000000 12.000000 12.000000
...
0