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.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 5 Feb. 2012

0 Stimmen

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

3 Kommentare

Olga
Olga am 6 Feb. 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 am 6 Feb. 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 am 7 Feb. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Gefragt:

am 5 Feb. 2012

Bearbeitet:

Jan
am 2 Okt. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by