1

我在 CPAN 上找到了一个名为 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;

但这不起作用,谁能给我一些方法来解决这个问题?

非常感谢!

4

2 回答 2

2

像这样推送它,$lol是一个包含数组引用的数组引用,并且您想再推送一个数组引用。

push(@{$lol}, $input);
于 2013-07-03T12:58:16.113 回答
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

于 2013-07-03T13:19:22.500 回答