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).

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);
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 ?