我正在尝试在Matlab中读取一个原始文件(float64,这是一个变形矢量场,即图像配准的结果),其中3维为304 x 224 x 52。
然后我想通过将它们除以10来更改此文件中的所有值。
之后我想再次将修改后的文件保存为具有相同规格的原始文件。我写了一段代码但是我无法保存文件。我想以原始格式再次保存它。我想我可能会遗漏一些东西。我是Matlab的初学者,所以我很感激你的帮助和耐心。谢谢。
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);
答案 0 :(得分:0)
您需要以读/写模式打开文件并在阅读后重绕它:
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);