-1

我正在尝试在 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);
4

1 回答 1

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);
于 2016-02-11T18:42:44.797 回答