我有一组数字数据,我知道哪些数字对一起出现以及出现了多少次对我来说很重要。每组数据包含 1 到 20 之间的 7 个数字。有数百组数据。
本质上,通过解析我的每组数据,我想创建一个 20 x 20 的数组,我可以用它来记录成对的数字何时一起出现。
我做了很多搜索,但也许我使用了错误的关键词。我已经看过很多如何创建“二维数组”的示例——我知道 perl 实际上并没有这样做,它实际上是一个引用数组——并打印其中包含的值,但没有关于如何工作的内容按编号与一个特定的单元格并更改它。
下面是我的概念代码。注释行不起作用,但说明了我想要实现的目标。我对 perl 编码相当陌生,这对我来说似乎有助于理解我所看到的示例并将其翻译成我可以实际使用的东西。
my @datapairs;
while (<DATAFILE>)
{
chomp;
my @data = split(",",$_);
for ($prcount=0; $prcount <=5; $prcount++)
{
for ($othcount=($prcount+1); $othcount<=6; $othcount++)
{
@data[$prcount]=@data[$prcount]+1;
@data[$othcount]=@data[$othcount]+1;
@data[$prcount]=@data[$prcount]-1;
@data[$othcount]=@data[$othcount]-1;
print @data[$prcount]." ".@data[$othcount]."; ";
#@datapairs[@data[$prcount]][@data[$othcount]]++;
#@datapairs[@data[$othcount]][@data[$prcount]]++;
}
}
}
任何意见或建议将不胜感激。