ภาษาอังกฤษอาหารฝรั่งเศสสเปน

ไอคอน Fav ของ OnWorks

PDL::QuickStartp - ออนไลน์ใน Cloud

เรียกใช้ PDL::QuickStartp ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง PDL::QuickStartp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


PDL::QuickStart - การแนะนำคุณลักษณะ PDL อย่างรวดเร็ว

เรื่องย่อ


สรุปโดยย่อของคุณสมบัติ PDL หลักและวิธีใช้งาน

DESCRIPTION


บริษัท
Perl เป็นภาษาสคริปต์ที่ดีและใช้งานได้หลากหลาย เหมาะสำหรับผู้เริ่มต้นใช้งานและ
ช่วยให้สร้างต้นแบบได้อย่างรวดเร็ว อย่างไรก็ตาม จนกระทั่งเมื่อไม่นานนี้ มันไม่รองรับโครงสร้างข้อมูลซึ่ง
อนุญาตให้ทำการกระทืบตัวเลขอย่างรวดเร็ว

อย่างไรก็ตาม ด้วยการพัฒนา Perl v5 ทำให้ Perl ได้รับ 'Objects' พูดง่ายๆ ว่าผู้ใช้
สามารถกำหนดประเภทข้อมูลพิเศษของตนเอง และเขียนรูทีนแบบกำหนดเองเพื่อจัดการได้
ในภาษาระดับต่ำ (C และ Fortran) หรือใน Perl เอง

สิ่งนี้ถูกใช้ประโยชน์อย่างเต็มที่โดยนักพัฒนา PerlDL โมดูล 'PDL' เสร็จสมบูรณ์
ส่วนขยายเชิงวัตถุเป็น Perl (แม้ว่าคุณไม่จำเป็นต้องรู้ว่าวัตถุคืออะไร
ใช้) ซึ่งช่วยให้ชุดข้อมูล N-Dim ขนาดใหญ่ เช่น ภาพขนาดใหญ่ สเปกตรัม เวลา
ซีรีย์ ฯลฯ ที่จะเก็บไว้ อย่างมีประสิทธิภาพ และถูกปรุงแต่ง en masse. ตัวอย่างเช่น กับ PDL
โมดูลที่เราสามารถเขียนโค้ด Perl "$a = $b + $c" โดยที่ $b และ $c เป็นชุดข้อมูลขนาดใหญ่ (เช่น
ขนาดภาพ 2048x2048) และได้ผลลัพธ์ในเวลาเพียงเสี้ยววินาที

ตัวแปร PDL (หรือ 'piddles' ตามที่ทราบ) รองรับ
ชนิดข้อมูลพื้นฐาน - อาร์เรย์สามารถเป็นไบต์ จำนวนเต็มสั้น (มีเครื่องหมายหรือไม่ได้ลงนาม) ยาว
จำนวนเต็ม ทุ่นลอย หรือ ทุ่นความแม่นยำสองเท่า และเนื่องจากธรรมชาติเชิงวัตถุของ
PDL ชนิดข้อมูลที่กำหนดเองใหม่สามารถได้มาจากพวกเขา

เช่นเดียวกับโมดูล PDL ที่สามารถใช้ได้โดยโปรแกรม Perl ปกติ PerlDL มาพร้อมกับ a
บรรทัดคำสั่ง Perl shell เรียกว่า 'perldl' ซึ่งรองรับการแก้ไขบรรทัดคำสั่ง ใน
ร่วมกับโมดูลกราฟิก PDL ต่างๆ ซึ่งช่วยให้เล่นข้อมูลได้ง่าย
ด้วยและเห็นภาพ

การช่วยเหลือ
PDL มีเอกสารประกอบมากมาย สามารถใช้ได้ทั้งภายใน เพิร์ล or pdl2 เปลือกหอยและ
จากบรรทัดคำสั่งโดยใช้โปรแกรม "pdldoc" สำหรับข้อมูลเพิ่มเติม ให้ลองทำอย่างใดอย่างหนึ่งต่อไปนี้

pdl> ช่วยด้วย
$pdldoc

ควรมีสำเนา HTML ของเอกสารด้วย หากต้องการค้นหาตำแหน่ง ให้ลอง
ต่อไปนี้:

pdl> foreach ( แผนที่{"$_/PDL/HtmlDocs"}@INC ) { p "$_\n" if -d $_ }

Perl ประเภทข้อมูล และ อย่างไร PDL ขยาย พวกเขา
โครงสร้างข้อมูล Perl พื้นฐานคือตัวแปรสเกลาร์ เช่น $x ซึ่งสามารถเก็บตัวเลขได้
หรือสตริง รายการหรืออาร์เรย์ของสเกลาร์ เช่น @x และอาร์เรย์ที่เชื่อมโยง/แฮชของสเกลาร์
เช่น %x

Perl v5 แนะนำโครงสร้างข้อมูลและวัตถุ Perl ตัวแปรสเกลาร์อย่างง่าย $x ตอนนี้เป็น
ประเภทข้อมูลที่ผู้ใช้กำหนดหรือวัตถุเต็ม (จริงๆ แล้วมีการอ้างอิง (smart
"ตัวชี้") ไปยังสิ่งนี้ แต่ไม่เกี่ยวข้องกับการใช้ perlDL ทั่วไป)

แนวคิดพื้นฐานเบื้องหลัง perlDL คือการอนุญาตให้ $x เก็บสเปกตรัม 1D ทั้งหมดหรือ 2D
รูปภาพ ลูกบาศก์ข้อมูล 3 มิติ และอื่นๆ จนถึงชุดข้อมูล N- มิติขนาดใหญ่ เหล่านี้สามารถ
จัดการทั้งหมดในครั้งเดียว เช่น "$a = $b + 2" ดำเนินการเวกเตอร์กับแต่ละค่าใน
สเปกตรัม/ภาพ/ฯลฯ

คุณอาจถามว่า: "ทำไมไม่เพียงแค่เก็บสเปกตรัมเป็นรายการสไตล์ Perl @x อย่างง่ายกับแต่ละอัน
พิกเซลเป็นรายการหรือไม่" คำตอบหลักสองข้อนี้คือ หน่วยความจำ และ ความเร็ว. เพราะพวกเรา
รู้ว่าสเปกตรัมของเราประกอบด้วยตัวเลขบริสุทธิ์ เราสามารถเก็บมันไว้ในบล็อกเดียวได้
ของหน่วยความจำที่สอดคล้องกับอาร์เรย์ตัวเลขสไตล์ C ใช้หน่วยความจำน้อยกว่า .มาก
รายการ Perl ที่เทียบเท่า ง่ายต่อการส่งต่อหน่วยความจำนี้ไปยังการเพิ่มอย่างรวดเร็ว
รูทีนหรือฟังก์ชัน C อื่น ๆ ที่เกี่ยวข้องกับอาร์เรย์ เป็นผลให้ perlDL เป็นอย่างมาก
เร็ว --- ตัวอย่างเช่น สามารถคูณภาพ 2048*2048 ได้ในเวลาเดียวกับที่มัน
จะใช้เวลาใน C หรือ FORTRAN (0.1 วินาทีใน SPARC ของฉัน) ข้อดีอีกอย่างของสิ่งนี้ก็คือสำหรับ
การดำเนินการอย่างง่าย (เช่น "$x += 2") เราสามารถจัดการอาร์เรย์ทั้งหมดโดยไม่ต้องสนใจ
มิติของมัน

ฉันพบว่าเมื่อใช้ perlDL การนึกถึงตัวแปร Perl @x มาตรฐานเป็น . นั้นมีประโยชน์มากที่สุด
"รายการ" ของ "สิ่งของ" ทั่วไปและตัวแปร PDL เช่น $x เป็น "อาร์เรย์" ที่สามารถบรรจุได้
ในรายการหรือแฮช บ่อยครั้งในสคริปต์ perlDL ของฉันฉันมี @x มีรายการสเปกตรัม
หรือรายการรูปภาพ (หรือแม้แต่ผสม!) หรือบางทีอาจมีแฮช (เช่น %x) ของ
ภาพ... ขีด จำกัด เดียวคือหน่วยความจำ!

ตัวแปร perlDL รองรับประเภทข้อมูลหลายประเภท - อาร์เรย์สามารถเป็นไบต์ จำนวนเต็มสั้น
(มีลายเซ็นหรือไม่ได้ลงนาม) เลขจำนวนเต็มยาว ทุ่นลอย หรือทุ่นที่มีความแม่นยำสองเท่า

การใช้
PerlDL ถูกโหลดลงในสคริปต์ Perl ของคุณโดยใช้คำสั่งนี้:

ใช้ PDL; # ในสคริปต์ Perl: ใช้โมดูล perlDL มาตรฐาน

นอกจากนี้ยังมีโมดูลส่วนขยายอีกมากมาย เช่น PDL::Graphics::TriD ส่วนใหญ่เหล่านี้ (แต่
ไม่ทั้งหมดเพราะบางครั้งไม่เหมาะสม) ปฏิบัติตามอนุสัญญามาตรฐาน ถ้าคุณพูด:

ใช้ PDL::Graphics::TriD;

คุณนำเข้าทุกอย่างในรายการมาตรฐานจากโมดูล บางครั้งคุณอาจต้องการ
ไม่มีอะไรนำเข้า (เช่น หากคุณต้องการใช้ไวยากรณ์ OO ตลอดเวลาและบันทึกภาษีนำเข้า)
สำหรับสิ่งเหล่านี้คุณพูดว่า:

ใช้ PDL::Graphics::TriD qw();

และเครื่องหมายคำพูด "qw ()" ที่ว่างเปล่านั้นถือเป็นความหมาย 'ไม่มีอะไร' คุณยังสามารถระบุ a
รายการฟังก์ชันที่จะนำเข้าด้วยวิธี Perl ปกติ

นอกจากนี้ยังมีเชลล์แบบโต้ตอบ "perldl" หรือ "pdl2" ดู เพิร์ล หรือ pdl2 สำหรับรายละเอียด

ไปยัง สร้าง a ใหม่ PDL ตัวแปร
ต่อไปนี้เป็นวิธีสร้างตัวแปร PDL:

$a = pdl [1..10]; # 1D อาร์เรย์
$a = pdl (1,2,3,4); #เหมือนกัน
$a = pdl '[1 2 3 4]'; #เหมือนกัน
$b = pdl [[1,2,3],[4,5,6]]; # 2D 3x2 อาร์เรย์
$b = pdl '[1 2 3; 4 5 6]'; #เหมือนกัน
$b = pdl q[1,2,3; 4,5,6]; #เหมือนกัน
$b = pdl <
[1 2 3]
[4 5 6]
ใหม่PDL
$c = pdl q[1 -2]; # พิดเดิ้ล 2 องค์ประกอบที่มี 1 และ -2
$c = pdl q[1 - 2]; # พิดเดิ้ล 2 องค์ประกอบที่มี 1 และ -2
$b = pdl 42 # สเกลาร์ 0 มิติ
$c = pdl $a; #ทำสำเนาใหม่

$d = ไบต์ [1..10]; # ดู "การแปลงประเภท"
$e = ศูนย์ (3,2,4); # 3x2x4 อาร์เรย์ที่เติมเป็นศูนย์

$c = rfits $ไฟล์; # อ่านไฟล์ FITS

@x = ( พีดีแอล(42), ศูนย์(3,2,4), rfits($file) ); # เป็นรายการของตัวแปร PDL!

รางวัล พีดีแอล() ฟังก์ชันใช้เพื่อเริ่มต้นตัวแปร PDL จากสเกลาร์, รายการ, รายการ
การอ้างอิง ตัวแปร PDL อื่น หรือสตริงที่จัดรูปแบบอย่างเหมาะสม

นอกจากนี้ ฟังก์ชัน PDL ทั้งหมดจะแปลงสเกลาร์ Perl ปกติเป็นตัวแปร PDL โดยอัตโนมัติ
ในขณะที่บิน.

(ดูส่วน "การแปลงประเภท" และ "อินพุต/เอาต์พุต" ด้านล่างด้วย)

คณิตศาสตร์ (และ บูล นิพจน์)
$a = $b + 2; $a++; $a = $b / $c; # ฯลฯ

$c=sqrt($a); $d = บันทึก 10($b+100); #ฯลฯ

$e = $a>42; #เวกเตอร์เงื่อนไข

$e = 42*($a>42) + $a*($a<=42); #หมวกแก๊ป

$b = $a->log10 ยกเว้นใดๆ ($a <= 0); # หลีกเลี่ยงข้อผิดพลาดจุดลอยตัว

$a = $a / ( สูงสุด($a) - นาที($a) );

$f = ที่ไหน($a, $a > 10); # ที่ส่งคืน piddle ขององค์ประกอบสำหรับ
#ซึ่งเงื่อนไขเป็นจริง

พิมพ์ $a; # $a ในบริบทสตริงพิมพ์ในรูปแบบ N- มิติ

(และตัวดำเนินการ/ฟังก์ชัน Perl อื่นๆ)

เมื่อใช้ piddles ในนิพจน์เงื่อนไข (เช่น "if", "ยกเว้น" และ "while")
อนุญาตเฉพาะ piddles ที่มีเพียงหนึ่งองค์ประกอบเท่านั้น เช่น

$a = pdl (1,0,0,1);
พิมพ์ "is set" ถ้า $a->ดัชนี(2);

โปรดทราบว่าตัวดำเนินการบูลีนส่งคืน piddles แบบหลายองค์ประกอบทั่วไป ดังนั้น
ต่อไปนี้จะทำให้เกิดข้อผิดพลาด

พิมพ์ "ไม่เป็นไร" ถ้า $a > 3;

เนื่องจาก "$a > 3" เป็นพิดเดิ้ลที่มี 4 องค์ประกอบ แทนที่จะใช้ทั้งหมดหรือใดๆ เพื่อทดสอบว่าทั้งหมดหรือใดๆ ของ
องค์ประกอบเป็นไปตามเงื่อนไข:

พิมพ์ "some are > 3" ถ้ามี $a>3;
พิมพ์ "ไม่สามารถใช้ลอการิทึม" เว้นแต่ $a>0 ทั้งหมด;

นอกจากนี้ยังมีฟังก์ชันที่กำหนดไว้ล่วงหน้ามากมาย ซึ่งอธิบายไว้ใน man page อื่นๆ ตรวจสอบ
PDL::ดัชนี.

มดลูก ฟังก์ชั่น
'x' ถูกจี้เป็นตัวดำเนินการคูณเมทริกซ์ เช่น "$c = $ax $b";

perlDL เป็นแถวหลักไม่ใช่คอลัมน์หลัก ดังนั้นนี่คือ "c(i,j) = sum_k a(k,j) b(i,k)" -
แต่เมื่อพิมพ์เมทริกซ์ผลลัพธ์จะออกมาถูกต้อง เพียงจำไว้ว่าดัชนีเหล่านี้คือ
ย้อนกลับ เช่น:

$a = [ $b = [
[ 1 2 3 0] [1 1]
[ 1 -1 2 7] [0 2]
[ 1 0 0 1] [0 2]
] [1 1]
]

ให้ $c = [
[1 11]
[8 10]
[2 2]
]

หมายเหตุ ย้าย () ทำในสิ่งที่พูดและเป็นวิธีที่สะดวกในการเปลี่ยนเวกเตอร์แถวเป็น
เวกเตอร์คอลัมน์

สรุป ความน่าเชื่อถือของ Olymp Trade? ไปยัง เขียน a ง่าย ฟังก์ชัน
ผลิตภัณฑ์ย่อยย่อย {
ของฉัน ($a,$b) = @_;
ผลตอบแทนรวม($a*$b) ;
}
1;

หากใส่ในไฟล์ dotproduct.pdl จะถูกโหลดอัตโนมัติหากคุณใช้ PDL::AutoLoader (ดู
ด้านล่าง)

แน่นอนว่า ฟังก์ชันนี้มีให้ใช้งานเป็นฟังก์ชันภายในแล้ว โปรดดู PDL::Primitive

ประเภท การแปลง
ค่าเริ่มต้นสำหรับ พีดีแอล() เป็นสองเท่า การแปลงคือ:

$a = ลอยตัว($b);
$c = ยาว($d); # "long" โดยทั่วไปคือ 4 ไบต์ int
$d = ไบต์($a);

Also สองเท่า(), สั้น(), ยูชอร์ต(), ดัชนี().

หมายเหตุ: รูทีน indx() เป็นประเภทจำนวนเต็มพิเศษที่
คือขนาดที่ถูกต้องสำหรับค่าดัชนี PDL (ขนาดมิติ
ดัชนีหรือออฟเฟส) ซึ่งสามารถเป็น 32 บิต (ยาว) หรือ
ปริมาณ 64 บิต (longlong) ขึ้นอยู่กับว่า perl
สร้างขึ้นด้วยการสนับสนุน 32 บิตหรือ 64 บิต

กิจวัตรเหล่านี้ยังแปลงรายการ Perl โดยอัตโนมัติเพื่อให้สามารถจดชวเลขได้สะดวก:

$a = ไบต์ [[1..10],[1..10]]; # สร้างอาร์เรย์ 2D ไบต์
$a = ลอยตัว [1..1000]; # สร้าง 1D float array

เป็นต้น

การพิมพ์
ขยายอาร์เรย์โดยอัตโนมัติในรูปแบบ N- มิติ:

พิมพ์ $a;

$b = "คำตอบคือ = $a ";

ส่วน
PDL มีตัวดำเนินการการแบ่งส่วนและการแบ่งส่วนหลายมิติที่ทรงพลังมาก เห็น
พีดีแอล::ชิ้น(3) man page สำหรับรายละเอียด; เราจะอธิบายสิ่งที่สำคัญที่สุดที่นี่

PDL แสดงให้เห็นมรดก Perl/C ในอาร์เรย์ที่ไม่มีออฟเซ็ต ดังนั้นรูปภาพขนาด 100x100 จึงมี
ดัชนี "0" (อนุสัญญาคือว่า ศูนย์ ของพิกเซล (0,0) อยู่ที่พิกัด
(0.0,0.0) ฟังก์ชันกราฟิก PDL ทั้งหมดสอดคล้องกับคำจำกัดความนี้และซ่อนตัวเครื่องไว้
ออฟเซ็ต เช่น ไลบรารี PGPLOT FORTRAN

ตามพิกัดการประชุมปกติ (0,0) จะแสดงที่ด้านล่างซ้ายเมื่อ
การแสดงภาพ ปรากฏที่ด้านบนซ้ายเมื่อใช้ ""print $a"" เป็นต้น

การแบ่งส่วนอย่างง่ายใช้ส่วนขยายไวยากรณ์กับ Perl, PDL::NiceSlice ที่ช่วยให้คุณ
ระบุช่วงย่อยผ่านตัวแก้ไข null-method เป็น PDL:

$b = $a->($x1:$x2,$y1:$y2,($z1)); # ใช้ส่วนย่อย

ที่นี่ $a เป็นตัวแปรสามมิติ และ $b ได้ช่องตัดระนาบที่กำหนดโดย
จำกัด $x1, $x2, $y1, $y2 ที่ตำแหน่ง $z1 วงเล็บประมาณ $z1 ทำให้เกิด
ดัชนีเล็กน้อยที่จะละเว้น -- มิฉะนั้น $b จะเป็นสามมิติกับที่สาม
มิติของการสั่งซื้อ 1

คุณสามารถใส่สไลซ์ PDL ที่ด้านใดด้านหนึ่งของตัวดำเนินการกำหนดองค์ประกอบ ".=", like
ดวงอาทิตย์:

# ตั้งค่าส่วนหนึ่งของ $bigimage เป็นค่าจาก $smallimage
$bigimage->($xa:$xb,$ya:$yb) .= $smallimage;

เบ็ดเตล็ดอื่น ๆ :

$c = เนเลม($a); # จำนวนพิกเซล

$val = at($object, $x,$y,$z...) # Pixel value at position, as a Perl สเกลาร์
$val = $object->at($x,$y,$z...) # เทียบเท่า (ไวยากรณ์เมธอด ตกลง)

$b = xvals($a); # เติมอาร์เรย์ด้วยค่า X-coord (เช่น yvals(), zvals(),
# axisvals($x,$axis) และ rvals() สำหรับระยะรัศมี
#จากศูนย์)

Input / Output
โมดูล "PDL::IO" ใช้ฟังก์ชันรูปแบบ IO ที่มีประโยชน์หลายอย่าง มันจะมากเกินไป
เพื่อยกตัวอย่างของแต่ละรายการ แต่คุณสามารถหาภาพรวมที่ดีได้ที่ PDL::IO นี่คือตัวอย่าง
รูปแบบ IO ที่รองรับบางส่วนใน PDL

PDL::IO::เบ็ดเตล็ด
รูทีน Ascii, FITS และ FIGARO/NDF IO

PDL::IO::FastRaw
การใช้ประเภทข้อมูลดิบของเครื่องของคุณ IO . ที่ไม่สามารถพกพาได้ แต่เร็วจนแทบมองไม่เห็น
รูปแบบ. รองรับการแมปหน่วยความจำเพื่อประหยัดหน่วยความจำและเพิ่มความเร็ว

PDL::IO::FlexRaw
รูปแบบข้อมูลดิบทั่วไป เช่นเดียวกับ FastRaw ดีกว่าเท่านั้น

PDL::IO::เบราว์เซอร์
เบราว์เซอร์ Curses สำหรับอาร์เรย์

PDL::IO::Pnm
รองรับบิตแมป Portaple และ pixmap

PDL::IO::รูป
การใช้โมดูลก่อนหน้าและ netpbm ทำให้สามารถเขียน GIF, jpeg . ได้อย่างง่ายดาย
และอะไรก็ได้ด้วยคำสั่งง่ายๆ

กราฟิก
ปรัชญาเบื้องหลัง perlDL คือการทำให้มันทำงานกับกราฟิกที่มีอยู่ได้หลากหลาย
ห้องสมุดเนื่องจากไม่มีแพ็คเกจเดียวที่จะตอบสนองทุกความต้องการและทุกคนและสิ่งนี้ทำให้
หนึ่งเพื่อทำงานกับแพ็คเกจที่ใคร ๆ ก็รู้จักและชอบอยู่แล้ว คงจะมีบ้าง
ทับซ้อนกันในการทำงานและขาดความสม่ำเสมอและความสม่ำเสมอบางอย่าง อย่างไรก็ตามสิ่งนี้ช่วยให้
PDL เพื่อให้ทันกับการพัฒนาอย่างรวดเร็ว - โมดูล PDL ล่าสุดมีอินเทอร์เฟซ
สู่กราฟิก OpenGL และ VRML!

PDL::กราฟิก::PGPLOT
PGPLOT มีไลบรารี่ที่เรียบง่ายสำหรับการแสดงภาพและกราฟิกแบบเส้น

มีอินเทอร์เฟซที่ง่ายสำหรับสิ่งนี้ในโมดูลภายใน PDL::Graphics::PGPLOT ซึ่ง
เรียกใช้งานประจำในโมดูลระดับบนสุดของ PGPLOT ที่มีจำหน่ายแยกต่างหาก

PDL::กราฟิก::PLplot
PLplot มีไลบรารี่อย่างง่ายสำหรับการสร้างกราฟิกที่มีไดรเวอร์เอาท์พุตหลายตัว
รวมถึงคนขับตรงสู่พิดเดิล

โมดูลนี้มีทั้งฟังก์ชันระดับสูงและระดับต่ำที่สร้างขึ้นบน PLplot ดิ
คำสั่งระดับต่ำค่อนข้างเชื่อมโยงโดยตรงกับอินเทอร์เฟซ C ของ PLplot อ่านเพิ่มเติม
ที่ PDL::Graphics::PLplot.

PDL::กราฟิก::IIS
นักดาราศาสตร์หลายคนชอบใช้ SAOimage และ Ximtool (หรือมีการสืบทอด/โคลน) เหล่านี้
เป็นวิดเจ็ตฟรีที่มีประโยชน์สำหรับการตรวจสอบและการแสดงภาพ (พวกเขาจะไม่
มาพร้อมกับ perlDL แต่สามารถรับได้ง่าย ๆ จากเว็บไซต์ทางการของพวกเขาจาก
สุทธิ.)

แพ็คเกจ PDL::Graphics::IIS อนุญาตให้แสดงภาพในรูปแบบเหล่านี้ ("IIS"
เป็นชื่อของฮาร์ดแวร์แสดงภาพโบราณที่มีโปรโตคอลเครื่องมือเหล่านี้
ตรงตาม)

PDL::กราฟิก::TriD
ดู PDL::Graphics::TriD นี่คือชุดของรูทีน 3 มิติสำหรับ OpenGL และ (เร็วๆ นี้)
VRML และรูปแบบ 3D อื่นๆ ที่อนุญาตให้ใช้จุด เส้น และแผนผังพื้นผิว 3 มิติจาก PDL

โหลดอัตโนมัติ
ดู PDL::AutoLoader สิ่งนี้ทำให้สามารถโหลดฟังก์ชั่นอัตโนมัติได้ตามความต้องการบางที
คุ้นเคยกับผู้ใช้ MatLab

หนึ่งยังสามารถเขียนส่วนขยาย PDL เป็นโมดูล Perl ปกติ

PDL เปลือกหอย
สคริปต์ Perl "pdl2" (หรือ "perldl") จัดเตรียมอินเทอร์เฟซบรรทัดคำสั่งอย่างง่ายให้กับ PDL ถ้า
โมดูล Readlines/ReadKey ล่าสุดได้รับการติดตั้งแล้ว "pdl2" ตรวจพบสิ่งนี้และเปิดใช้งาน
การเรียกคืนและแก้ไขบรรทัดคำสั่ง ดูหน้าคนสำหรับรายละเอียด

เช่น:

% เปอร์เดิล
เชลล์ perlDL v1.354
PDL มาพร้อมกับการรับประกันอย่างไม่มีเงื่อนไข ดูรายละเอียดที่ไฟล์
'คัดลอก' ในการแจกจ่าย PDL นี่เป็นซอฟต์แวร์ฟรีและคุณ
ยินดีที่จะแจกจ่ายซ้ำภายใต้เงื่อนไขบางประการ ดู
ไฟล์เดียวกันสำหรับรายละเอียด
ReadLines, NiceSlice, เปิดใช้งาน MultiLines
กำลังอ่าน PDL/default.perldlrc...
พบฐานข้อมูลเอกสาร /home/pdl/dev/lib/perl5/site_perl/PDL/pdldoc.db
พิมพ์ 'help' เพื่อขอความช่วยเหลือออนไลน์
พิมพ์ 'สาธิต' สำหรับการสาธิตออนไลน์
โหลด PDL v2.4.9_003 แล้ว (รองรับค่าที่ไม่ถูกต้อง)
pdl> $x = rfits 'm51.fits'
กำลังอ่านข้อมูล IMAGE...
BITPIX = ขนาด 32 = 147456 พิกเซล
กำลังอ่าน 589824 ไบต์
BSCALE = && BZERO =

pdl> ใช้ PDL::Graphics::PGPLOT;
pdl> ภาพ $x
กำลังแสดงภาพ 384 x 384 จาก 40 เป็น 761 ใช้ 84 สี (16-99)...

คุณยังสามารถเรียกใช้ได้จากดีบักเกอร์ Perl ("perl -MPDL -d -e 1") หากคุณต้องการ

คุณสมบัติของเชลล์เบ็ดเตล็ด:

p เชลล์นามแฝง "p" เป็นรูปแบบสั้น ๆ ที่สะดวกของ "พิมพ์" เช่น

pdl> p คน 5,3
[
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
]

การเขียนอักษรย่อ
ไฟล์ "~/.perldlrc" และ "local.perldlrc" (ในไดเร็กทอรีปัจจุบัน) มีที่มา if
พบ. สิ่งนี้ทำให้ผู้ใช้สามารถมีรหัส PDL ทั่วโลกและในเครื่องสำหรับการเริ่มต้น

การช่วยเหลือ
พิมพ์ 'ช่วย'! หนึ่งสามารถค้นหาเอกสาร PDL และค้นหาเอกสารใด ๆ
ฟังก์ชัน

หนี
บรรทัดใดๆ ที่ขึ้นต้นด้วยอักขระ "#" จะถือเป็นการยกเว้นของเชลล์ ตัวละครนี้
สามารถกำหนดค่าได้โดยการตั้งค่าตัวแปร Perl $PERLDL_ESCAPE สิ่งนี้สามารถ ตัวอย่างเช่น
อยู่ใน "~/.perldlrc".

เกินพิกัด ผู้ประกอบการ
ตัวดำเนินการและฟังก์ชัน Perl ในตัวต่อไปนี้ได้รับการโอเวอร์โหลดเพื่อทำงานบน PDL
ตัวแปร

+ - * / > < >= <= << >> & | ^ == != <=> ** % ! ~
บาปล็อก abs atan2 sqrt cos exp

[ฟังก์ชั่นเอกภาพทั้งหมด (บาป ฯลฯ) สามารถใช้ได้กับ ในสถานที่() - ดู "หน่วยความจำ" ด้านล่าง]

การวางแนววัตถุ และ เพิร์ลดีแอล
การทำงานของ PDL มีอยู่ในฟังก์ชันและวิธีการ ดังนั้นเราสามารถได้รับ .รูปแบบใหม่
วัตถุ เพื่อแสดงคลาสข้อมูลที่กำหนดเอง

การใช้การโอเวอร์โหลดจะทำให้ตัวดำเนินการทางคณิตศาสตร์ทำทุกอย่างที่คุณต้องการและ PDL
มีกลเม็ดในตัวที่ช่วยให้ฟังก์ชัน PDL ที่มีอยู่ทำงานไม่เปลี่ยนแปลง แม้ว่า
การแสดงข้อมูลพื้นฐานมีการเปลี่ยนแปลงอย่างมากมาย! ดู PDL::Objects

หน่วยความจำ การใช้ และ การอ้างอิง
การยุ่งกับอาร์เรย์ข้อมูลขนาดใหญ่อาจต้องได้รับการดูแลเป็นพิเศษ perlDL ให้จำนวนมาก
เพื่อให้คุณดำเนินการกับอาร์เรย์ขนาดใหญ่โดยไม่ต้องสร้างสำเนาเพิ่มเติม
แม้ว่าจะต้องใช้ความคิดและการดูแลเอาใจใส่จากโปรแกรมเมอร์มากกว่านี้

หมายเหตุ: ในบางระบบส่วนใหญ่จะกำหนดค่า Perl (ระหว่างตัวเลือกการสร้าง) เป็น
ใช้ฟังก์ชันระบบ "malloc ()" แทนฟังก์ชันในตัวของ Perl นี่เป็นเพราะของ Perl's
หนึ่งได้รับการปรับให้เหมาะสมสำหรับความเร็วมากกว่าการใช้หน่วยความจำเสมือน - ซึ่งอาจส่งผลให้
ปัจจัยสองประการในการปรับปรุงปริมาณพื้นที่จัดเก็บหน่วยความจำที่คุณสามารถใช้ได้ The Perl malloc
ใน 5.004 และใหม่กว่านั้นมีตัวเลือกเวลาคอมไพล์จำนวนหนึ่งที่คุณสามารถใช้เพื่อปรับแต่ง
พฤติกรรม.

เลขคณิตอย่างง่าย
หาก $a เป็นภาพขนาดใหญ่ (เช่นครอบครอง 10MB) แสดงว่าคำสั่ง

$a = $a + 1;

กินหน่วยความจำอีก 10MB นี่เป็นเพราะนิพจน์ "$a+1" สร้าง a
สำเนาชั่วคราวของ $a เพื่อเก็บผลลัพธ์ จากนั้น $a จะได้รับการอ้างอิงถึงสิ่งนั้น
หลังจากนี้ $a ดั้งเดิมจะถูกทำลายดังนั้นจึงไม่มี ถาวร หน่วยความจำเสีย แต่เมื่อ
เครื่องขนาดเล็ก การเติบโตของหน่วยความจำได้มาก มันคือ
เห็นได้ชัดว่าทำเช่นนี้เพื่อให้ "$c=$a+1" ทำงานได้ตามที่คาดไว้

นอกจากนี้ถ้าใครพูดว่า:

$b = $a; # $b และ $a ชี้ไปที่ข้อมูลเดียวกัน
$a = $a + 1;

จากนั้น $b และ $a กลับกลายเป็นคนละเรื่องกัน อย่างที่ใครๆ คาดคิดไว้ เพราะมีการอ้างอิงใหม่
ถูกสร้างขึ้นและ $a ถูกกำหนดให้กับมัน

อย่างไรก็ตาม ถ้า $a เป็นหน่วยความจำขนาดใหญ่ (เช่น วอลุ่ม 3 มิติ) การสร้างสำเนาอาจไม่เป็นเช่นนั้น
จะเป็นสิ่งที่ดี เราสามารถหลีกเลี่ยงหน่วยความจำโอเวอร์เฮดในตัวอย่างข้างต้นได้โดยพูดว่า:

$a++;

การดำเนินการ "++,+=,--,-=" เป็นต้น ทั้งหมดเรียกเวอร์ชันพิเศษ "แทนที่"
รูทีนย่อยทางคณิตศาสตร์ ซึ่งหมายความว่าไม่จำเป็นต้องใช้หน่วยความจำอีกต่อไป - ข้อเสียของสิ่งนี้คือ
ว่าถ้า "$b=$a" แล้ว $b ก็จะเพิ่มขึ้นเช่นกัน ในการบังคับคัดลอกอย่างชัดเจน:

$b = pdl $a; #สำเนาจริง

หรืออีกทางหนึ่งคือสไตล์ที่ดีกว่า:

$b = $a->คัดลอก;

ฟังก์ชั่น
ฟังก์ชันส่วนใหญ่ เช่น "log()" ส่งคืนผลลัพธ์ซึ่งเป็นการเปลี่ยนแปลงของ
การโต้เถียง. สิ่งนี้ทำให้แนวทางการเขียนโปรแกรมที่ดี การดำเนินการหลายอย่างสามารถทำได้
เสร็จสิ้น "ในตำแหน่ง" และอาจจำเป็นเมื่อมีการใช้งานอาร์เรย์ขนาดใหญ่และหน่วยความจำอยู่ที่
พรีเมี่ยม สำหรับสถานการณ์เหล่านี้ผู้ประกอบการ ในสถานที่() มีไว้เพื่อป้องกันไม่ให้
สำเนาพิเศษและอนุญาตให้แก้ไขอาร์กิวเมนต์ เช่น:

$x = บันทึก($array); # $array ไม่ได้รับผลกระทบ
บันทึก (แทนที่($bigarray) ); # $bigarray ถูกเปลี่ยนใน situ

คำเตือน:

1. มีการใช้คำเตือนตามปกติเกี่ยวกับการอ้างอิงที่ซ้ำกัน

2. เห็นได้ชัดว่าเมื่อใช้กับฟังก์ชันบางอย่างที่ไม่สามารถนำไปใช้ในแหล่งกำเนิดได้ (เช่น
"convolve()") เอฟเฟกต์ที่ไม่คาดคิดอาจเกิดขึ้น! เราพยายามระบุ "inplace()"-safe
หน้าที่ในเอกสาร

3. การแปลงประเภท เช่น "float()" อาจทำให้เกิดการคัดลอกที่ซ่อนอยู่

การสร้างความมั่นใจ ความขี้เล่น
หากคุณเคยเขียนฟังก์ชันง่ายๆ และไม่อยากให้หน้าพังถ้าคุณ
ส่งผ่านตัวเลขอย่างง่ายแทนที่จะเป็นตัวแปร PDL เพียงเรียกใช้ฟังก์ชัน ท็อปเดิล() เป็นครั้งแรก
เพื่อให้ปลอดภัย เช่น:

myfiddle ย่อย { my $pdl = topdl(shift); $pdl->fiddle_foo(...); ... }

"topdl()" จะไม่ทำการคัดลอกหากตัวแปร pdl ถูกส่งผ่าน - มันก็แค่ผ่าน -
ซึ่งเป็นพฤติกรรมที่ต้องการอย่างเห็นได้ชัด กิจวัตรไม่จำเป็นตามปกติ
ฟังก์ชั่นที่ผู้ใช้กำหนดซึ่งไม่สนใจเรื่องภายใน

ใช้ PDL::QuickStartp ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    iReport-Designer สำหรับ JasperReports
    iReport-Designer สำหรับ JasperReports
    หมายเหตุ: การสนับสนุน iReport/Jaspersoft Studio
    ประกาศ: ณ เวอร์ชัน 5.5.0,
    Jaspersoft Studio จะเป็นทางการ
    ออกแบบไคลเอนต์สำหรับ JasperReports iReport
    จะ...
    ดาวน์โหลด iReport-Designer สำหรับ JasperReports
  • 2
    โพสต์ตัวติดตั้งF
    โพสต์ตัวติดตั้งF
    PostInstallerF จะติดตั้งทั้งหมด
    ซอฟต์แวร์ที่ Fedora Linux และอื่นๆ
    ไม่รวมโดยค่าเริ่มต้นหลังจาก
    ใช้งาน Fedora เป็นครั้งแรก มันคือ
    ง่ายสำหรับ...
    ดาวน์โหลด PostInstallerF
  • 3
    สเตรซ
    สเตรซ
    ย้ายโครงการ strace ไปที่
    https://strace.io. strace is a
    วินิจฉัย แก้จุดบกพร่อง และการสอน
    ตัวติดตามพื้นที่ผู้ใช้สำหรับ Linux มันถูกใช้
    เพื่อเฝ้าติดตามก...
    ดาวน์โหลด
  • 4
    gMKVExtractGUI
    gMKVExtractGUI
    GUI สำหรับยูทิลิตี้ mkvextract (ส่วนหนึ่งของ
    MKVToolNix) ซึ่งรวมเอาส่วนใหญ่ (ถ้า
    ไม่ใช่ทั้งหมด) ฟังก์ชันของ mkvextract และ
    โปรแกรมอรรถประโยชน์ mkvinfo เขียนใน C#NET 4.0,...
    ดาวน์โหลด gMKVExtractGUI
  • 5
    ห้องสมุด JasperReports
    ห้องสมุด JasperReports
    ห้องสมุด JasperReports คือ
    โอเพ่นซอร์สที่ได้รับความนิยมมากที่สุดในโลก
    ข่าวกรองธุรกิจและการรายงาน
    เครื่องยนต์. มันเขียนด้วยภาษา Java . ทั้งหมด
    และสามารถ...
    ดาวน์โหลดไลบรารี JasperReports
  • 6
    หนังสือปั่น
    หนังสือปั่น
    Frappe Books เป็นโอเพ่นซอร์สฟรี
    ซอฟต์แวร์ทำบัญชีเดสก์ท็อปที่
    เรียบง่ายและออกแบบมาอย่างดีเพื่อใช้โดย
    ธุรกิจขนาดเล็กและฟรีแลนซ์ มัน'...
    ดาวน์โหลดหนังสือ Frappe
  • เพิ่มเติม»

คำสั่ง Linux

Ad