problem with loading .dat file

I've got a .dat file which I load into my program by such a formula:
fread(FID, 4, 'uint8');
Data = fread(FID, [1, 4092], 'uint8');
Calib = Data(4:4:end); % Pierwsza czesc pliku - kalibracja
fread(FID, 4, 'uint8');
Data = fread(FID, [4096, 204600], 'uint8');
x1 = Data(1:2:204600);
The problem is that after 4092 bytes there're 16 bytes that I need to skip and continue loading the following data. A this happens every 4092 bytes. Is there any way to solve this problem? Will be grateful for any help.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 5 de Feb. de 2012

0 votos

Use the precision and skip parameters http://www.mathworks.com/help/techdoc/ref/fread.html
'4092*uint8', 16

3 comentarios

Olga
Olga el 6 de Feb. de 2012
Thanks a lot. But there's one problem - this cuts only the first 16 bytes after 4092 good ones, but it doesn't cut the rest in the following sequences. Why is that?
Walter Roberson
Walter Roberson el 6 de Feb. de 2012
Hmmmm, that is not what "help fread" says should happen. The help information says specifically that the skip will be re-used. Which MATLAB version are you using? I am looking at the information for 2008b and for 2011b.
Side issue: do you perhaps want to be using 'uint8=>uint8' ? Your current code reads uint8 and converts them to double. To keep as uint8 with the skip,
'4092*uint8=>uint8', 16
Olga
Olga el 7 de Feb. de 2012
Exactly help says that it'll skip the value SKIP after each PRECISION value. That's why I don't know why it doesn't.
I'm usin version 2010a version of MATLAB.
Thanks for the last suggestion, I've missed it.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 5 de Feb. de 2012

Editada:

Jan
el 2 de Oct. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by