how to save a modified 3D raw file?

573 Views Asked by At

I am trying to read a raw file in Matlab (float64, which is a deformation vector field, i.e. result of image registration), with 3 dimensions 304 x 224 x 52.

Then I want to change all the values within this file by dividing them by 10.

After that I want to save the modified file again as a raw file with the same specifications. I wrote a code but I am not able to save the file. I want to save it again in raw format. I think I might be missing something. I am a beginner in Matlab so I would appreciate your help and patience. Thank you.

fid = fopen('I:\PatientData\patient1\out_2_to_1_us\deformationField_test.raw') dvf =     fread(fid);

length(div)
div = (0.1) * ones(42491904,1); dvf_cm = dvf.* div;

count = fwrite(fid,dvf_cm,'float64'); 
fclose(fid);
1

There are 1 best solutions below

4
On BEST ANSWER

You need to open the file in read/write mode and rewind it after reading:

fid   = fopen('I:\PatientData\patient1\out_2_to_1_us\deformationField_test.raw', 'r+');
data  = fread(fid, Inf, 'float64')/10;
        frewind(fid);
count = fwrite(fid, data, 'float64'); 
        fclose(fid);