0

データと単語の両方を含むMATLABの.txtファイルを読みたい.txtファイルの内容は次のとおりです

(title "Particle Tracks")
(labels "Time" "Particle Velocity Magnitude")

((xy/key/label "particle-1")
1e-06   45.4551
2e-06   40.3895
2e-06   44.0437
3e-06   34.9606
4e-06   33.1695
4e-06   35.3499
5e-06   29.9504
6e-06   28.0226
6e-06   35.1794
7e-06   41.2255
....

((xy/key/label "particle-2")
1e-06   43.7789
1e-06   45.0513
2e-06   44.1221
3e-06   37.8328
3e-06   43.6451
4e-06   29.1166
5e-06   41.3342
6e-06   28.7241
6e-06   36.3779
7e-06   31.9631
8e-06   29.2826
9e-06   24.7755
9e-06   24.9516
1e-05   22.7528
1e-05   26.6802
1.1e-05 34.4668

ファイルは100個の粒子に拡張され、1番目の列は時間、2番目の列は速度です。列1のさまざまな時間におけるすべての粒子の平均速度を求めるつもりなので、基本的に、対応する列2の値を追加し、それらを100で除算します。 100個の粒子すべてで同じ列1の値に対して表示します![ここに画像の説明を入力してください] [2]

ありがとう

4

2 に答える 2

0

このような複雑な構造のテキストデータを読み取る最良の方法はfscanf、MATLABで関数を使用することです。ドキュメントに従ってください。検索する統計を計算するために使用できる配列にデータを読み取ることができるはずです。

もう1つのオプションは、データを1行ずつ読み取り、regexpi関数で正規表現を使用して必要なデータを抽出することです。

于 2012-04-25T19:37:53.930 に答える
0

入力ファイルがinput.txtであるとすると、次のように使用textscanします。

fid = fopen('input.txt');
C = textscan(fid, '%n %n', 'commentStyle', '(');
a = C{1};
b = C{2};,

%# do your computations on vectors a and b

%# for example: 
ma = mean(a)
mb = mean(b)

ベクトルは自由に使用できます。たとえば、100 x 100 の要素を処理できます。それはあなた次第です。

于 2012-04-26T22:56:00.210 に答える