0

我想要一个能够读取文本文件并将每组数据存储到单独数组中的 m 文件。一组数据是出现在特定字符串之间的一系列十六进制值。

文本文件的格式类似于以下内容:

This is the set for x = 100
---------------------------

For y=COLUMN 1 we have
1232
3ff3
4a45
23d4
5323
...
...
END of COLUMN 1 meas

For y=COLUMN 2 we have
1232
3c43
4545
2d24
5a23
...
...
END of COLUMN 2 meas

This is the set for x = 200
---------------------------

For y=COLUMN 1 we have
2b23
1232
d387
6f74
4c47
...
...
END of COLUMN 1 meas

For y=COLUMN 2 we have
354d
a546
3c63
5a46
a349
...
...
END of COLUMN 2 meas

This is the set for x = 530
---------------------------
..........
..........

如您所见,对于 X 的每个新值,我都会为“y=COLUMN 1”和“y=COLUMN 2”获得一组单独的数据。我想要的是将这些数据集(两个'y')存储到单独的(1,2)数组中,每个 X 值一个。理想情况下,这将如下所示:

Array_for_x_100(1,1)=[data for "y=COLUMN 1"]
Array_for_x_100(1,2)=[data for "y=COLUMN 2"]

Array_for_x_200(1,1)=[data for "y=COLUMN 1"]
Array_for_x_200(1,2)=[data for "y=COLUMN 2"]

..........
..........

我认为是使用 textscan 来做到这一点,但我对如何使用它有点困惑。我必须以某种方式存储出现在特定字符串之间的值范围(例如,存储值出现在“这是 x = 100 的集合”字符串之后的 3 行,直到“第 1 列结束测量”字符串等)。

如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

0

尝试调整 TextScan 的参数

fid = fopen([opath filename]);
K = textscan(fid,'%f %f %f %f ',...    
    'CommentStyle','For',...
    'CommentStyle','This',...
    'CommentStyle','End',...
    'Delimiter',',\t',...
    'MultipleDelimsAsOne',1);
fclose(fid);

K = cell2mat(K);

你可以调整它,找到更多参数来控制你的输入,等等。但它应该可以工作,你身边会有一些汗水

于 2011-11-18T15:03:12.820 回答