我想在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]
感谢
答案 0 :(得分:0)
使用这样的复杂结构读取文本数据的最佳方法是在MATLAB中使用fscanf
函数。按照文档,您应该能够将数据读入一个数组,您可以使用该数组计算您想要查找的统计数据。
另一种选择可能是逐行读取数据并使用带有regexpi
函数的正则表达式来提取所需的数据。
答案 1 :(得分: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个元素处理它们。这取决于你。