我有一个带有点坐标的文本文件。
X1 Y1
X2 Y2
X3 Y3
...
Xn Yn
想法是建立此坐标的矩阵。
我编写了第一个版本,该版本读取X和Y值,将它们分别推入@Xs和@Yx数组,然后使用
创建矩阵$Points = PDL::Matrix->pdl([\@Xs, \@Ys]);
然后我得到一个2 x n矩阵:
[
[X1, X2, X3, .., Xn]
[Y1, Y2, Y3, .., Yn]
]
我现在想建立一个n x 2矩阵:
[
[X1, Y1]
[X2, Y2]
...
[Xn, Yn]
]
但是我不知道该怎么做,因为PDL :: Matrix似乎不存在推送功能
谢谢您的帮助,
编辑1:
这就是我想做的事情:
sub GetCoordinates {
my (@hl) = @_;
my $Point;
my $Points;
foreach my $v (@hl)
{
my %values = ($v =~ m/${regex_Coordinates}/g);
if ($values{X} && $values{Y})
{
$Point = mpdl [$values{X},$values{Y}];
push($Points, $Point); # DOES NOT EXIST
}
}
}
答案 0 :(得分:2)
您可以打电话
$m->transpose
在2×n矩阵上。
答案 1 :(得分:1)
choroba答案有效。 这是另一个可行的解决方案,非常适合我的需求
my @Points
file read loop {
push(@Points, vpdl [$PointX, $PointY]);
}
my $PointsMatrix = PDL::Matrix->pdl(\@Points); #nx2 Matrix
如果可以帮助!