Bonjour,
Je souhaite lire un fichier.dat sans utiliser la fonction fread. Pour vous montrer mon problème je mets ci-dessous mon code. Dans ce code, je remplis un vecteur (D) avec des valeurs allant de 1 à 1000, que je sauve dans un fichier .dat. Par la suite, je lis ce fichier et je suis censée obtenir le même vecteur (E).
Je n'obtiens aucun message d'erreur et j'obtiens bien un vecteur E. En revanche, je n'obtiens pas un vecteur dont les valeurs vont de 1 à 1000 : certaines valeurs sont fausses, par exemple 145 devient 8216, 146 devient 8217, 147 devient 8220, etc. Pouvez-vous m'expliquer quelle est mon erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 format = 'uint16'; D = 1:1000; D = uint16(D); fid = fopen('test.dat','w'); fwrite(fid,(D),format); fclose(fid); fid=fopen('test.dat','r'); data = []; E = []; l = 0; while l ~= -1 l = fgets(fid); data = [data,l]; end for i = 1:2:size(data,2)-1 temp = uint16(data(i))+bitshift(uint16(data(i+1)),8); E = [E,temp]; end fclose(fid);
Partager