如果我有三个带整数的变量并且想找出哪个是最大的(不仅是最大整数),例如如果 a 是 3,b 是 4,c 是 5,我想知道 c 是最大的而不是给我一个 5。如何实现这一点,或者我应该使用
use List::Util
$d = max($a,$b,$c);
if($d == $a){}
elsif($d == $b){}
else{}
将值存储在数组中
遍历数组中的每个索引(提示:使用0..#$arrayName
构造)
保持,在一个单独的 2 个变量中,$current_max_value
和$current_max_index
当您找到一个大于 的值时$current_max_value
,将其存储在$current_max_value
并将当前索引存储在 $current_max_index
循环结束后,您找到了最大元素的索引 ( $current_max_index
)
通过使用单独的变量,你几乎可以做任何事情。假设您使用的是数组。
my @a = (3,4,5);
my $max_idx = 0;
for my $idx (1..$#a) {
$max_idx = $idx
if $a[$idx] > $a[$max_idx];
}
say $max_idx;
say $a[$max_idx];
使用PDL很容易,即使对于非常大的数据集也是如此。
#!/usr/bin/env perl
use strict;
use warnings;
use PDL;
my $pdl = pdl( 3,4,5 );
my (undef, $max, undef, $max_index) = $pdl->minmaximum;
print "Max: $max (at index $max_index)\n";