MATLAB fread produce error! Invalid Size!

43 views (last 30 days)
I just run the following simple code to write a binary file and then read it in MATLAB.
It produces: Error using fread! Invalid Size!!
Any idea?!
% write a binary file
clear
clc
m=uint16(randi([0 5000],100,150, 50));
f=fopen('xtest','w');
fwrite(f,m,'uint16','ieee-le');
fclose(f);
% read the same binary file!
clear
clc
x0=fopen('xtest');
pj=fread(x0,[100, 150, 50],'uint16','ieee-le');%
fclose(x0);

Accepted Answer

Geoff Hayes
Geoff Hayes on 13 Mar 2019
Amir - according to fread dimensions of output vector, this vector/array can only be a two-element row vector wheras you are trying to read a three dimensional array. You probably need to read in the data as
pj=fread(x0,[100, 150*50],'uint16','ieee-le');%
and then use reshape to get the correctly size array
pj = reshape(pj, [100 150 50]);
I tried this for a smaller three dimensional array and it seemed to work fine.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!