Bonjour tout le monde, voila je debute sur matlab , et je commence deja par un probleme.
Mon but est de prendre des données a partir d'un fichier csv et de les reecrire convenablement sous format HWS, mon fichier source est comme suit:
et ce que je veux faire c'est reecrire a partir de la ligneField #,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z,
1,-444.5,-7.9,402.4,-428.8,33.6,498.8,-462.6,-64.1,289.0,-376.9,26.6,615.4,-495.2,-86.9,227.5,-462.8,-107.0,122.6
2,...(le reste est de la meme forme)
...un nouveau fichier hws sous la forme :FIELD#,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z,
Donc voila ce que j'ai faitX Y Z X Y Z
-444.5 -7.9,402 -428.8 33.6 498.8 -462.6
...
...
et ce que j'obtient c un tableau avec la bonne entete ,par contre les valeurs suivantes sont a ala bonne place mais sous forme de carrés et de charabia.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Tete=fgetl(fid); %je prend la premiere ligne %(Field#,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z,X,Y,Z) Tete=strrep(Tete,'Field #','') %je supprime le premeir mot Tete=strrep(Tete,',','') % je remplace les virgules par des espaces longueur= (NbPoints*3); hauteur= ndata; Tab=zeros(longueur,hauteur); % je cree un tableau de 0 avec la bonne taille Tab=sscanf(Tete,'%c',[1,NbPoints*3]) %l'entete sur la premiere ligne du tab for 2=1:ndata %a partir de la 2eme ligne du tableau Valeurs=fgetl(fid); % je prend la premiere ligne de valeur Valeurs=strrep(Valeurs,',',' ') % je remplace les virgules par des espaces Tab(2,:)=sscanf(Valeurs,'%f',NbPoints*3)%rempli 2eme ligne par valeurs end
et a chaque ligne de lecture du fichier ca m'ecris : qu'il y'a eu probleme de conversion de non integer a characters, et moi ce que je veux c des float comme ci dessus par des caracteres dans le tableau (appart l'entete).
Aidez moi svp, j'ai besoin d'aide,merci d'avance.
Partager