我想要一个能够读取文本文件并将每组数据存储到单独数组中的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行,直到“COLUMN 1 meas的结束”字符串等。)
如果有人可以提供帮助,我将非常感激。
答案 0 :(得分: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);
你可以调整它,找到更多的参数来控制你的输入,等等。但它应该可以工作,你身上有些汗水