我在CPAN上找到了一个lib,名为Statistics-MVA-MultipleRegression-0.0.1,
编码示例如下:
use Statistics::MVA::MultipleRegression;
my $lol = [
[qw/745 36 66/],
[qw/895 37 68/],
[qw/442 47 64/],
[qw/440 32 53/],
[qw/1598 1 101/],
];
my ($Array_ref_of_coefficients, $R_sq) = linear_regression($lol);
但是数组$ lol,我想在RUNTIME推送一些行,而不是初始化它,
表示:
my $input = [$x, $y, $z];
push @tmpArray, $input;
my $lol = \@tmpArray;
但这不起作用,有人能给我一些方法来做到这一点吗?
非常感谢!
答案 0 :(得分:2)
像这样推,$lol
是一个包含数组引用的数组引用,你想再推送一个数组引用。
push(@{$lol}, $input);
答案 1 :(得分:0)
要在运行时填充数组,假设您正在从文件中读取输入,则代码将具有与下面的代码类似的结构。
my $lol = [];
open my $fh, "<", "input.dat" or die "$0: open: $!";
while (<$fh>) {
chomp;
my($x,$y,$z) = split;
push @$lol, [$x, $y, $z];
}
从那里,在linear_regression
中的矩阵上调用$lol
。