我已经从OpenFoam制作了一个数据文件,它可以在时间上提取某个位置的速度。我想提取其中的两个速度,并取其平均时间。例如,我想从探测0中提取数字:0.0539764、0.0104665、0.00201741等等。并从probe 1中提取数字: 0.690374,0.711402,0.699848,依此类推。如何在Matlab中实现?
我以前做过类似的事情,但是探针只有1个数字(没有括号),现在它由3个数字组成,放在一个括号里,我不知道我应该做什么。
非常感谢您的帮助。
指向整个文件的链接:https://drive.google.com/file/d/0B9CEsYCSSZUSdjFzYXVFc1RhM0k/view?usp=sharing
发布于 2017-11-02 05:20:58
这将创建两个矩阵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
https://stackoverflow.com/questions/47054027
复制相似问题