Using user defined structure as precision to fread
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Above lists all the possible precision value. They are the MATLAB defined data types.
Say the binary file i am reading follows the following repetitive basic structure: floatValue, 4byte, float type doubleValue, 8byte, double type
I define a structure: myStructure = struct('floatValue', single(213.5883), 'doubleValue', 57605.061382);
Now i want to be able to read my binary file as follows: fid = fopen('myBinaryFile.ext'); A = fread(fid,1,*'myStructure'*,'s'); %Read one element data
Finally i can access the data as: A.floatValue or A(1).floatValue A.doubleValue or A(1).doubleValue
Concern is reading in the custom structure format. Above gives a invalid precision error. What way can we read our cutsom structures?
0 Kommentare
Antworten (2)
Walter Roberson
am 25 Aug. 2011
To read repetitive binary structures, memmapfile() is the appropriate routine.
2 Kommentare
gujax
am 4 Jun. 2023
I would like to follow up on this...
I am not sure if Matlab's fread is derived from C++'s fread?
C++'s fread or even istream can read an array of structured data (I just learned it from chatGPT). So why Matlab's fread is limited to a fixed type read?
Kaustubha Govind
am 25 Aug. 2011
There is no precision format to directly read into a structure. You need to read the file into arrays/matrices and then later compile them into a structure. Perhaps TEXTSCAN will be more appropriate for youm because it allows you to use a format string that is composed of several different types - the values are read into a cell array, which can store disparate types.
Siehe auch
Kategorien
Mehr zu Low-Level File I/O finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!