using fread(fid,[n,inf],prec)
Ältere Kommentare anzeigen
Not necessarily a question...
when using fread(fid,[n,Inf],prec)
if n is defined as a small integer (int8, uint16), then resulting row vector [n, Inf] is restricted to the size of n.
if n = uint16 then the row vector [n, Inf] returns [n, 65535]. When reading a large file, the size of n restricts the number of records that can be read. This took me quite a while to unravel. I think the documentation needs to be more specific to show this limitation. For me, I just made n into a 32 bit integer or larger.
Antworten (1)
Walter Roberson
am 3 Mai 2019
0 Stimmen
This is not an fread() issue. This is entirely due to the behaviour of the [] operator when you combine unlike data types, which is documented at https://www.mathworks.com/help/matlab/matlab_prog/valid-combinations-of-unlike-classes.html . Generally speaking, the most restrictive data type is the one that results.
You can see it happening even just with [uint8(123), -5] which gives a uint8 vector of [123, 0] where the -5 has been converted to uint8 and saturated to 0. You can see it with [uint8(123), inf] which gives a uint8 vector of [123, 255] where the inf has been converted to uint8 and saturated to 255.
The conversion of data type due to the [] operator happens before fread receives the input. As far as fread() can tell, the input was always uint8([123 255])
2 Kommentare
Darren Reed
am 6 Mai 2019
Walter Roberson
am 6 Mai 2019
At the bottom of the fread documentation, you can click on the stars in the "How useful was this information" survey, and if you give it a low rank then it will ask you how it could be improved, which will send a note to the documentation team. Or if you have software support, you can open a case directly suggesting a documentation update.
This is not an fread issue, so I doubt they will change the documentation, but I am not them, so they might surprise me.
Kategorien
Mehr zu Functions finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!