MATLAB fread produce error! Invalid Size!

8 次查看(过去 30 天)
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);

采纳的回答

Geoff Hayes
Geoff Hayes 2019-3-13
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Large Files and Big Data 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by