我有两个来自原子探针的不同输入文件:
1)4列的POS文件,xyzi(我从二进制转换而来)
2) RRNG 文件,其中包含有关样本中原子及其相应“i”值的信息。
我能够从输入文件中提取所有必要的信息并将它们存储到数组中,但是当我尝试将信息保存到多个输出文件时出现问题。
这是我到目前为止所拥有的:
foreach $j (0..50) { #there are 51 peaks in this data set
$min = $range_min[$j];
$max = $range_max[$j];
open(POS,$ARGV[1]);
while(sysread(POS,$xyzi,16)) { #input is binary
@row=unpack("f>4",$xyzi);
if ($row[3]>$min && $row[3]<=$max) { #if "i" value within
#the given range
open(FILE,">file$min_$max.txt");
print FILE join(" ",@row[0,1,2,3]) . "\n";
}
}
}
我想要的是在 POS 文件中搜索和之间具有“i”值的所有数据点,$min
并将$max
这些点存储为输出文件中的 x、y、z 和 i 列,但我想对所有 51 个范围执行此操作“i”值。
此代码适用于没有 foreach 循环的一个峰值,但我不想将其硬编码为 51 个不同的范围。
我希望这很清楚。谢谢。