fwrite a matrix by chunks at a time

4 visualizaciones (últimos 30 días)
Pierre-Pascal
Pierre-Pascal el 24 de Ag. de 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.

Respuestas (1)

Jan
Jan el 25 de Ag. de 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)

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by