この種の質問では、通常、あまり複雑でない場合は自分で試してみることが最も簡単な方法です。あなたは Linux を使用していることを示しました。 、お使いのプラットフォームでテストを繰り返して、結果が一致するかどうかを確認してください。
Windows の場合 プラットフォーム、skip
値:
- 前に実装されている 書き込む最初の値
- スキップされたすべてのバイトが値
00
にあるようです (おそらく、OS がファイルの新しい値として割り当てるもの)
例:
このコード:
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,1,'short',10,'ieee-le')
fclose(fid)
次のファイルを生成します (16 進エディタで表示):
書き込む値が複数ある場合:
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
それでも 10x 00
を取得します 各 short
の前の値 あなたが積極的に書く値:
これは、新しく作成されたファイルの場合でした。既存のファイルに何が起こったのか見てみましょう:
%% 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)
与える:
以前と同じコードを使用して ( permission
w
に設定 ):
fid = fopen(my_filename,'w','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
はい、同じ結果が得られます。これで、指定した許可に関する MATLAB ドキュメントと一致するようになりました:
w
=>書き込み用に新しいファイルを開くか作成します。 既存のコンテンツを破棄
その許可を単に r+
に変更すると、 (読み書き用にファイルを開く。 ):
fid = fopen(my_filename,'r+','ieee-le','ISO-8859-1');
fwrite(fid,[1 2 3],'short',10,'ieee-le')
fclose(fid)
スキップされていない値のみを上書きします。