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]

谢谢

4

2 回答 2

0

读取具有此类复杂结构的文本数据的最佳方法是使用fscanfMATLAB 中的函数。按照文档,您应该能够将数据读入一个数组,您可以使用该数组来计算您希望查找的统计信息。

另一种选择可能是逐行读取数据并使用正则表达式和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 回答