fwrite a matrix by chunks at a time

4 visualizzazioni (ultimi 30 giorni)
Pierre-Pascal
Pierre-Pascal il 24 Ago 2011
hi I am doing some fancier file writing and need to write in a file a matrix, say A=[1:10000]and save it by chunks of 512 datapoints in int16 format. I also need to skip 20bytes in between I am trying fwrite(fid,A,'512*int16',20) but I keep getting a bunch of zeros. ultimately I will use, to read it, a command like fread(fid,512*N,'512*int16=>int16',20); Am I in the correct direction? there is a very small help file for fread.

Risposte (1)

Jan
Jan il 25 Ago 2011
After some tests I have the impression that:
fwrite(fid, A, '512*int16', 20)
inserts the 20 bytes for skipping before the blocks, while:
fread(fid, 512*N, '512*int16=>int16', 20)
skips the 20 bytes behind the block. Where do you want the skipping bytes? If before the data blocks is wanted, modify the reading like this:
fread(fid, 20, 'int8'); % Skip manually at first
fread(fid, 512*N, '512*int16=>int16', 20)

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by