Using user defined structure as precision to fread

조회 수: 6 (최근 30일)
Akash
Akash 2011년 8월 23일
댓글: gujax 2023년 6월 4일
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?

답변 (2개)

Walter Roberson
Walter Roberson 2011년 8월 25일
To read repetitive binary structures, memmapfile() is the appropriate routine.
  댓글 수: 2
Akash
Akash 2012년 3월 5일
Thanks that worked! :)
gujax
gujax 2023년 6월 4일
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
Kaustubha Govind 2011년 8월 25일
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.
  댓글 수: 1
Akash
Akash 2012년 3월 5일
Thanks for your reply. Memmapfile solved my problem.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Low-Level File I/O에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by