Text 在文本文件中出现特定字符串后将数据存储到单独的数组中

Text 在文本文件中出现特定字符串后将数据存储到单独的数组中,text,textscan,matlab,Text,Textscan,Matlab,我想有一个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 2d2

我想有一个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来做这件事,但对于如何使用它,我有点困惑。 我必须以某种方式存储特定字符串之间出现的值的范围,例如存储出现的值 在此之后的3行是x=100字符串的设置,直到第1列末尾表示字符串,以此类推


如果有人能帮忙,我将非常感激。

尝试调整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);
你可以调整它,找到更多的参数来控制你的输入,等等。但是它应该可以工作,你的身体会出汗