how to convert to binart file

2 views (last 30 days)
sandy
sandy on 8 Apr 2014
Commented: Walter Roberson on 9 Apr 2014
given below is the values which i need to process.for that i need to save this as binary format. also i need to save as .tim format only..or any suggestions ..plz
7.543390 7.440341 35.278316 22.194822 978.857422 3.522650
7.543390 7.488090 35.278316 22.210081 978.857422 3.523718
7.527206 7.488090 35.293575 22.194822 978.857422 3.521430
7.527206 7.488090 35.293575 22.210081 978.857422 3.522803
7.527206 7.488090 35.293575 22.194822 978.857422 3.524024
7.527206 7.488090 35.293575 22.194822 978.875732 3.520972
7.527206 7.488090 35.293575 22.194822 978.857422 3.522955
7.527206 7.509514 35.293575 22.194822 978.875732 3.523566
7.532593 7.509514 35.293575 22.194822 978.875732 3.521430
7.532593 7.509514 35.293575 22.179564 978.875732 3.523261
7.532593 7.509514 35.293575 22.194822 978.875732 3.523871
output will be like this..
>Wi@hFy@éoBVåAÇpD–v@ @•z@@•z@@•z@@•z@@•z@@•z@

Answers (1)

Walter Roberson
Walter Roberson on 8 Apr 2014
fid = fopen('YourFileNameHere', 'w');
fwrite(fid, YourMatrix, 'float32');
fclose(fid);
Note: you might need to pass transpose(YourMatrix)
I did not research .tim format; the file output format might be more complex than this.
dec2bin is not appropriate for this task.
  2 Comments
sandy
sandy on 9 Apr 2014
Edited: sandy on 9 Apr 2014
thanks..but if i use float32..it showing error....below is my code...
path_02='C:\Users\Desktop\sample';
path_01='C:\Users\Desktop\sample\output';
a = dir(fullfile(path_02, '*.tim'));
for i = 1:numel(a)
filename_in = fullfile(path_02, a(i).name);
fid = fopen(filename_in,'r');
ascii = fread(fid, [42,21000], 'float32');
data_values=ascii';
out = fopen(fullfile(path_01, a(i).name),'w');
fwrite(out, data_values,'float32');
fclose(out);
fclose(fid);
end
this is error im getting...
Error using fwrite
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in my_sample (line 14)
fwrite(out, data_values);
Walter Roberson
Walter Roberson on 9 Apr 2014
your fopen() is failing when you want to fwrite(). You should be checking the output file identifier ("out" in your code), and you should consider printing out the reason code
[out, msg] = foen(fullfile(path_01, a(i).name),'w');
if out < 0
fprintf(2, 'Open to write failed because: %s\n', msg);
else
....
end

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!