1

我有一个格式如下的文本文件:

FileVersion: 1


TimePoint:   1

NrOfROIs:    3

ROI:         1
NrOfVoxels:  7
 43  22   5    766
 45  22   5    837
 42  23   5    961
 43  23   5    878
 44  23   5    760
 43  24   5    889
 43  25   5    929
AvgValue: 860.000000

ROI:         2
NrOfVoxels:  7
 20  21   5    668
 22  21   5    727
 23  21   5    748
 24  21   5    727
 23  22   5    810
 23  23   5    868
 24  23   5    764
AvgValue: 759.000000

我必须提取与每个 ROI 相关联的体素坐标(仅前三列),并将它们分别保存在不同的 .mat 文件中。例如,在提取 ROI:1 的坐标后,我应该在 .mat 文件中有坐标(前三列),如下所示(对于 ROI 2 在不同的 .mat 文件中):

 43 22 5
 45 22 5
 42 23 5
 43 23 5
 44 23 5
 43 24 5
 43 25 5

任何人都可以帮助我使用 Matlab 实现它吗?我只能打开文件并逐行阅读。

这是 Matlab 代码,用于读取仅与 ROI 1 关联的坐标:

filename = 'test.ert';
fid = fopen(filename);

r_lines = 9;
for k = 1:r_lines
    fgetl(fid);
end

elines = 7;
for i = 1:elines
    tline = fgetl(fid);
    tline = tline(:, 1:end-7);
disp(tline)
end

fclose(fid)

而且,这是输出:

43  22   5
45  22   5
45  22   5
45  22   5
45  22   5
45  22   5
45  22   5

如何将输出保存到 .mat 文件?

4

1 回答 1

0

查看textreadMatlab 文档中的函数。可以以格式化的方式读取文本文件,例如,如果您将格式设置为'%u %u %u',则将读取您需要的值。如果需要,您甚至可以将它们存储在向量中。

于 2013-07-31T12:47:20.390 回答