我从OpenFoam制作了一个数据文件,可以及时提取特定位置的速度。我想提取其中两个速度并花时间平均。例如,我想从探针0中提取数字:0.0539764,0.0104665,0.00201741等。并从探针1中提取数字:0.690374,0.711402,0.699848等。如何在Matlab中完成?
之前我做过类似的事情,但是探针只包含1个数字(没有括号),现在它由3个括在括号中的数字组成,我不知道我应该做什么。
非常感谢帮助。
链接到整个文件:https://drive.google.com/file/d/0B9CEsYCSSZUSdjFzYXVFc1RhM0k/view?usp=sharing
答案 0 :(得分:1)
这将创建两个矩阵probe0
& probe1
。如果只是你想要的那样,你可以只索引每个列的第一列。
id = fopen('testprobe.txt','r');
t = textscan(id,'%s','delimiter',sprintf('\n'));
fclose(id);
out = regexp(t{1,1}(6:end-3), '(?<=\()[^)]*(?=\))', 'match', 'all');
probe0 = zeros(size(out,1),3);
probe1 = zeros(size(out,1),3);
for i = 1:size(out,1)
if ~isempty(out{i,:})
probe0(i,:) = (str2double(split(out{i,1}{1,1})))';
probe1(i,:) = (str2double(split(out{i,1}{1,2})))';
else
probe0(i,:) = [0,0,0];
probe1(i,:) = [0,0,0];
end
end