Dans ce genre de question, le moyen le plus simple de le savoir est généralement de l'essayer vous-même si ce n'est pas trop complexe. Maintenant, vous avez indiqué que vous utilisez Linux , vous pouvez peut-être répéter le test sur votre plateforme et voir si les résultats correspondent.
Pour Windows plate-forme, le skip
valeur :
- est implémenté avant la première valeur à écrire
- semble laisser chaque octet ignoré à la valeur
00
(probablement ce que le système d'exploitation attribue comme nouvelle valeur pour un fichier)
Exemples :
Ce code :
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,1,'short',10,'ieee-le')
fclose(fid)
Produit le fichier suivant (vu dans un éditeur hexadécimal) :
Et si vous avez plus d'une valeur à écrire :
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
Vous obtenez toujours 10x 00
valeurs avant chaque short
valeur que vous écrivez activement :
C'était le cas pour un fichier nouvellement créé. Voyons ce qui est arrivé à un fichier existant :
%% Let's create a file full of `FF`
FFarray = uint8(ones(36,1)*255) ;
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,FFarray,'uint8')
fclose(fid)
qui donne:
Maintenant en utilisant le même code qu'avant (avec le permission
défini sur w
):
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
Oui, nous obtenons toujours la même chose. Maintenant, cela est cohérent avec la documentation MATLAB pour l'autorisation que vous avez indiquée :
w
=> Ouvrir ou créer un nouveau fichier pour l'écriture. Supprimer le contenu existant , le cas échéant.
Si vous modifiez simplement cette autorisation en r+
(Ouvrir le fichier pour lecture et écriture. ):
fid = fopen(my_filename,'r+','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
Vous n'écrasez que les valeurs non ignorées :