Graphique sur Matlab

sweet_girl_85 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
sweet_girl_85 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Svp, j'ai besoin de faire un graphique sur matlab. Il s'agit de représenter l'évolution d'une variable en fonction du temps. Je vous donne quelques lignes de mon fichiers d'entrée pour avoir une idée sur le format.

%Fichier données
12/04/2001 15:14 5.8
12/04/2001 16:14 16.2
12/04/2001 17:14 0.0
12/04/2001 18:14 4
12/04/2001 19:14 18
12/04/2001 20:14 4.2
12/04/2001 21:14 9



Pour les lignes que j'ai programmées pour faire cette représentation sont les suivants:
function plot_graph


function plot_graph
fic_data=fopen('D:/Travail_préliminaire/Data/fic_test_1.txt','r');
fgetl(fic_data);
data=fscanf(fic_data,'%16s %f', [2 Inf]);
date_num=datenum(data(1,:));
val=data(2,:);
plot(date_num,val,'r:+');
end


Je trouve un graphique totalement en désordre avec des valeurs qui ne coincident pas avec ce que j'ai introduit.

Merci d'avance
à+

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
fait une sortie de data pour vérifier que tu récupère bien ce que tu veux. Mais mixer enteier et chaine de caractère, ça me parait étrange.
en lisanty ça : https://www.mathworks.com/help/matlab/ref/fscanf.html;jsessionid=dc91fc6def905e2a008ebbd6e792
j'aurai plutôt mis data=fscanf(fic_data,'%16c%f', [2 Inf]);
pour le mélange chaine numérique, il y a :
A combination of numeric and character specifiers, A is numeric, of class double. MATLAB converts each character to its numeric equivalent. This conversion occurs even when the format explicitly skips all numeric values (for example, a format of '%*d %s').
Je pense qu'il faut faire deux passes de lecture.
0
sweet_girl_85 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai pas trouvé de solution!!
someone can help me please??
0