Я написал следующую функцию Perl
sub Outputing
{
my $featureMatrix = shift;
my $indexRow = shift;
my $fileName = "/projectworkspace/input.dat";
open(DATA, "> $fileName");
printf DATA "%d", $#$indexRow;
print DATA "\n";
my $numDataPoints = $#{$featureMatrix{$indexRow->[1]}};
printf DATA "%d", $numDataPoints;
print DATA "\n";
close DATA;
}
Я вызывал Outputing следующим образом:
Outputing($matrix, $Rows);e
$ matrix - это хеш массива, структура которого выглядит следующим образом
my $matrix
= { 200 => [ 0.023, 0.035, 0.026 ],
110 => [ 0.012, 0.020, 0,033],
};
Rows - это массив, хранящий отсортированный ключ матрицы, он получается следующим образом:
my @Rows = sort keys %matrix;
и матрица, и строки используются в качестве параметров, передаваемых в Outputing.
Распечатанный $ numDataPoints равен -1, что не правильно?Я не знаю, что может быть причиной, которая вызывает эту проблему?Если мы воспользуемся приведенным выше примером и предположим, что $ indexRow -> [1] = 110, тогда $ numDataPoints должен быть равен 2. Я не уверен, является ли $#{$featureMatrix{$indexRow->[1]}};
правильным способом получения размера этого массива.