Perl PDL:如何更改矩阵中的值
Perl PDL : How to change an value in a matrix
我想更改 PDL 矩阵中的值:
例如:
my $matrix= pdl [[1,2,3],[4,5,6]];
$matrix->at(0,0)=0;
但这不起作用...
感谢您的帮助
这是一种使用 range
and the .= assignment operator 的方法:
my $matrix= pdl [[1,2,3],[4,5,6]];
print $matrix;
$matrix->range([0,0]) .= 0;
print $matrix;
输出:
[
[1 2 3]
[4 5 6]
]
[
[0 2 3]
[4 5 6]
]
Here 是最近对 PDL 的快速介绍。
问题最直白的回答是PDL::Core::set
:
pdl> p $x = sequence(3,3)
[
[0 1 2]
[3 4 5]
[6 7 8]
]
pdl> $x->set(1,1,19)
pdl> p $x
[
[ 0 1 2]
[ 3 19 5]
[ 6 7 8]
]
但是,Håkon 的出色回答确实暗示能够一次更改多个(或多个)值,这通常是“PDL 方式”。请参阅 https://metacpan.org/pod/PDL::Primitive#whereND 以获取灵感。
我想更改 PDL 矩阵中的值:
例如:
my $matrix= pdl [[1,2,3],[4,5,6]];
$matrix->at(0,0)=0;
但这不起作用...
感谢您的帮助
这是一种使用 range
and the .= assignment operator 的方法:
my $matrix= pdl [[1,2,3],[4,5,6]];
print $matrix;
$matrix->range([0,0]) .= 0;
print $matrix;
输出:
[
[1 2 3]
[4 5 6]
]
[
[0 2 3]
[4 5 6]
]
Here 是最近对 PDL 的快速介绍。
问题最直白的回答是PDL::Core::set
:
pdl> p $x = sequence(3,3)
[
[0 1 2]
[3 4 5]
[6 7 8]
]
pdl> $x->set(1,1,19)
pdl> p $x
[
[ 0 1 2]
[ 3 19 5]
[ 6 7 8]
]
但是,Håkon 的出色回答确实暗示能够一次更改多个(或多个)值,这通常是“PDL 方式”。请参阅 https://metacpan.org/pod/PDL::Primitive#whereND 以获取灵感。