0

我有一个文本文件,它在字符串周围有连续的整数值。该文件如下所示:

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
---------------------------
..........
..........

我想做的是将字符串之间的值存储到单独的数组中。也就是说,从 'For y=COLUMN 1 we have' 到 'END of COLUMN 1 meas' 将被存储到 ArrayA,从 'For y=COLUMN 2 we have' 到 'END of COLUMN 2 meas' 到 ArrayB 等.

之后,我需要找到 'x' 的所有值并将它们存储到一个名为 ArrayX 的字符串数组中。也就是说,这应该是这样的:

数组 X =

'x=100'    'x=200'    'x=501'

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

4

1 回答 1

0

我不确定您是否仍然需要此信息,但我遇到了同样的问题并为此找到了解决方案;

formatSpec = 'This is the set for x = %s\n---------------------------\n\nFor y=COLUMN %s we have\n%s\n%s\n%s\n%s\n%s\nEND of COLUMN 1 meas\n\nFor y=COLUMN 2 we have\n%s\n%s\n%s\n%s\n%s\nEND of COLUMN 2 meas\n\n';
fileID = fopen('new.txt','r');
A = fscanf(fileID,formatSpec,[4 Inf]);
A=A';

现在我有一个包含所有需要符号的大矩阵。我拿走了你的数据并得到了这个:

A =

1001
1232
3ff3
4a45
23d4
5323
1232
3c43
4545
2d24
5a23
2001
2b23
1232
d387
6f74
4c47
354d
a546
3c63
5a46
a349
530 

所以最后一步是将这个矩阵分成几份。例如对于您的ArrayX

ArrayX = A(1:11:end,1:3)
ArrayX =

100
200
530

我找不到一些优雅的方法来A按您想要的列数进行划分,并且只是使用循环以相同的方式完成。

于 2015-10-29T14:28:36.370 回答