How to convert binary file to csv file

53 次查看(过去 30 天)
Dear colleagues, I have binary file. But I do not know how to read and convert to .CSV file. Please help. I attached it for reference. Thanks. https://drive.google.com/open?id=0Bx6bUTVOinyySl9nUnN2TGxxc2c
  2 个评论
KSSV
KSSV 2017-3-3
You must know the format of binary file to read. Do you know the format? Doc fread
Xuan Hiep Dinh
Xuan Hiep Dinh 2017-3-5
The format of binary file is : (x1.re(short))(x1.im(short))(x2.re(short))(x2.im(short))...

请先登录,再进行评论。

采纳的回答

Jan
Jan 2017-3-3
There is an infinite number of binary formats. The file extension "bin1" does not reveal, how the data are stored internally. It could be a vector of double values, or perhaps it starts with the dimensions as UINT64 vector and then the values are stored as single. This cannot be predicted and an examination of the data is not reliable also. You have to ask the person, who has written the file, or read the corresponding docs.
If you know the structure of the file, fread allowes to read the parts. Finally csvwrite creates the wanted file.

更多回答(1 个)

Walter Roberson
Walter Roberson 2017-3-3
编辑:Walter Roberson 2017-3-3
fid = fopen('test2.bin1');
data = fread(fid, '*uint8');
data = reshape(data, 32, []);
imshow(data);
Or possibly
data = reshape(data, 1, []);
imshow(data);
  4 个评论
Walter Roberson
Walter Roberson 2017-3-5
fid = fopen('test2.bin1');
temp = fread(fid, [2 inf], 'uint16=>double');
fclose(fid);
data = complex(temp(1,:), temp(2,:));
Note: all of the complex components are 0.
You appear to have pulses of width 63 or (more often) 64, that are placed 125 or 126 apart. So this is basically a square wave with a duty cycle just slightly greater than 1/2

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by