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 に答える