PDL::MATLABp - ອອນລາຍໃນຄລາວ

ນີ້ແມ່ນຄໍາສັ່ງ PDL::MATLABp ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


PDL::MATLAB - ຄູ່ມືສໍາລັບຜູ້ໃຊ້ MATLAB.

ພາກສະເຫນີ


ຖ້າທ່ານເປັນຜູ້ໃຊ້ MATLAB, ຫນ້ານີ້ແມ່ນສໍາລັບທ່ານ. ມັນອະທິບາຍຄວາມແຕກຕ່າງທີ່ ສຳ ຄັນລະຫວ່າງ
MATLAB ແລະ PDL ເພື່ອຊ່ວຍໃຫ້ທ່ານກ້າວໄປໄວເທົ່າທີ່ຈະໄວໄດ້.

ນີ້ ເອກະສານ is ບໍ່ a tutorial. ເພື່ອເຮັດສິ່ງນີ້, ໄປທີ່ PDL::QuickStart. ເອກະສານນີ້
ເສີມ ຄູ່ມືເລີ່ມຕົ້ນດ່ວນ, ຍ້ອນວ່າມັນຊີ້ໃຫ້ເຫັນຄວາມແຕກຕ່າງທີ່ສໍາຄັນລະຫວ່າງ MATLAB ແລະ
PDL.

Perl


ຄວາມແຕກຕ່າງທີ່ ສຳ ຄັນລະຫວ່າງ MATLAB ແລະ PDL ແມ່ນ Perl.

Perl ເປັນພາສາການຂຽນໂປລແກລມຈຸດປະສົງທົ່ວໄປທີ່ມີຫລາຍພັນໂມດູນທີ່ມີຢູ່ຢ່າງເສລີ
ຢູ່ໃນເວັບ. PDL ແມ່ນສ່ວນຂະຫຍາຍຂອງ Perl. ນີ້ເຮັດໃຫ້ໂຄງການ PDL ເຂົ້າເຖິງຄຸນສົມບັດເພີ່ມເຕີມ
ຫຼາຍກ່ວາເຄື່ອງມືຕົວເລກສ່ວນໃຫຍ່ສາມາດຝັນໄດ້. ໃນເວລາດຽວກັນ, ຄວາມແຕກຕ່າງຂອງ syntax ຫຼາຍທີ່ສຸດລະຫວ່າງ
MATLAB ແລະ PDL ແມ່ນຜົນມາຈາກພື້ນຖານ Perl ຂອງມັນ.

ທ່ານ do ບໍ່ ມີ to ຮຽນຮູ້ ຫຼາຍ Perl to be ປະສິດທິພາບ ກັບ PDL. ແຕ່ຖ້າທ່ານຕ້ອງການຮຽນຮູ້
Perl, ມີເອກະສານທີ່ດີເລີດທີ່ມີຢູ່ໃນອອນໄລນ໌ (http://perldoc.perl.org>) ຫຼື
ຜ່ານຄໍາສັ່ງ "perldoc perl". ນອກນັ້ນຍັງມີປະຕູຂອງຜູ້ເລີ່ມຕົ້ນ
(<http://perl-begin.org>).

ຄັງເກັບໂມດູນຂອງ Perl ຖືກເອີ້ນວ່າ CPAN (http://www.cpan.org>) ແລະມັນມີ array ທີ່ກວ້າງຂວາງ
ໂມດູນ. ດໍາເນີນການ "perldoc cpan" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.

ເທກໂນໂລຍີ: PIDDLE


MATLAB ໂດຍປົກກະຕິຫມາຍເຖິງ vectors, matrices, ແລະ arrays. Perl ມີ arrays ແລ້ວ, ແລະ
ຄໍາສັບ "vector" ແລະ "matrix" ໂດຍປົກກະຕິຫມາຍເຖິງການລວບລວມຫນຶ່ງແລະສອງມິຕິລະດັບຂອງ
ຂໍ້ມູນ. ບໍ່ມີຄໍາທີ່ດີທີ່ຈະອະທິບາຍວັດຖຸຂອງພວກເຂົາ, ນັກພັດທະນາ PDL ໄດ້ສ້າງຄໍາສັບ
"ປິວ"ເພື່ອໃຫ້ຊື່ກັບປະເພດຂໍ້ມູນຂອງເຂົາເຈົ້າ.

A ປິວ ປະກອບດ້ວຍຊຸດຂອງຕົວເລກທີ່ຈັດເປັນຊຸດຂໍ້ມູນ N-dimensional. ປ້າ
ສະຫນອງການເກັບຮັກສາທີ່ມີປະສິດທິພາບແລະການຄິດໄລ່ໄວຂອງ matrices N-dimensional ຂະຫນາດໃຫຍ່. ພວກ​ເຂົາ​ແມ່ນ
ເໝາະສຳລັບວຽກຕົວເລກ.

ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ "ປ້າ vs Perl ອາເລ" ຕໍ່ມາໃນເອກະສານນີ້.

ຄໍາສັ່ງ WINDOW ແລະ ທີ່ນີ້


ບໍ່ເຫມືອນກັບ MATLAB, PDL ບໍ່ໄດ້ມາພ້ອມກັບ IDE ທີ່ອຸທິດຕົນ. ຢ່າງໃດກໍຕາມ, ມັນມາພ້ອມກັບ
ແກະແບບໂຕ້ຕອບແລະທ່ານສາມາດໃຊ້ Perl IDE ເພື່ອພັດທະນາໂປແກຼມ PDL.

PDL ແບບໂຕ້ຕອບ ຫອຍ
ເພື່ອເລີ່ມຕົ້ນການໂຕ້ຕອບ shell, ເປີດ terminal ແລະດໍາເນີນການ "perldl" ຫຼື "pdl2". ດັ່ງໃນ MATLAB,
ແກະແບບໂຕ້ຕອບແມ່ນວິທີທີ່ດີທີ່ສຸດທີ່ຈະຮຽນຮູ້ພາສາ. ເພື່ອອອກຈາກແກະ, ພິມ
"ອອກ", ຄືກັນກັບ MATLAB.

ລາຍລັກອັກສອນ PDL ໂຄງການ
IDE ທີ່ນິຍົມອັນໜຶ່ງສຳລັບ Perl ເອີ້ນວ່າ Padre (http://padre.perlide.org>). ມັນແມ່ນຂ້າມ
ເວ​ທີ​ແລະ​ງ່າຍ​ທີ່​ຈະ​ນໍາ​ໃຊ້​.

ທຸກຄັ້ງທີ່ທ່ານຂຽນໂປຣແກຣມ PDL ແບບຢືນຢູ່ຄົນດຽວ (ເຊັ່ນ: ຢູ່ນອກ "perldl" ຫຼື "pdl2" shell)
ທ່ານຕ້ອງເລີ່ມຕົ້ນໂຄງການດ້ວຍ "ໃຊ້ PDL;". ຄໍາສັ່ງນີ້ນໍາເຂົ້າໂມດູນ PDL ເຂົ້າໄປໃນ
Perl. ນີ້ແມ່ນຕົວຢ່າງໂຄງການ PDL:

ໃຊ້ PDL; # ນໍາເຂົ້າໂມດູນ PDL ຕົ້ນຕໍ.
ໃຊ້ PDL::NiceSlice; # ນໍາເຂົ້າໂມດູນ PDL ເພີ່ມເຕີມ.
ໃຊ້ PDL::AutoLoader; # ນໍາເຂົ້າໂມດູນ PDL ເພີ່ມເຕີມ.

$b = pdl [2,3,4]; # ຄຳຖະແຫຼງທີ່ລົງທ້າຍດ້ວຍເຄື່ອງໝາຍຈຸດ.
$A = pdl [ [1,2,3],[4,5,6] ]; # ມາຕຣິກເບື້ອງ 2 ມິຕິ.

ພິມ $A x $b->transpose;

ບັນທຶກໄຟລ໌ນີ້ເປັນ "myprogram.pl" ແລະດໍາເນີນການກັບ:

perl myprogram.pl

ໃຫມ່: ການປ່ຽນແປງ syntax
ໃນສະບັບປະຈຸບັນຂອງ PDL (ສະບັບ 2.4.7 ຫຼືຫຼັງຈາກນັ້ນ) ມີ syntax matrix ປ່ຽນແປງໄດ້
ມີລັກສະນະຄ້າຍຄືກັນກັບ MATLAB:

1) ໃຊ້ a ';' ເພື່ອຈຳກັດແຖວ:

$b = pdl q[ 2,3,4 ];
$A = pdl q[ 1,2,3 ; 4,5,6 ];

2) ໃຊ້ຊ່ອງຫວ່າງເພື່ອແຍກອົງປະກອບ:

$b = pdl q[ 2 3 4 ];
$A = pdl q[ 1 2 3 ; 4 5 6 ];

ໂດຍພື້ນຖານແລ້ວ, ຕາບໃດທີ່ທ່ານວາງ "q" ຢູ່ທາງຫນ້າຂອງວົງເລັບເປີດ, PDL ຄວນ "ເຮັດຫຍັງ
ເຈົ້າໝາຍເຖິງ” ດັ່ງນັ້ນເຈົ້າສາມາດຂຽນເປັນ syntax ທີ່ສະດວກສະບາຍກວ່າສຳລັບເຈົ້າ.

MODULES FOR MATLAB ຜູ້ໃຊ້


ມີສອງໂມດູນທີ່ຜູ້ໃຊ້ MATLAB ຕ້ອງການໃຊ້:

PDL::NiceSlice
ໃຫ້ PDL ເປັນ syntax ສໍາລັບ slices (sub-matrices) ທີ່ສັ້ນກວ່າແລະຄຸ້ນເຄີຍກັບ
ຜູ້ໃຊ້ MATLAB.

% MATLAB
b(1:5) --> ເລືອກ 5 ອົງປະກອບທຳອິດຈາກ ຂ.

# PDL ໂດຍບໍ່ມີ NiceSlice
$b->slice("0:4") --> ເລືອກ 5 ອົງປະກອບທຳອິດຈາກ $b.

# PDL ກັບ NiceSlice
$b(0:4) --> ເລືອກ 5 ອົງປະກອບທຳອິດຈາກ $b.

PDL::AutoLoader
ສະໜອງຕົວໂຫຼດແບບອັດຕະໂນມັດແບບ MATLAB ສໍາລັບ PDL. ຖ້າຟັງຊັນທີ່ບໍ່ຮູ້ຈັກ "foo()" ຖືກເອີ້ນ,
PDL ຊອກຫາໄຟລ໌ທີ່ເອີ້ນວ່າ "foo.pdl". ຖ້າມັນພົບຫນຶ່ງ, ມັນອ່ານມັນ.

BASIC ຄຸນ​ລັກ​ສະ​ນະ


ພາກນີ້ອະທິບາຍວ່າ syntax ຂອງ PDL ແຕກຕ່າງຈາກ MATLAB ແນວໃດ. ຜູ້ໃຊ້ MATLAB ສ່ວນໃຫຍ່ຈະຕ້ອງການ
ເລີ່ມຕົ້ນທີ່ນີ້.

ໂດຍ​ທົ່ວ​ໄປ "gotchas"
ຕົວຊີ້ວັດ
ໃນ PDL, ດັດຊະນີເລີ່ມຕົ້ນທີ່ '0' (ເຊັ່ນ C ແລະ Java), ບໍ່ແມ່ນ 1 (ເຊັ່ນ MATLAB ຫຼື FORTRAN). ສໍາລັບ
ຕົວຢ່າງ, ຖ້າ $b ເປັນ array ທີ່ມີ 5 ອົງປະກອບ, ອົງປະກອບຈະຖືກນັບຈາກ 0 ຫາ
4.

ກຳລັງສະແດງວັດຖຸ
MATLAB ໂດຍປົກກະຕິຈະສະແດງເນື້ອຫາວັດຖຸໂດຍອັດຕະໂນມັດ. ໃນແກະ PDL ທີ່ເຈົ້າສະແດງ
ວັດຖຸຢ່າງຈະແຈ້ງດ້ວຍຄໍາສັ່ງ "ພິມ" ຫຼືທາງລັດ "p":

MATLAB:

>> ກ = 12
ເຖິງ = 12
>> ຂ = 23; % ສະກັດກັ້ນຜົນຜະລິດ.
>>

PDL Shell (perldl ຫຼື pdl2):

pdl> $a = 12 # ບໍ່ມີຜົນຜະລິດ.
pdl> ພິມ $a # ພິມວັດຖຸ.
12
pdl> p $a # "p" ແມ່ນຫຍໍ້ມາຈາກ "ພິມ" ໃນແກະ.
12
pdl>

ການສ້າງ ປ້າ
ຕົວແປໃນ PDL
ຕົວແປເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍ '$' ສະເໝີ.

MATLAB: ຄ່າ = 42
PerlDL: $value = 42

syntax ພື້ນຖານ
ໃຊ້ຕົວສ້າງ "pdl" ເພື່ອສ້າງໃຫມ່ ປິວ.

MATLAB: v = [1,2,3,4]
PerlDL: $v = pdl [1,2,3,4]

MATLAB: A = [ 1,2,3 ; 3,4,5 ]
PerlDL: $A = pdl [ [1,2,3] , [3,4,5] ]

matrices ງ່າຍດາຍ
MATLAB PDL
------ ------
ມາຕຣິກເບື້ອງ ບໍ່(5) ອັນ 5,5
ມາຕຣິກເບື້ອງຂອງສູນ ສູນ(5) ສູນ 5,5
ເມທຣິກສຸ່ມ ໄຕ້(5) ສຸ່ມ 5,5
Linear vector 1:5 ລຳດັບ 5

ສັງເກດເຫັນວ່າໃນ PDL ວົງເລັບໃນການໂທຟັງຊັນມັກຈະເປັນທາງເລືອກ. ມັນ​ແມ່ນ
ສໍາຄັນທີ່ຈະຮັກສາຕາອອກສໍາລັບຄວາມບໍ່ແນ່ນອນທີ່ເປັນໄປໄດ້. ຍົກ​ຕົວ​ຢ່າງ:

pdl> p ສູນ 2, 2 + 2

ອັນນີ້ຄວນແປເປັນ "ສູນ(2,2) + 2" ຫຼື "ສູນ 2, (2+2)" ບໍ? ທັງສອງແມ່ນ
ຖະແຫຼງການທີ່ຖືກຕ້ອງ:

pdl> p zeros(2,2) + 2
[
[2 2]
[2 2]
]
pdl> p ສູນ 2, (2+2)
[
[0 0]
[0 0]
[0 0]
[0 0]
]

ແທນທີ່ຈະພະຍາຍາມຈື່ຈໍາລໍາດັບຄວາມສໍາຄັນຂອງ Perl, ມັນດີທີ່ສຸດທີ່ຈະໃຊ້
ວົງເລັບເພື່ອເຮັດໃຫ້ລະຫັດຂອງທ່ານບໍ່ຊັດເຈນ.

ລຳດັບໄລຍະຫ່າງ
MATLAB: >> linspace(2,10,5)
ans = 2 4 6 8 10

PerlDL: pdl> p ສູນ(5)->xlinvals(2,10)
[2 4 6 8 10]

ຄໍາອະທິບາຍ: ເລີ່ມຕົ້ນດ້ວຍ piddle 1 ມິຕິຂອງ 5 ອົງປະກອບແລະໃຫ້ມັນເທົ່າທຽມກັນ
ໄລຍະຫ່າງຈາກ 2 ຫາ 10.

MATLAB ມີການເອີ້ນຟັງຊັນດຽວສໍາລັບການນີ້. ໃນທາງກົງກັນຂ້າມ, ວິທີການຂອງ PDL ແມ່ນຫຼາຍກວ່າ
ປ່ຽນແປງໄດ້:

pdl> p zeros(5,5)->xlinvals(2,10)
[
[ 2 4 6 8 10 ]
[ 2 4 6 8 10 ]
[ 2 4 6 8 10 ]
[ 2 4 6 8 10 ]
[ 2 4 6 8 10 ]
]
pdl> p zeros(5,5)->ylinvals(2,10)
[
[ 2 2 2 2 2 ]
[ 4 4 4 4 4 ]
[ 6 6 6 6 6 ]
[ 8 8 8 8 8 ]
[10 10 10 10 10]
]
pdl> p zeros(3,3,3)->zlinvals(2,6)
[
[
[2 2 2]
[2 2 2]
[2 2 2]
]
[
[4 4 4]
[4 4 4]
[4 4 4]
]
[
[6 6 6]
[6 6 6]
[6 6 6]
]
]

Slicing ແລະຕົວຊີ້ວັດ
ການສະກັດເອົາຊຸດຍ່ອຍຈາກການລວບລວມຂໍ້ມູນແມ່ນເອີ້ນວ່າ ການຕັດ. PDL ແລະ MATLAB
ມີ syntax ທີ່ຄ້າຍຄືກັນສໍາລັບການ slicing, ແຕ່ມີສອງຄວາມແຕກຕ່າງທີ່ສໍາຄັນ:

1) ດັດຊະນີ PDL ເລີ່ມຕົ້ນທີ່ 0, ຄືກັບ C ແລະ Java. MATLAB ເລີ່ມຕົ້ນດັດຊະນີຢູ່ທີ່ 1.

2) ໃນ MATLAB ທ່ານຄິດວ່າ "ແຖວແລະຖັນ". ໃນ PDL, ຄິດວ່າ "x ແລະ y".

MATLAB PerlDL
------ ------
>> A pdl> p $A
A = [
1 2 3 [1 2 3]
4 5 6 [4 5 6]
7 8 9 [7 8 9]
]
-------------------------------------------------- -----
(ແຖວ = 2, col = 1) (x = 0, y = 1)
>> A(2,1) pdl> p $A(0,1)
ans = [
4 [4]
]
-------------------------------------------------- -----
(ແຖວ = 2 ຫາ 3, col = 1 ຫາ 2) (x = 0 ຫາ 1, y = 1 ຫາ 2)
>> A(2:3,1:2) pdl> p $A(0:1,1:2)
ans = [
4 5 [4 5]
7 8 [7 8]
]

ການ​ເຕືອນ​ໄພ
ເມື່ອທ່ານຂຽນໂປຼແກຼມ PDL ແບບຢືນຢູ່ຄົນດຽວ, ທ່ານຕ້ອງປະກອບ PDL::NiceSlice
ໂມດູນ. ເບິ່ງພາກກ່ອນ "MODULES FOR MATLAB ຜູ້ໃຊ້"ສໍາລັບການເພີ່ມເຕີມ
ຂໍ້ມູນຂ່າວສານ.

ໃຊ້ PDL; # ນໍາເຂົ້າໂມດູນ PDL ຕົ້ນຕໍ.
ໃຊ້ PDL::NiceSlice; # syntax ງາມສໍາລັບການຕັດ.
ໃຊ້ PDL::AutoLoader; # ເຄື່ອງໂຫລດອັດຕະໂນມັດຄ້າຍ MATLAB.

$A = Random 4,4;
ພິມ $A(0,1);

ມາຕຣິກເບື້ອງ ການດໍາເນີນງານ
ການຄູນມາຕຣິກເບື້ອງ
MATLAB: A * B
PerlDL: $A x $B

ການຄູນອົງປະກອບທີ່ສະຫລາດ
MATLAB: A .* ຂ
PerlDL: $A * $B

ຫັນປ່ຽນ
MATLAB: A'
PerlDL: $A->transpose

ຫນ້າທີ່ ທີ່ ລວມ ຂໍ້ມູນ
ບາງຟັງຊັນ (ເຊັ່ນ "sum", "max" ແລະ "min") ລວມຂໍ້ມູນສໍາລັບຊຸດຂໍ້ມູນ N-dimensional.
ນີ້ແມ່ນບ່ອນທີ່ MATLAB ແລະ PDL ໃຊ້ວິທີການທີ່ແຕກຕ່າງກັນ:

ໃນ MATLAB, ຫນ້າທີ່ເຫຼົ່ານີ້ທັງຫມົດເຮັດວຽກຕາມຫນຶ່ງມິຕິ.
>> A = [ 1,5,4 ; 4,2,1 ]
A = 1 5 4
+4 2 1
>> ສູງສຸດ (A)
ans = 4 5 4
>> ສູງສຸດ (A')
ans = 5

ຖ້າທ່ານຕ້ອງການສູງສຸດສໍາລັບຊຸດຂໍ້ມູນທັງຫມົດ, ທ່ານສາມາດນໍາໃຊ້ A(:) ພິເສດ.
notation ເຊິ່ງໂດຍພື້ນຖານແລ້ວຈະປ່ຽນຊຸດຂໍ້ມູນທັງໝົດໃຫ້ເປັນ 1 ມິຕິລະດັບດຽວ
ເວັກເຕີ

>> ສູງສຸດ (A(:))
ans = 5
>> A = ones(2,2,2,2)
>> ສູງສຸດ (A(:))
ans = 1

PDL ສະເຫນີສອງຫນ້າທີ່ສໍາລັບແຕ່ລະລັກສະນະ.
ຜົນລວມທຽບກັບ sumover
ສະເລ່ຍທຽບກັບສະເລ່ຍ
ສູງສຸດທຽບກັບສູງສຸດ
ຂັ້ນຕ່ຳທຽບກັບຂັ້ນຕ່ຳ

ໄດ້ ຍາວ ຊື່ ເຮັດວຽກໃນໄລຍະຂະຫນາດ, ໃນຂະນະທີ່ ສັ້ນ ຊື່ ເຮັດວຽກທົ່ວ
ປິວ.

pdl> p $A = pdl [ [1,5,4] , [4,2,1] ]
[
[1 5 4]
[4 2 1]
]
pdl> p $A->ສູງສຸດ
[5 4]
pdl> p $A->transpose->ສູງສຸດ
[4 5 4]
pdl> p $A->ສູງສຸດ
5
pdl> p ones(2,2,2)->ສູງສຸດ
1
pdl> p ones(2,2,2,2)->ສູງສຸດ
1

ຫມາຍ​ເຫດ​ ສັງເກດເຫັນວ່າ PDL ລວບລວມຕາມແນວນອນໃນຂະນະທີ່ MATLAB ລວມຢູ່ໃນແນວຕັ້ງ. ໃນ​ອື່ນໆ
ຄຳ ເວົ້າ:

MATLAB PerlDL
max(A) == $A->transpose->ສູງສຸດ
max(A') == $A->ສູງສຸດ

TIP: ໃນ MATLAB ທ່ານຄິດວ່າ "ແຖວແລະຖັນ". ໃນ PDL, ຄິດວ່າ "x ແລະ y".

ສູງກວ່າ dimensional ຂໍ້ມູນ ຊຸດ
ບັນຫາທີ່ກ່ຽວຂ້ອງແມ່ນວິທີທີ່ MATLAB ແລະ PDL ເຂົ້າໃຈຊຸດຂໍ້ມູນຂອງມິຕິທີ່ສູງກວ່າ. MATLAB ແມ່ນ
ອອກແບບສໍາລັບ vectors 1D ແລະ 2D matrices. ວັດຖຸມິຕິລະດັບທີ່ສູງກວ່າ ("ອາເຣ ND") ແມ່ນ
ເພີ່ມຢູ່ເທິງ. ໃນທາງກົງກັນຂ້າມ, PDL ຖືກອອກແບບມາສໍາລັບ N-dimensional piddles ຕັ້ງແຕ່ເລີ່ມຕົ້ນ. ນີ້
ນໍາໄປສູ່ຄວາມແປກໃຈບໍ່ຫຼາຍປານໃດໃນ MATLAB ທີ່ບໍ່ເກີດຂຶ້ນໃນ PDL:

MATLAB ເຫັນ vector ເປັນ 2D matrix.
MATLAB PerlDL
------ ------
>> vector = [1,2,3,4]; pdl> $vector = pdl [1,2,3,4]
>> ຂະໜາດ(vector) pdl> p $vector-> dims
ans = 1 4 4

MATLAB ເຫັນ "[1,2,3,4]" ເປັນ 2D matrix (1x4 matrix). PDL ເຫັນວ່າມັນເປັນ vector 1D: A
ຂະຫນາດດຽວຂອງຂະຫນາດ 4.

ແຕ່ MATLAB ບໍ່ສົນໃຈຂະໜາດສຸດທ້າຍຂອງເມທຣິກ 4x1x1.
MATLAB PerlDL
------ ------
>> A = ones(4,1,1); pdl> $A = ones 4,1,1
>> ຂະໜາດ(A) pdl> p $A-> dims
ans = 4 1 4 1 1

ແລະ MATLAB ປະຕິບັດກັບ 4x1x1 matrix ທີ່ແຕກຕ່າງຈາກ 1x1x4 matrix.
MATLAB PerlDL
------ ------
>> A = ones(1,1,4); pdl> $A = ones 1,1,4
>> ຂະໜາດ(A) pdl> p $A-> dims
ans = 1 1 4 1 1 4

MATLAB ບໍ່ມີ syntax ໂດຍກົງສໍາລັບ ND arrays.
pdl> $A = pdl [[[1,2,3],[4,5,6]], [[2,3,4],[5,6,7]]]
pdl> p $A-> dims
+3 2 2

ຄຸນນະສົມບັດສະຫນັບສະຫນູນ.
ໃນ MATLAB, ລັກສະນະຫຼາຍຢ່າງເຊັ່ນ: ການສະຫນັບສະຫນູນ matrix sparse ແມ່ນບໍ່ມີສໍາລັບ ND
arrays. ໃນ PDL, ພຽງແຕ່ກ່ຽວກັບຄຸນສົມບັດໃດໆທີ່ສະຫນັບສະຫນູນໂດຍ 1D ແລະ 2D piddles, ແມ່ນເທົ່າທຽມກັນ
ສະຫນັບສະຫນູນໂດຍ N-dimensional piddles. ປົກກະຕິແລ້ວບໍ່ມີຄວາມແຕກຕ່າງ.

Loop ໂຄງສ້າງ
Perl ມີໂຄງສ້າງ loop ຫຼາຍ, ແຕ່ພວກເຮົາຈະສະແດງພຽງແຕ່ຫນຶ່ງທີ່ຄຸ້ນເຄີຍທີ່ສຸດ
ຜູ້ໃຊ້ MATLAB:

MATLAB PerlDL
------ ------
ສໍາລັບ i = 1:10 ສໍາລັບ $i (1..10) {
disp(i) ພິມ $i
ສິ້ນສຸດ }

ຫມາຍ​ເຫດ​ ຢ່າໃຊ້ for-loops ສໍາລັບວຽກງານຕົວເລກ. Perl's for-loops ໄວກວ່າ MATLAB's,
ແຕ່ພວກເຂົາທັງສອງຈືດໆຕໍ່ກັບການດໍາເນີນງານ "vectorized". PDL ມີຫຼາຍເຄື່ອງມືທີ່
ອໍານວຍຄວາມສະດວກໃນການຂຽນໂປຼແກຼມ vectorized. ເຫຼົ່ານີ້ແມ່ນເກີນຂອບເຂດຂອງຄໍາແນະນໍານີ້. ເຖິງ
ສຶກສາເພີ່ມເຕີມ, ເບິ່ງ: PDL::Indexing, PDL::Threading, and PDL::PP.

ເຊັ່ນດຽວກັນ, ບໍ່ເຄີຍໃຊ້ 1..10 ສໍາລັບການເຮັດວຽກຕົວເລກ, ເຖິງແມ່ນວ່າຢູ່ນອກ for-loop. 1..10 ແມ່ນ ກ
ອະເຣ Perl. Perl arrays ຖືກອອກແບບມາເພື່ອຄວາມຍືດຫຍຸ່ນ, ບໍ່ແມ່ນຄວາມໄວ. ໃຊ້ ປ້າ ແທນທີ່ຈະເປັນ.
ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມ, ເບິ່ງພາກຕໍ່ໄປ.

ປ້າ vs Perl ອາເລ
ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດຄວາມແຕກຕ່າງລະຫວ່າງ a Piddle ແລະ array Perl. Perl ມີ
ວັດຖຸ array ຈຸດປະສົງທົ່ວໄປທີ່ສາມາດຖືປະເພດຂອງອົງປະກອບໃດໆ:

@perl_array = 1..10;
@perl_array = ( 12, "ສະບາຍດີ" );
@perl_array = ( 1, 2, 3, \@another_perl_array, ລໍາດັບ(5) );

Perl arrays ຊ່ວຍໃຫ້ທ່ານສ້າງໂຄງສ້າງຂໍ້ມູນທີ່ມີປະສິດທິພາບ (ເບິ່ງ ຂໍ້ມູນ ໂຄງສ້າງ ຂ້າງລຸ່ມນີ້), ແຕ່
ພວກເຂົາເຈົ້າ ມີ ບໍ່ ການອອກແບບ ສໍາລັບການ numerical ການເຮັດວຽກ. ສໍາລັບການນັ້ນ, ການນໍາໃຊ້ ປ້າ:

$pdl = pdl [ 1, 2, 3, 4 ];
$pdl = ລໍາດັບ 10_000_000;
$pdl = ones 600, 600;

ຍົກ​ຕົວ​ຢ່າງ:

$points = pdl 1..10_000_000 # 4.7 ວິນາທີ
$points = ລຳດັບ 10_000_000 # milliseconds

TIP: ທ່ານສາມາດໃຊ້ຂີດກ້ອງໃນຕົວເລກ ("10_000_000" ອ່ານໄດ້ດີກວ່າ 10000000).

ເງື່ອນໄຂ
Perl ມີຫຼາຍເງື່ອນໄຂ, ແຕ່ພວກເຮົາຈະສະແດງພຽງແຕ່ຫນຶ່ງທີ່ຄຸ້ນເຄີຍກັບ MATLAB ທີ່ສຸດ
ຜູ້ໃຊ້:

MATLAB PerlDL
------ ------
ຖ້າຄ່າ > MAX ຖ້າ ($value > $MAX) {
disp("ໃຫຍ່ເກີນໄປ") ພິມ "ໃຫຍ່ເກີນໄປ\n";
elseif ຄ່າ < MIN } elsif ($value < $MIN) {
disp("ນ້ອຍເກີນໄປ") ພິມ "ນ້ອຍເກີນໄປ\n";
else } else {
disp("Perfect!") ພິມ "Perfect!\n";
ຈົບ }

ຫມາຍ​ເຫດ​ ນີ້ແມ່ນ "gotcha":

MATLAB: elseif
PerlDL: elsif

ຖ້າເງື່ອນໄຂຂອງທ່ານເຮັດໃຫ້ syntax ຜິດພາດ, ກວດເບິ່ງວ່າທ່ານຂຽນ "elsif" ຂອງທ່ານ
ຢ່າງຖືກຕ້ອງ.

ທິມໂຕວດີ (ມີ Is ເພີ່ມເຕີມ ກ່ວາ ຫນຶ່ງ ທາງ To Do ມັນ)
ຫນຶ່ງໃນຄວາມແຕກຕ່າງທີ່ຫນ້າສົນໃຈທີ່ສຸດລະຫວ່າງ PDL ແລະເຄື່ອງມືອື່ນໆແມ່ນການສະແດງອອກ
ຂອງ​ພາ​ສາ Perl​. TIMTOWDI, ຫຼື "ມີຫຼາຍກວ່າຫນຶ່ງວິທີທີ່ຈະເຮັດ", ແມ່ນຄໍາຂວັນຂອງ Perl.

Perl ຖືກຂຽນໂດຍນັກພາສາສາດ, ແລະຫນຶ່ງໃນຄຸນສົມບັດກໍານົດຂອງມັນແມ່ນວ່າຄໍາຖະແຫຼງທີ່ສາມາດເຮັດໄດ້
ຖືກສ້າງຂື້ນດ້ວຍວິທີທີ່ແຕກຕ່າງກັນເພື່ອໃຫ້ພາສາມີຄວາມຮູ້ສຶກທໍາມະຊາດຫຼາຍຂຶ້ນ. ຕົວຢ່າງ, ເຈົ້າ
ຄົງຈະບໍ່ເວົ້າກັບໝູ່ວ່າ:

"ໃນຂະນະທີ່ຂ້ອຍບໍ່ສໍາເລັດ, ຂ້ອຍຈະເຮັດວຽກຕໍ່ໄປ."

ພາສາຂອງມະນຸດມີຄວາມຍືດຫຍຸ່ນຫຼາຍກວ່ານັ້ນ. ແທນທີ່ຈະ, ເຈົ້າມັກຈະເວົ້າວ່າ:

"ຂ້ອຍຈະເຮັດວຽກຕໍ່ໄປຈົນກ່ວາຂ້ອຍສໍາເລັດ."

ເນື່ອງຈາກຮາກພາສາຂອງມັນ, Perl ແມ່ນພາສາການຂຽນໂປຼແກຼມດຽວທີ່ມີປະເພດນີ້
ຄວາມຍືດຫຍຸ່ນ. ຕົວຢ່າງ, Perl ມີ while-loops ແລະ if-statements ແບບດັ້ງເດີມ:

ໃນຂະນະທີ່ ( ! ສໍາເລັດ () ) {
keep_working();
}

ຖ້າ ( ! wife_angry() ) {
kiss_wife();
}

ແຕ່ມັນຍັງສະເຫນີທາງເລືອກ ຈົນກ່ວາ ແລະ ເວັ້ນເສຍແຕ່ວ່າ ຖະແຫຼງການ:

ຈົນກ່ວາ (ສໍາເລັດ () ) {
keep_working();
}

ເວັ້ນເສຍແຕ່ (ເມຍ_angry() ) {
kiss_wife();
}

ແລະ Perl ອະນຸຍາດໃຫ້ທ່ານຂຽນ loops ແລະເງື່ອນໄຂໃນຮູບແບບ "postfix":

keep_working() ຈົນກ່ວາສໍາເລັດ();

kiss_wife() ເວັ້ນເສຍແຕ່ wife_angry();

ດ້ວຍວິທີນີ້, Perl ມັກຈະຊ່ວຍໃຫ້ທ່ານຂຽນລະຫັດທໍາມະຊາດຫຼາຍ, ເຂົ້າໃຈງ່າຍກວ່າ
ເປັນໄປໄດ້ໃນພາສາການຂຽນໂປຼແກຼມທີ່ຈຳກັດຫຼາຍຂຶ້ນ.

ຫນ້າທີ່
syntax ຂອງ PDL ສໍາລັບການປະກາດຫນ້າທີ່ແຕກຕ່າງກັນຢ່າງຫຼວງຫຼາຍຈາກ MATLAB's.

MATLAB PerlDL
------ ------
function retval = foo(x,y) sub foo {
retval = x.**2 + x.*y my ($x, $y) = @_;
endfunction return $x**2 + $x*$y;
}

ບໍ່ໄດ້ຮັບການຂົ່ມຂູ່ໂດຍ syntax ໃຫມ່ທັງຫມົດ. ນີ້ແມ່ນການແລ່ນໄວໂດຍຜ່ານຟັງຊັນ
ປະກາດໃນ PDL:

1) "ການຍ່ອຍ" ຫຍໍ້ມາຈາກ "ຊຸດຍ່ອຍ".

2) "my" ປະກາດຕົວແປເປັນທ້ອງຖິ່ນຕໍ່ກັບຟັງຊັນ.

3) "@_" ເປັນ array Perl ພິເສດທີ່ຖືພາລາມິເຕີຟັງຊັນທັງຫມົດ. ນີ້ອາດຈະເບິ່ງຄືວ່າ
ຄືກັບວິທີທີ່ແປກທີ່ຈະເຮັດຫນ້າທີ່, ແຕ່ມັນອະນຸຍາດໃຫ້ທ່ານເຮັດຫນ້າທີ່ໃຊ້ a
ຈໍານວນຕົວກໍານົດການປ່ຽນແປງ. ສໍາລັບການຍົກຕົວຢ່າງ, ຟັງຊັນຕໍ່ໄປນີ້ໃຊ້ເວລາຈໍານວນຂອງ
ພາລາມິເຕີແລະເພີ່ມພວກມັນເຂົ້າກັນ:

sub mysum {
ຂອງຂ້ອຍ ($i, $total) = (0, 0);
ສໍາລັບ $i (@_) {
$total += $i;
}
ກັບຄືນ $total;
}

4​) ທ່ານ​ສາ​ມາດ​ກໍາ​ນົດ​ຄ່າ​ໃຫ້​ຕົວ​ປ່ຽນ​ແປງ​ຫຼາຍ​ໃນ​ເວ​ລາ​ດຽວ​ກັນ​ໂດຍ​ການ​ນໍາ​ໃຊ້ syntax ໄດ້​:

($a, $b, $c) = (1, 2, 3);

ດັ່ງນັ້ນ, ໃນຕົວຢ່າງທີ່ຜ່ານມາ:

# ນີ້ປະກາດສອງຕົວແປທ້ອງຖິ່ນແລະເລີ່ມຕົ້ນພວກມັນເປັນ 0.
ຂອງຂ້ອຍ ($i, $total) = (0, 0);

# ນີ້ໃຊ້ເວລາສອງອົງປະກອບທໍາອິດຂອງ @_ ແລະວາງພວກມັນເປັນ $x ແລະ $y.
ຂອງຂ້ອຍ ($x, $y) = @_;

5) ໄດ້ "ການກັບຄືນມາ" ຖະແຫຼງການໃຫ້ຄ່າກັບຄືນຂອງຟັງຊັນ, ຖ້າມີ.

ເພີ່ມເຕີມ ຄຸນ​ລັກ​ສະ​ນະ


ASCII ເອກະສານ IO
ເພື່ອອ່ານໄຟລ໌ຂໍ້ມູນທີ່ມີຊ່ອງຫວ່າງແຍກຖັນຂອງຕົວເລກ (ຕາມທີ່ຈະອ່ານ
ໃຊ້ MATLAB load command) ຫນຶ່ງໃຊ້ PDL rcols ໃນ PDL::IO::ອື່ນໆ. ສໍາລັບທົ່ວໄປ
ການທົບທວນຄືນການເຮັດວຽກຂອງ IO ທີ່ມີຢູ່ໃນ PDL, ເບິ່ງເອກະສານສໍາລັບ PDL::IO, ຕົວຢ່າງ,
"ຊ່ວຍ PDL::IO" ໃນ pdl2 shell ຫຼື " pdldoc PDL::IO " ຈາກບັນທັດຄໍາສັ່ງ shell.

ຂໍ້ມູນ ໂຄງສ້າງ
ເພື່ອສ້າງໂຄງສ້າງຂໍ້ມູນທີ່ສັບສົນ, MATLAB ໃຊ້ "ມືຖື ອາຄານ"ແລະ"ໂຄງປະກອບການ ອາຄານ".
arrays ແລະ hashes ຂອງ Perl ສະຫນອງການເຮັດວຽກທີ່ຄ້າຍຄືກັນແຕ່ມີອໍານາດຫຼາຍແລະມີຄວາມຍືດຫຍຸ່ນ.
ພາກນີ້ແມ່ນພຽງແຕ່ສະຫຼຸບສັ້ນໆຂອງສິ່ງທີ່ Perl ມີໃຫ້. ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບເລື່ອງນີ້,
ກະລຸນາໄປທີ່http://perldoc.perl.org/perldata.html> ຫຼືດໍາເນີນການຄໍາສັ່ງ "perldoc
perldata".

ອາເລ
Perl arrays ແມ່ນຄ້າຍຄືກັນກັບ cell arrays ຂອງ MATLAB, ແຕ່ມີຄວາມຍືດຫຍຸ່ນຫຼາຍ. ຕົວຢ່າງ, ໃນ
MATLAB, a cell array ຍັງຄົງເປັນ matrix ໂດຍພື້ນຖານ. ມັນຖືກເຮັດດ້ວຍແຖວ, ແລະແຖວ
ຕ້ອງມີຄວາມຍາວຄືກັນ.

MATLAB
------
array = {1, 12, 'ສະບາຍດີ'; Rand(3, 2), ບໍ່(3), 'ຂີ້ເຫຍື້ອ'}
=> ຕົກລົງ
array = {1, 12, 'ສະບາຍດີ'; Rand(3, 2), ບໍ່(3) }
=> ຜິດພາດ

A array Perl ແມ່ນຈຸດປະສົງທົ່ວໄປ, ໂຄງສ້າງຂໍ້ມູນຕາມລໍາດັບ. ມັນສາມາດມີຂໍ້ມູນໃດໆ
ປະເພດ

PerlDL
------
@array = ( [1, 12, 'ສະບາຍດີ'] , [ Random(3,2), ones(3,3), 'junk'] )
=> ຕົກລົງ
@array = ( [1, 12, 'ສະບາຍດີ'] , [ Random(3,2), ones(3,3) ] )
=> ຕົກລົງ
@array = ( 5 , {'ຊື່' => 'ໄມ'} , [1, 12, 'ສະບາຍດີ'])
=> ຕົກລົງ

ສັງເກດເຫັນວ່າ Perl array ຂອງເລີ່ມຕົ້ນດ້ວຍ "@" prefix ແທນ "$" ທີ່ໃຊ້ໂດຍ
ປ້າ.

To ຮຽນຮູ້ ກ່ຽວກັບ Perl arrays, ກະລຸນາ go to <http://perldoc.perl.org/perldata.html> or
ແລ່ນ ໄດ້ ຄໍາສັ່ງ "perldoc perldata".

hashes
Perl hashes ແມ່ນຄ້າຍຄືກັນກັບໂຄງສ້າງຂອງ MATLAB:

MATLAB
------
>> Drink = struct('type', 'coke', 'size', 'large', 'myarray', {1,2,3})
>> drink.type = 'ສະເປຣ'
>> drink.price = 12 % ເພີ່ມຊ່ອງຂໍ້ມູນໃໝ່ໃສ່ໂຄງສ້າງ array.

PerlDL
------
pdl> %drink = (ປະເພດ => 'coke' , ຂະໜາດ => 'ໃຫຍ່', mypiddle => ones(3,3,3))
pdl> $drink{type} = 'sprite'
pdl> $drink{price} = 12 # ເພີ່ມຊ່ອງຂໍ້ມູນໃໝ່ໃສ່ hash.

ສັງເກດວ່າ Perl hashes ເລີ່ມຕົ້ນດ້ວຍ "%" ຄໍານໍາຫນ້າແທນ "@" ສໍາລັບ arrays ແລະ
"$" ໃຊ້ໂດຍ piddles.

To ຮຽນຮູ້ ກ່ຽວກັບ Perl hashes, ກະລຸນາ go to <http://perldoc.perl.org/perldata.html> or
ແລ່ນ ໄດ້ ຄໍາສັ່ງ "perldoc perldata".

ການປະຕິບັດ
PDL ມີລັກສະນະປະສິດທິພາບທີ່ມີປະສິດທິພາບ, ບາງອັນທີ່ປົກກະຕິແລ້ວບໍ່ມີຢູ່ໃນ
ເຄື່ອງ​ມື​ການ​ຄິດ​ໄລ່​ຈໍາ​ນວນ​. ໜ້າຕໍ່ໄປນີ້ຈະແນະນຳທ່ານຜ່ານຄຸນສົມບັດເຫຼົ່ານີ້:

PDL::Indexing
ລະດັບ: ຜູ້ເລີ່ມຕົ້ນ

ການສອນຜູ້ເລີ່ມຕົ້ນນີ້ກວມເອົາຄຸນສົມບັດ "vectorization" ມາດຕະຖານທີ່ທ່ານຢູ່ແລ້ວ
ຮູ້ຈາກ MATLAB. ໃຊ້ຫນ້ານີ້ເພື່ອຮຽນຮູ້ວິທີຫຼີກເວັ້ນການ for-loops ເພື່ອເຮັດໃຫ້ໂຄງການຂອງທ່ານ
ປະສິດທິພາບຫຼາຍ.

PDL::ກະທູ້
ລະດັບ: ລະດັບປານກາງ

ຄຸນສົມບັດ "vectorization" ຂອງ PDL ເກີນກວ່າສິ່ງທີ່ຊອບແວຕົວເລກສາມາດເຮັດໄດ້. ໃນ
tutorial ນີ້ທ່ານຈະຮຽນຮູ້ວິທີການ "ກະທູ້" ໃນໄລຍະທີ່ສູງຂຶ້ນ, ອະນຸຍາດໃຫ້ທ່ານ
vectorize ໂຄງການຂອງທ່ານຫຼາຍກວ່າທີ່ເປັນໄປໄດ້ໃນ MATLAB.

ມາດຕະຖານ
ລະດັບ: ລະດັບປານກາງ

Perl ມາພ້ອມກັບໂມດູນມາດຕະຖານທີ່ງ່າຍຕໍ່ການໃຊ້ເພື່ອຊ່ວຍໃຫ້ທ່ານຊອກຫາໄລຍະເວລາທີ່ມັນໃຊ້ເວລາ
ເພື່ອປະຕິບັດພາກສ່ວນຕ່າງໆຂອງລະຫັດຂອງທ່ານ. ມັນ​ເປັນ​ເຄື່ອງ​ມື​ທີ່​ດີ​ທີ່​ຈະ​ຊ່ວຍ​ໃຫ້​ທ່ານ​ສຸມ​ໃສ່​ການ​ຂອງ​ທ່ານ​
ຄວາມພະຍາຍາມເພີ່ມປະສິດທິພາບ. ທ່ານສາມາດອ່ານກ່ຽວກັບມັນອອນໄລນ໌
(<http://perldoc.perl.org/Benchmark.html>) ຫຼືຜ່ານຄໍາສັ່ງ "perldoc
ດັດຊະນີ".

PDL::PP
ລະດັບ: ຂັ້ນສູງ

PDL's Pre-Processor ແມ່ນຫນຶ່ງໃນລັກສະນະທີ່ມີປະສິດທິພາບທີ່ສຸດຂອງ PDL. ທ່ານຂຽນຫນ້າທີ່
ຄໍານິຍາມໃນ markup ພິເສດແລະ pre-processor ສ້າງລະຫັດ C ທີ່ແທ້ຈິງທີ່ສາມາດເປັນ
ລວບລວມ. ດ້ວຍ PDL:PP ທ່ານໄດ້ຮັບຄວາມໄວເຕັມຂອງລະຫັດ C ພື້ນເມືອງໂດຍບໍ່ຈໍາເປັນຕ້ອງຈັດການກັບ
ກັບຄວາມສັບສົນອັນເຕັມທີ່ຂອງພາສາ C.

ການວາງແຜນ
PDL ມີຄວາມສາມາດວາງແຜນແບບເຕັມຮູບແບບ. ບໍ່ເຫມືອນກັບ MATLAB, PDL ຂຶ້ນກັບພາກສ່ວນທີສາມຫຼາຍ
ຫ້ອງສະຫມຸດ (pgplot ແລະ PLplot) ສໍາລັບລັກສະນະການວາງແຜນ 2D ຂອງມັນ. ການວາງແຜນ ແລະຮູບພາບ 3D
ໃຊ້ OpenGL ສໍາລັບການປະຕິບັດແລະການເຄື່ອນທີ່. PDL ມີສາມໂມດູນການວາງແຜນຕົ້ນຕໍ:

PDL::ກາຟິກ::PGPLOT
ທີ່ດີທີ່ສຸດ ສໍາລັບການ: ການວາງແຜນຟັງຊັນ 2D ແລະຊຸດຂໍ້ມູນ.

ນີ້​ແມ່ນ​ການ​ໂຕ້​ຕອບ​ກັບ​ຫ້ອງ​ສະ​ຫມຸດ PGPLOT venerable​. PGPLOT ໄດ້ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນ
ຊຸມຊົນທາງວິຊາການ ແລະວິທະຍາສາດເປັນເວລາຫຼາຍປີ. ສ່ວນ​ໜຶ່ງ​ແມ່ນ​ຍ້ອນ​ອາຍຸ​ຂອງ​ມັນ,
PGPLOT ມີຂໍ້ຈໍາກັດບາງຢ່າງເມື່ອປຽບທຽບກັບຊຸດໃຫມ່ເຊັ່ນ PLplot (ເຊັ່ນ: ບໍ່ມີ RGB
ຮູບພາບ). ແຕ່ມັນມີລັກສະນະຫຼາຍຢ່າງທີ່ຍັງເຮັດໃຫ້ມັນເປັນທີ່ນິຍົມໃນວິທະຍາສາດ
ຊຸມຊົນ.

PDL::Graphics::PLplot
ທີ່ດີທີ່ສຸດ ສໍາລັບການ: ການວາງແຜນຟັງຊັນ 2D ເຊັ່ນດຽວກັນກັບຊຸດຂໍ້ມູນ 2D ແລະ 3D.

ນີ້ແມ່ນສ່ວນຕິດຕໍ່ກັບຫ້ອງສະໝຸດ PLplot plotting. PLplot ເປັນແຫຼ່ງເປີດທີ່ທັນສະໄຫມ
ຫ້ອງສະຫມຸດສໍາລັບການສ້າງແຜນຜັງວິທະຍາສາດ. ມັນຮອງຮັບຊຸດຂໍ້ມູນທັງ 2D ແລະ 3D.
PLplot ໄດ້ຮັບການສະຫນັບສະຫນູນທີ່ດີທີ່ສຸດສໍາລັບເວທີ unix / linux / macosx. ມັນມີນັກພັດທະນາທີ່ຫ້າວຫັນ
ຊຸມຊົນແລະການສະຫນັບສະຫນູນສໍາລັບເວທີ win32 ກໍາລັງປັບປຸງ.

PDL::Graphics::TriD
ທີ່ດີທີ່ສຸດ ສໍາລັບການ: ການວາງແຜນຟັງຊັນ 3D.

ຫ້ອງສະໝຸດກຣາບຟິກ 3D PDL ພື້ນເມືອງທີ່ໃຊ້ OpenGL ເປັນ backend ສໍາລັບພື້ນທີ່ 3D ແລະຂໍ້ມູນ
ການເບິ່ງເຫັນ. ດ້ວຍ OpenGL, ມັນງ່າຍທີ່ຈະຈັດການວັດຖຸ 3D ທີ່ມີຜົນໄດ້ຮັບ
ຫນູໃນເວລາທີ່ແທ້ຈິງ.

ລາຍລັກອັກສອນ GUIs
ຜ່ານ Perl, PDL ມີການເຂົ້າເຖິງທຸກຊຸດເຄື່ອງມືທີ່ສໍາຄັນສໍາລັບການສ້າງເວທີຂ້າມ
ການໂຕ້ຕອບຜູ້ໃຊ້ແບບກາຟິກ. ຫນຶ່ງໃນທາງເລືອກທີ່ນິຍົມແມ່ນ wxPerl (http://wxperl.sourceforge.net>).
ເຫຼົ່ານີ້ແມ່ນການຜູກມັດ Perl ສໍາລັບ wxWidgets, ຊຸດເຄື່ອງມື GUI ທີ່ມີປະສິດທິພາບສໍາລັບການຂຽນຂ້າມ.
ຄໍາຮ້ອງສະຫມັກເວທີ.

wxWidgets ຖືກ​ອອກ​ແບບ​ເພື່ອ​ເຮັດ​ໃຫ້​ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​ຂອງ​ທ່ານ​ເບິ່ງ​ແລະ​ມີ​ຄວາມ​ຮູ້​ສຶກ​ຄ້າຍ​ຄື​ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​ພື້ນ​ເມືອງ​ໃນ​
ທຸກໆເວທີ. ຕົວຢ່າງ, Perl IDE ພຣະບິດາ ຖືກຂຽນດ້ວຍ wxPerl.

simulink
Simulink ແມ່ນຕົວສ້າງແບບຈໍາລອງແລະເຄື່ອງຈໍາລອງລະບົບກາຟິກແບບເຄື່ອນໄຫວ. ມັນສາມາດຊື້ໄດ້
ແຍກຕ່າງຫາກເປັນ add-on ກັບ MATLAB. PDL ແລະ Perl ບໍ່ທຽບເທົ່າໂດຍກົງກັບ
Simulink ຂອງ MATLAB. ຖ້າຄຸນສົມບັດນີ້ສຳຄັນຕໍ່ເຈົ້າ, ລອງເບິ່ງ ຂູດ:

<http://www.scilab.org>

Scilab ແມ່ນຊອບແວການວິເຄາະຕົວເລກອື່ນ. ເຊັ່ນດຽວກັນກັບ PDL, ມັນແມ່ນບໍ່ເສຍຄ່າແລະແຫຼ່ງເປີດ. ມັນ
ບໍ່ມີຄຸນສົມບັດທີ່ເປັນເອກະລັກຂອງ PDL, ແຕ່ມັນຄ້າຍຄືກັນກັບ MATLAB. Scilab ມາພ້ອມກັບ
Xcos (ກ່ອນໜ້ານີ້ Scicos), ຕົວແບບລະບົບກາຟິກ ແລະເຄື່ອງຈຳລອງທີ່ຄ້າຍຄືກັບ Simulink.

COPYRIGHT


ສະຫງວນລິຂະສິດ 2010 Daniel Carrera (dcarrera@gmail.com). ທ່ານ​ສາ​ມາດ​ແຈກ​ຢາຍ​ແລະ / ຫຼື​ປັບ​ປຸງ​ແກ້​ໄຂ​ນີ້​
ເອກະສານພາຍໃຕ້ເງື່ອນໄຂດຽວກັນກັບໃບອະນຸຍາດ Perl ໃນປັດຈຸບັນ.

ເບິ່ງ: http://dev.perl.org/licenses/

ຂອບໃຈ
ຂ້າພະເຈົ້າຂໍຂອບໃຈ David Mertens, Chris Marshall ແລະ Sigrid Carrera ສໍາລັບອັນໃຫຍ່ຫຼວງຂອງພວກເຂົາ
ຊ່ວຍທົບທວນຮ່າງບົດແນະນໍານີ້ກ່ອນໜ້ານີ້. ໂດຍບໍ່ມີຊົ່ວໂມງເຮັດວຽກຂອງພວກເຂົາ, ນີ້
ເອກະສານຈະບໍ່ເປັນປະໂຫຍດຕໍ່ຜູ້ໃຊ້ MATLAB ຫ່າງໄກສອກຫຼີກເທົ່າທີ່ເປັນມື້ນີ້.

ໃຊ້ PDL::MATLABp ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net



ລ່າສຸດ Linux ແລະ Windows ໂຄງການອອນໄລນ໌