How to convert binary file to csv file
54 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Xuan Hiep Dinh
el 3 de Mzo. de 2017
Comentada: Xuan Hiep Dinh
el 12 de Mzo. de 2017
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 comentarios
KSSV
el 3 de Mzo. de 2017
You must know the format of binary file to read. Do you know the format? Doc fread
Respuesta aceptada
Jan
el 3 de Mzo. de 2017
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.
Más respuestas (1)
Walter Roberson
el 3 de Mzo. de 2017
Editada: Walter Roberson
el 3 de Mzo. de 2017
fid = fopen('test2.bin1');
data = fread(fid, '*uint8');
data = reshape(data, 32, []);
imshow(data);
Or possibly
data = reshape(data, 1, []);
imshow(data);
4 comentarios
Walter Roberson
el 5 de Mzo. de 2017
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
Ver también
Categorías
Más información sobre Text Files en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!