У меня есть 150 32 на 48 матриц значений, которые представляют интенсивность цвета из изображений дрожжевых пластинок. Я хотел бы взять, например, координаты (x, y) для каждой пластины, получить среднее значение, а затем создать новую пластину из этого. Прямо сейчас у меня есть все значения в файле в следующем формате:
EA_D01_5-8 30,22 -0,397914165526517
EA_D01_5-8 30,23 -0,326759277147352
EA_D01_5-8 31,22 -0,172657520010773
EA_D01_5-8 31,23 -0,103405885199075
Первая группа представляет имя пластины, вторая - координаты x, y, а третья - значение z-показателя.
while($line = <DATAFILE>){
chomp($line);
my @temp = split(/\t/, $line);
$long_name = $temp[0];
$coords = $temp[1];
$zscores = $temp[2];
$stats{$long_name}{$coords}[0] = $zscores;
}
Я создал хеш $ stats {$ long_name} {$ordins} [0] для хранения значений
Затем я создал цикл, чтобы попытаться получить доступ к этим значениям:
foreach $long_name ( sort keys %stats ) {
foreach $coords( keys %{$stats{$long_name}} ){
my $zscoreV = $stats{$long_name}{$coords}[0];
$totalV = $totalV + $zscoreV;
}
}
Однако я делаю что-то не так, потому что, когда я пытаюсь разделить сумму на 150, являющуюся числом уникальных значений в $ long_name, у меня не останется 1536 значений. Кто-нибудь знает, что я делаю не так? Спасибо