Perl PDL: координаты точек и построение матрицы - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть текстовый файл с координатами точек.

X1 Y1
X2 Y2
X3 Y3
...
Xn Yn

Идея состоит в том, чтобы построить матрицу из этих координат.

Я кодировал первую версию, которая читает значения X и Yвставьте их в массивы @Xs и @Yx соответственно, а затем создайте матрицу, используя

$Points = PDL::Matrix->pdl([\@Xs, \@Ys]);

. Затем я получу матрицу 2 xn:

[
 [X1, X2, X3, .., Xn]
 [Y1, Y2, Y3, .., Yn]
]

, которую я хотел бы построитьМатрица wors 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
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

ответ чороба работает.Вот еще одно решение, которое тоже работает и которое идеально подходит моим потребностям

my @Points

file read loop {
 push(@Points, vpdl [$PointX, $PointY]);
}

my $PointsMatrix = PDL::Matrix->pdl(\@Points); #nx2 Matrix

Если это может помочь!

0 голосов
/ 19 февраля 2019

Вы можете позвонить

$m->transpose

по матрице 2 × n.

...