Используйте PDL :: Matrix и rcols
Используйте rcols
для чтения в файлах данных столбцов, разделенных пробелами. Например, используя текущий выпуск PDL-2.4.10 через оболочку pdl2
, мы демонстрируем:
pdl> #cat an4.cols; # this is the [n,4] data file
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
pdl> #cat a4n.cols; # this is the [4,n] data file
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
pdl> $a = rcols 'a4n.cols', []; # read col data into 2-D piddle
Reading data into piddles of type: [ Double ]
Read in 40 elements.
pdl> $b = rcols 'an4.cols', []; # read col data into 2-D piddle
Reading data into piddles of type: [ Double ]
Read in 36 elements.
pdl> $am = PDL::Matrix->pdl($a); # covert to usual matrix dim order
pdl> $bm = PDL::Matrix->pdl($b); # covert to usual matrix dim order
pdl> p $cm = $am x $bm; # multiply the two matrices
[
[10 10 10 10 10 10 10 10 10]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0]
]
pdl> help vars # note the dim order change between $a and $am, etc
PDL variables in package main::
Name Type Dimension Flow State Mem
----------------------------------------------------------------
$a Double D [4,10] VC 0.00KB
$am Double D [10,4] VC 0.00KB PDL::Matrix
$b Double D [9,4] VC 0.00KB
$bm Double D [4,9] VC 0.00KB PDL::Matrix
$cm Double D [10,9] P 0.70KB PDL::Matrix
$Pi Double D [] P 0.01KB
Примечание: единственная разница между $am
и $a
состоит в том, что для объектов PDL::Matrix
соглашение о порядке размеров для двумерной матрицы обращено по сравнению со стандартным соглашением PDL. Для получения дополнительной информации обо всех вещах PDL перейдите на веб-сайт PDL , где вы найдете ссылки на документацию, архивы списков рассылки и многое другое ...