PDL::MATLABp - Bulutta Çevrimiçi

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen PDL::MATLABp komutudur.

Program:

ADI


PDL::MATLAB - MATLAB kullanıcıları için bir kılavuz.

TANITIM


MATLAB kullanıcısıysanız bu sayfa tam size göre. arasındaki temel farkları açıklar.
MATLAB ve PDL mümkün olduğunca çabuk başlamanıza yardımcı olur.

Bu belge is değil a öğretici. Bunun için PDL::QuickStart'a gidin. Bu belge
tamamlar MATLAB ve MATLAB arasındaki temel farkları vurguladığı için Hızlı Başlangıç ​​kılavuzu
PDL.

Perl


MATLAB ve PDL arasındaki temel fark, Perl.

Perl, ücretsiz olarak kullanılabilen binlerce modül içeren genel amaçlı bir programlama dilidir.
internette. PDL, Perl'in bir uzantısıdır. Bu, PDL programlarının daha fazla özelliğe erişmesini sağlar
çoğu sayısal aracın hayal edebileceğinden daha fazla. Aynı zamanda, aralarındaki çoğu sözdizimi farkı
MATLAB ve PDL, Perl temelinin bir sonucudur.

Sen do değil var için öğrenmek çok Perl için be etkili ile PDL. Ama öğrenmek istersen
Perl, çevrimiçi olarak mükemmel belgeler mevcut (http://perldoc.perl.org>) veya
"perldoc perl" komutuyla. Ayrıca yeni başlayanlar için bir portal var.
(<http://perl-begin.org>).

Perl'in modül deposuna CPAN (http://www.cpan.org>) ve çok çeşitli
modüller. Daha fazla bilgi için "perldoc cpan"ı çalıştırın.

TERMİNOLOJİ: OYALANMAK


MATLAB tipik olarak vektörleri, matrisleri ve dizileri ifade eder. Perl'de zaten diziler var ve
"vektör" ve "matris" terimleri tipik olarak bir ve iki boyutlu koleksiyonları ifade eder.
veri. Nesnelerini tanımlamak için iyi bir terime sahip olmayan PDL geliştiricileri, terimi icat etti.
"oyalanmak" veri türlerine bir isim vermek için.

A oyalanmak N boyutlu bir veri seti olarak düzenlenen bir dizi sayıdan oluşur. kürekler
büyük N-boyutlu matrislerin verimli depolanmasını ve hızlı hesaplanmasını sağlar. Onlar
sayısal çalışma için son derece optimize edilmiştir.

Daha fazla bilgi için bakınız "kürekler vs Perl Diziler" daha sonra bu belgede.

KOMUT PENCERE VE IDE


MATLAB'den farklı olarak, PDL özel bir IDE ile birlikte gelmez. Bununla birlikte, bir
etkileşimli kabuk ve PDL programları geliştirmek için bir Perl IDE kullanabilirsiniz.

PDL interaktif kabuk
Etkileşimli kabuğu başlatmak için bir terminal açın ve "perldl" veya "pdl2" çalıştırın. MATLAB'da olduğu gibi,
etkileşimli kabuk, dili öğrenmenin en iyi yoludur. Kabuktan çıkmak için şunu yazın
"çıkış", tıpkı MATLAB gibi.

Yazı Yazmak PDL programlar
Perl için bir popüler IDE Padre (http://padre.perlide.org>). çapraz
platformu ve kullanımı kolay.

Ne zaman bağımsız bir PDL programı yazsanız (yani "perldl" veya "pdl2" kabuğunun dışında)
programı "use PDL;" ile başlatmalısınız. Bu komut, PDL modülünü içeri aktarır.
Perl. İşte örnek bir PDL programı:

PDL'yi kullanın; # Ana PDL modülünü içe aktarın.
PDL::NiceSlice kullanın; # Ek PDL modülünü içe aktarın.
PDL::AutoLoader'ı kullanın; # Ek PDL modülünü içe aktarın.

$b = pdl [2,3,4]; # İfadeler noktalı virgülle biter.
$A = pdl [ [1,2,3],[4,5,6] ]; # 2 boyutlu matris.

$A x $b->devrimi yazdır;

Bu dosyayı "myprogram.pl" olarak kaydedin ve şununla çalıştırın:

perl programım.pl

Yeni: Esnek sözdizimi
PDL'nin mevcut sürümlerinde (sürüm 2.4.7 veya üstü), esnek bir matris sözdizimi vardır.
MATLAB'a son derece benzer görünebilir:

1) Bir ';' kullanın satırları sınırlamak için:

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

2) Öğeleri ayırmak için boşluk kullanın:

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

Temel olarak, açılış braketinin önüne bir "q" koyduğunuz sürece, PDL "ne yaparsa yapmalıdır"
Demek istediğin". Böylece senin için daha rahat olan bir sözdizimi yazabilirsin.

MODÜLLER İÇİN MATLAB KULLANICILARI


MATLAB kullanıcılarının kullanmak isteyeceği iki modül vardır:

PDL::GüzelDilim
PDL'ye dilimler (alt matrisler) için daha kısa ve daha tanıdık olan bir sözdizimi verir.
MATLAB kullanıcıları.

% MATLAB
b(1:5) --> b öğesinden ilk 5 öğeyi seçer.

# NiceSlice olmadan PDL
$b->slice("0:4") --> $b öğesinden ilk 5 öğeyi seçer.

# NiceSlice ile PDL
$b(0:4) --> $b öğesinden ilk 5 öğeyi seçer.

PDL::Otomatik Yükleyici
PDL için MATLAB tarzı bir otomatik yükleyici sağlar. Bilinmeyen bir işlev "foo()" çağrılırsa,
PDL, "foo.pdl" adlı bir dosya arar. Bulursa okur.

KLASİK ÖZELLİKLER


Bu bölüm, PDL'nin sözdiziminin MATLAB'den nasıl farklı olduğunu açıklar. Çoğu MATLAB kullanıcısı,
buradan başlayın.

genel "anladım"
Endeksler
PDL'de, endeksler 0 (MATLAB veya FORTRAN gibi) değil '1' (C ve Java gibi) ile başlar. İçin
örneğin, $b 5 elemanlı bir diziyse, elemanlar 0'dan
4.

Bir nesneyi görüntüleme
MATLAB normalde nesne içeriğini otomatik olarak görüntüler. Görüntülediğiniz PDL kabuklarında
"yazdır" komutu veya "p" kısayolu ile açıkça nesneler:

MATLAB:

>> bir = 12
bir = 12
>> b = 23; % Çıktıyı bastır.
>>

PDL Kabuğu (perldl veya pdl2):

pdl> $a = 12 # Çıktı yok.
pdl> $a yazdır # Nesne yazdır.
12
pdl> p $a # "p", kabuktaki "yazdır"ın kısa yoludur.
12
pdl>

Oluşturma kürekler
PDL'deki Değişkenler
Değişkenler her zaman '$' işaretiyle başlar.

MATLAB: değer = 42
PerlDL: $değer = 42

Temel sözdizimi
Yeni bir tane oluşturmak için "pdl" yapıcısını kullanın. oyalanmak.

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

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

basit matrisler
MATLAB PDL'si
------ ------
Bunların matrisi olanlar(5) olanlar 5,5
sıfır matrisi sıfırlar(5) sıfırlar 5,5
Rastgele matris tüm(5) rastgele 5,5
Doğrusal vektör 1:5 dizisi 5

PDL'de bir işlev çağrısındaki parantezlerin genellikle isteğe bağlı olduğuna dikkat edin. Bu
olası belirsizliklere karşı dikkatli olmak önemlidir. Örneğin:

pdl> p sıfırlar 2, 2 + 2

Bu "sıfır(2,2) + 2" olarak mı yoksa "sıfır 2, (2+2)" olarak mı yorumlanmalıdır? Her ikiside
geçerli ifadeler:

pdl> p sıfırlar(2,2) + 2
[
[2 2]
[2 2]
]
pdl> p sıfırlar 2, (2+2)
[
[0 0]
[0 0]
[0 0]
[0 0]
]

Perl'in öncelik sırasını ezberlemeye çalışmak yerine, kullanmak en iyisidir.
kodunuzu net hale getirmek için parantezler.

Doğrusal aralıklı diziler
MATLAB: >> linspace(2,10,5)
an = 2 4 6 8 10

PerlDL: pdl> p sıfır(5)->xlinvals(2,10)
[2 4 6 8 10]

açıklama: 1 elemanlı 5 boyutlu bir yığınla başlayın ve eşit olarak verin
2'den 10'a kadar aralıklı değerler.

MATLAB bunun için tek bir işlev çağrısına sahiptir. Öte yandan, PDL'nin yöntemi daha
esnek:

pdl> p sıfırlar(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 sıfırlar(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 sıfırlar(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]
]
]

Dilimleme ve indeksler
Bir veri koleksiyonundan bir alt kümenin çıkarılması olarak bilinir. dilimleme. PDL ve MATLAB
dilimleme için benzer bir sözdizimine sahiptir, ancak iki önemli fark vardır:

1) PDL endeksleri, C ve Java'da olduğu gibi 0'dan başlar. MATLAB endeksleri 1'den başlatır.

2) MATLAB'da "satırlar ve sütunlar" düşünürsünüz. PDL'de "x ve y"yi düşünün.

MATLAB PerlDL
------ ------
>> Bir pdl> p $A
bir = [
1 2 3 [1 2 3]
4 5 6 [4 5 6]
7 8 9 [7 8 9]
]
-------------------------------------------------- -----
(satır = 2, sütun = 1) (x = 0, y = 1)
>> A(2,1) pdl> p $A(0,1)
an = [
4 [4]
]
-------------------------------------------------- -----
(satır = 2 ila 3, sütun = 1 ila 2) (x = 0 ila 1, y = 1 ila 2)
>> A(2:3,1:2) pdl> p $A(0:1,1:2)
an = [
4 5 [4 5]
7 8 [7 8]
]

uyarı
Bağımsız bir PDL programı yazdığınızda, PDL::NiceSlice'ı dahil etmeniz gerekir.
modül. Önceki bölüme bakın "MODÜLLER İÇİN MATLAB KULLANICILARI" daha fazlası için
bilgiler.

PDL'yi kullanın; # Ana PDL modülünü içe aktarın.
PDL::NiceSlice kullanın; # Dilimleme için güzel sözdizimi.
PDL::AutoLoader'ı kullanın; # MATLAB benzeri otomatik yükleyici.

$A = rastgele 4,4;
$A(0,1) yazdır;

Matris Operasyon
Matris çarpımı
MATLAB: A*B
PerlDL: $A x $B

eleman bazında çarpma
MATLAB: A.* B
PerlDL: $A * $B

aktarmak
MATLAB: A'
PerlDL: $A->devir

fonksiyonlar o toplam veri
Bazı işlevler ("toplam", "maks" ve "min" gibi) N boyutlu bir veri kümesi için verileri toplar.
Bu, MATLAB ve PDL'nin farklı bir yaklaşım benimsediği bir yerdir:

MATLAB'da bu işlevlerin tümü tek bir boyut boyunca çalışır.
>> A = [ 1,5,4 ; 4,2,1 ]
bir = 1 5 4
+4 2 1
>> maks(A)
an = 4 5 4
>> maks(A')
an = 5 4

Tüm veri seti için maksimumu istiyorsanız, özel A(:) kullanabilirsiniz.
Temel olarak tüm veri setini tek bir 1 boyutlu hale getiren gösterim
vektör.

>> maks(A(:))
an = 5
>> A = birler(2,2,2,2)
>> maks(A(:))
an = 1

PDL, her özellik için iki işlev sunar.
toplam vs toplama
ortalamaya karşı ortalama
maksimum vs maksimum
minimum vs minimum

The ve kazandırdı isim bir boyut üzerinde çalışırken, kısa isim baştan sona çalışır
oyalanmak.

pdl> p $A = pdl [ [1,5,4] , [4,2,1] ]
[
[1 5 4]
[4 2 1]
]
pdl> p $A->maksimum
[5 4]
pdl> p $A->devir->maksimum
[4 5 4]
pdl> p $A->maks
5
pdl> p birler(2,2,2)->maks
1
pdl> p birler(2,2,2,2)->maks
1

not MATLAB dikey olarak toplanırken PDL'nin yatay olarak toplandığına dikkat edin. Diğer
kelimeler:

MATLAB PerlDL
max(A) == $A->devir->maksimum
max(A') == $A->maksimum

İPUCU: MATLAB'da "satırlar ve sütunlar" düşünürsünüz. PDL'de "x ve y"yi düşünün.

Daha yüksek boyutlu veri setleri
İlgili bir konu, MATLAB ve PDL'nin daha yüksek boyutlu veri kümelerini nasıl anladığıdır. MATLAB (önceki değeri)
1B vektörler ve 2B matrisler için tasarlanmıştır. Daha yüksek boyutlu nesneler ("ND dizileri")
üstüne eklendi. Buna karşılık, PDL başlangıçtan itibaren N-boyutlu kürekler için tasarlanmıştır. Bu
MATLAB'da PDL'de oluşmayan birkaç sürprize yol açar:

MATLAB, bir vektörü 2B matris olarak görür.
MATLAB PerlDL
------ ------
>> vektör = [1,2,3,4]; pdl> $vektör = pdl [1,2,3,4]
>> size(vektör) pdl> p $vektör->karartır
an = 1 4 4

MATLAB, "[1,2,3,4]" ifadesini 2B matris (1x4 matris) olarak görür. PDL bunu 1 boyutlu bir vektör olarak görüyor: A
tek boyut 4.

Ancak MATLAB, 4x1x1 matrisinin son boyutunu yok sayar.
MATLAB PerlDL
------ ------
>> A = birler(4,1,1); pdl> $A = birler 4,1,1
>> size(A) pdl> p $A->karartır
an = 4 1 4 1 1

MATLAB, 4x1x1 matrisini 1x1x4 matrisinden farklı şekilde ele alır.
MATLAB PerlDL
------ ------
>> A = birler(1,1,4); pdl> $A = birler 1,1,4
>> size(A) pdl> p $A->karartır
cevap = 1 1 4 1 1 4

MATLAB, ND dizileri için doğrudan sözdizimine sahip değildir.
pdl> $A = pdl [[[1,2,3],[4,5,6]], [[2,3,4],[5,6,7]] ]
pdl> p $A->karartır
+3 2 2

Özellik desteği.
MATLAB'de seyrek matris desteği gibi bazı özellikler ND için mevcut değildir.
diziler. PDL'de, 1D ve 2D piddle'lar tarafından desteklenen hemen hemen her özellik, aynı
N boyutlu kürekler tarafından desteklenir. Genellikle bir ayrım yoktur.

döngü yapılar
Perl'in birçok döngü yapısı vardır, ancak biz sadece en tanıdık olanı göstereceğiz.
MATLAB kullanıcıları:

MATLAB PerlDL
------ ------
i için = 1:10 için $i (1..10) {
disp(i) $i yazdır
son }

not Sayısal çalışma için asla for döngülerini kullanmayın. Perl'in for döngüleri MATLAB'lardan daha hızlıdır,
ama ikisi de "vektörlü" bir operasyon karşısında solgun. PDL'nin birçok aracı vardır.
vektörleştirilmiş programların yazılmasını kolaylaştırır. Bunlar bu kılavuzun kapsamı dışındadır. NS
daha fazla bilgi edinin, bkz.: PDL::Dizin Oluşturma, PDL::İş parçacığı oluşturma ve PDL::PP.

Benzer şekilde, bir for-döngüsü dışında bile sayısal çalışma için asla 1..10 kullanmayın. 1..10 bir
Perl dizisi. Perl dizileri hız için değil, esneklik için tasarlanmıştır. Kullanmak kürekler yerine.
Daha fazla bilgi edinmek için sonraki bölüme bakın.

kürekler vs Perl Diziler
arasındaki farkı not etmek önemlidir. Oyalanmak ve bir Perl dizisi. Perl'de bir
her tür öğeyi tutabilen genel amaçlı dizi nesnesi:

@perl_array = 1..10;
@perl_array = (12, "Merhaba");
@perl_array = ( 1, 2, 3, \@başka_perl_array, dizi(5));

Perl dizileri, güçlü veri yapıları oluşturmanıza izin verir (bkz. Veri yapılar altında), fakat
onlar vardır değil tasarlanmış için sayısal . Bunun için kullanın kürekler:

$pdl = pdl [ 1, 2, 3, 4 ];
$pdl = dizi 10_000_000;
$pdl = 600, 600;

Örneğin:

$puan = pdl 1..10_000_000 # 4.7 saniye
$puan = sıra 10_000_000 # milisaniye

İPUCU: Rakamlarda alt çizgi kullanabilirsiniz ("10_000_000", 10000000'den daha iyi okunur).

Şartlılar
Perl'de birçok koşul cümlesi vardır, ancak biz sadece MATLAB'a en aşina olanı göstereceğiz.
kullanıcılar:

MATLAB PerlDL
------ ------
if değeri > MAX if ($değeri > $MAX) {
disp("Çok büyük") print "Çok büyük\n";
elseif değeri < MIN } elsif ($değeri < $MIN) {
disp("Çok küçük") print "Çok küçük\n";
başka } başka {
disp("Mükemmel!") print "Mükemmel!\n";
son }

not İşte bir "aldım":

MATLAB: başka bir şey
PerlDL: elif

Koşulunuz bir sözdizimi hatası veriyorsa, "elsif"lerinizi yazdığınızı kontrol edin.
doğru şekilde.

Timtowdi (Orası Is Daha Fazla göre Bir yol için Do Bilişim Teknoloji)
PDL ve diğer araçlar arasındaki en ilginç farklardan biri ifade gücüdür.
Perl dilinden. TIMTOWDI veya "Bunu Yapmanın Birden Fazla Yolu Var", Perl'in sloganıdır.

Perl bir dilbilimci tarafından yazılmıştır ve tanımlayıcı özelliklerinden biri de ifadelerin
dile daha doğal bir his vermek için farklı şekillerde formüle edilmelidir. örneğin, sen
bir arkadaşınıza söylemeniz olası değildir:

"Bitirmesem de çalışmaya devam edeceğim."

İnsan dili bundan daha esnektir. Bunun yerine, şunları söylemeniz daha olasıdır:

"Bitirinceye kadar çalışmaya devam edeceğim."

Dilsel kökleri nedeniyle Perl, bu tür bir programlama diline sahip tek programlama dilidir.
esneklik. Örneğin, Perl'in geleneksel while döngüleri ve if ifadeleri vardır:

while ( ! bitti() ) {
Çalışmaya devam et();
}

if ( !wife_angry() ) {
öpücük_eş();
}

Ama aynı zamanda alternatif sunuyor kadar ve olmadıkça ifadeleri:

( bitene kadar() ) {
Çalışmaya devam et();
}

sürece ( wife_angry() ) {
öpücük_eş();
}

Ve Perl, "postfix" biçiminde döngüler ve koşullar yazmanıza izin verir:

Keep_working() bitene kadar();

kiss_wife(), eğer wife_angry();

Bu şekilde, Perl genellikle olduğundan daha doğal, anlaşılması kolay kod yazmanıza izin verir.
daha kısıtlayıcı programlama dillerinde mümkündür.

fonksiyonlar
PDL'nin işlevleri bildirmek için sözdizimi MATLAB'lardan önemli ölçüde farklıdır.

MATLAB PerlDL
------ ------
function retval = foo(x,y) alt foo {
retval = x.**2 + x.*y benim ($x, $y) = @_;
işlev sonu dönüşü $x**2 + $x*$y;
}

Tüm yeni sözdizimi sizi korkutmasın. İşte bir fonksiyon üzerinden hızlı bir çalışma
PDL'deki beyan:

1) "alt", "alt program" anlamına gelir.

2) "my" değişkenleri işlev için yerel olarak bildirir.

3) "@_" tüm fonksiyon parametrelerini tutan özel bir Perl dizisidir.
işlevleri yapmanın garip bir yolu gibi, ancak
değişken sayıda parametre. Örneğin, aşağıdaki işlev herhangi bir sayıda
parametreleri ve bunları bir araya ekler:

alt mysum {
benim ($i, $toplam) = (0, 0);
$i (@_) { için
$toplam += $i;
}
toplam $ döndür;
}

4) Sözdizimini kullanarak aynı anda birkaç değişkene değer atayabilirsiniz:

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

Yani, önceki örneklerde:

# Bu, iki yerel değişken bildirir ve bunları 0 olarak başlatır.
benim ($i, $toplam) = (0, 0);

# Bu, @_ öğesinin ilk iki öğesini alır ve bunları $x ve $y öğelerine yerleştirir.
benim ($x, $y) = @_;

5) "dönüş" ifadesi, varsa işlevin dönüş değerini verir.

EK ÖZELLİKLER


ASCII fileto IO
Boşlukla ayrılmış sayı sütunlarını içeren veri dosyalarını okumak için (okunduğu gibi
MATLAB'ı kullanarak yük komut) biri PDL'yi kullanır rcol'ler PDL'de::IO::Misc. bir genel için
PDL'de bulunan IO işlevselliğinin gözden geçirilmesi, PDL::IO belgelerine bakın, örn.
içindeki "help PDL::IO" pdl2 Shell komut satırından kabuk veya " pdldoc PDL::IO ".

Veri yapılar
MATLAB, karmaşık veri yapıları oluşturmak için "hücre diziler" ve "yapı diziler".
Perl'in dizileri ve karmaları benzer işlevsellik sunar ancak daha güçlü ve esnektir.
Bu bölüm, Perl'in sunduğu şeylerin yalnızca hızlı bir özetidir. Bu konuda daha fazla bilgi edinmek için,
Lütfen githttp://perldoc.perl.org/perldata.html> veya "perldoc" komutunu çalıştırın
perlveri".

Diziler
Perl dizileri, MATLAB'ın hücre dizilerine benzer, ancak daha esnektir. örneğin,
MATLAB, bir hücre dizisi hala temelde bir matristir. Satırlardan ve satırlardan oluşur
aynı uzunlukta olmalıdır.

MATLAB
------
dizi = {1, 12, 'merhaba'; rand(3, 2), olanlar(3), 'çöp'}
=> Tamam
dizi = {1, 12, 'merhaba'; rand(3, 2), olanlar(3) }
=> HATA

Bir Perl dizisi, genel amaçlı, sıralı bir veri yapısıdır. Herhangi bir veri içerebilir
yazın.

PerlDL
------
@array = ( [1, 12, 'merhaba'] , [ rastgele(3,2), birler(3,3), 'önemsiz' ] )
=> Tamam
@array = ( [1, 12, 'merhaba'] , [ rastgele(3,2), birler(3,3) ] )
=> Tamam
@array = ( 5 , {'name' => 'Mike'} , [1, 12, 'merhaba'] )
=> Tamam

Perl dizisinin kullandığı "$" yerine "@" önekiyle başladığına dikkat edin.
kürekler.

için öğrenmek hakkında Perl diziler, Lütfen go için <http://perldoc.perl.org/perldata.html> or
koşmak the komuta "perldoc perlveri".

Hash'ler
Perl karmaları, MATLAB'ın yapı dizilerine benzer:

MATLAB
------
>> içecek = struct('tip', 'kola', 'boyut', 'büyük', 'myarray', {1,2,3})
>> drink.type = 'hareket'
>> Drink.price = 12 % Yapı dizisine yeni alan ekle.

PerlDL
------
pdl> %drink = ( type => 'coke' , size => 'large', mypiddle => one(3,3,3) )
pdl> $içecek{tür} = 'harf'
pdl> $içecek{fiyat} = 12 # Hash'e yeni alan ekleyin.

Perl karmalarının diziler için "@" yerine "%" öneki ile başladığına dikkat edin ve
Piddle'lar tarafından kullanılan "$".

için öğrenmek hakkında Perl karmalar, Lütfen go için <http://perldoc.perl.org/perldata.html> or
koşmak the komuta "perldoc perlveri".

Performans
PDL, bazıları normalde mevcut olmayan güçlü performans özelliklerine sahiptir.
sayısal hesaplama araçları. Aşağıdaki sayfalar bu özelliklerde size yol gösterecektir:

PDL::İndeksleme
Seviye: Acemi

Bu başlangıç ​​öğreticisi, zaten sahip olduğunuz standart "vektörleştirme" özelliğini kapsar.
MATLAB'dan biliyorum. Programınızı oluşturmak için for döngülerinden nasıl kaçınacağınızı öğrenmek için bu sayfayı kullanın.
daha verimli.

PDL::İş parçacığı oluşturma
Seviye: Orta düzey

PDL'nin "vektörleştirme" özelliği, çoğu sayısal yazılımın yapabileceğinin ötesine geçer. İçinde
bu eğitimde, daha yüksek boyutlar üzerinden nasıl "ağ geçireceğinizi" öğreneceksiniz.
programınızı MATLAB'da mümkün olandan daha fazla vektörleştirin.

Deneyler
Seviye: Orta düzey

Perl, ne kadar sürdüğünü bulmanıza yardımcı olmak için kullanımı kolay bir kıyaslama modülü ile birlikte gelir.
kodunuzun farklı bölümlerini yürütmek için. odaklanmanıza yardımcı olacak harika bir araçtır.
optimizasyon çabaları. Bu konuda çevrimiçi okuyabilirsiniz
(<http://perldoc.perl.org/Benchmark.html>) veya "perldoc" komutuyla
Kalite Testi".

PDL::PP
Seviye: İleri

PDL'nin Ön İşlemcisi, PDL'nin en güçlü özelliklerinden biridir. bir fonksiyon yazarsın
özel işaretlemede tanım ve ön işlemci, olabilecek gerçek C kodunu üretir.
derlenmiş. PDL:PP ile uğraşmanıza gerek kalmadan yerel C kodunun tam hızına sahip olursunuz
C dilinin tüm karmaşıklığı ile.

Komplo
PDL, tam özellikli çizim yeteneklerine sahiptir. MATLAB'den farklı olarak PDL, üçüncü taraflara daha çok güvenir.
2B çizim özellikleri için kütüphaneler (pgplot ve PLplot). 3D çizimi ve grafikleri
performans ve taşınabilirlik için OpenGL kullanır. PDL'nin üç ana çizim modülü vardır:

PDL::Grafik::PGPLOT
En iyi için: 2B işlevlerin ve veri kümelerinin çizilmesi.

Bu, saygıdeğer PGPLOT kitaplığına bir arayüzdür. PGPLOT yaygın olarak kullanılmaktadır.
uzun yıllardır akademik ve bilimsel topluluklar. Kısmen yaşı nedeniyle,
PGPLOT, PLplot gibi daha yeni paketlere kıyasla bazı sınırlamalara sahiptir (örn.
grafikler). Ancak bilim dünyasında hala onu popüler yapan birçok özelliği vardır.
topluluk.

PDL::Grafik::PLplot
En iyi için: 2B işlevlerin yanı sıra 2B ve 3B veri kümelerinin çizilmesi.

Bu, PLplot çizim kitaplığına bir arayüzdür. PLplot modern, açık bir kaynaktır
Bilimsel planlar yapmak için kütüphane. Hem 2B hem de 3B veri kümelerinin çizimlerini destekler.
PLplot en iyi unix/linux/macosx platformları için desteklenir. Aktif bir geliştiriciye sahiptir.
topluluk ve win32 platformları için destek gelişiyor.

PDL::Grafikler::TriD
En iyi için: 3B fonksiyonların çizilmesi.

3B çizimler ve veriler için arka uç olarak OpenGL kullanan yerel PDL 3B grafik kitaplığı
görselleştirme. OpenGL ile elde edilen 3B nesneleri aşağıdakilerle değiştirmek kolaydır.
gerçek zamanlı olarak fare.

Yazı Yazmak GUI
Perl aracılığıyla PDL, bir çapraz platform oluşturmak için tüm önemli araç setlerine erişime sahiptir.
grafiksel kullanıcı arayüzü. Bir popüler seçenek wxPerl'dir (http://wxperl.sourceforge.net>).
Bunlar, çapraz yazmak için güçlü bir GUI araç takımı olan wxWidgets için Perl bağlamalarıdır.
platform uygulamaları.

wxWidgets, uygulamanızın yerel bir uygulama gibi görünmesini ve hissetmesini sağlamak için tasarlanmıştır.
her platform. Örneğin, Perl IDE'si Baba wxPerl ile yazılır.

simulink
Simulink, grafiksel bir dinamik sistem modelleyici ve simülatörüdür. satın alınabilir
MATLAB'a bir eklenti olarak ayrı olarak. PDL ve Perl'in doğrudan eşdeğeri yoktur.
MATLAB'ın Simulink'i. Bu özellik sizin için önemliyse, bir göz atın scilab:

<http://www.scilab.org>

Scilab başka bir sayısal analiz yazılımıdır. PDL gibi, ücretsiz ve açık kaynaktır. o
PDL'nin benzersiz özelliklerine sahip değildir, ancak MATLAB'a çok benzer. Scilab ile birlikte gelir
Xco'lar (önceden Scicos), Simulink'e benzer bir grafik sistem modelleyici ve simülatör.

TELİF HAKKI


Telif Hakkı 2010 Daniel Carrera (dcarrera@gmail.com). Bunu dağıtabilir ve/veya değiştirebilirsiniz.
belgeyi geçerli Perl lisansıyla aynı koşullar altında bulabilirsiniz.

Bakınız: http://dev.perl.org/licenses/

Teşekkür
David Mertens, Chris Marshall ve Sigrid Carrera'ya muazzam çalışmaları için teşekkür etmek istiyorum.
bu kılavuzun önceki taslaklarının gözden geçirilmesine yardımcı olur. Çalışma saatleri olmadan, bu
belge, MATLAB kullanıcıları için bugün olduğu kadar uzaktan yararlı olmazdı.

onworks.net hizmetlerini kullanarak çevrimiçi olarak PDL::MATLABp kullanın



En yeni Linux ve Windows çevrimiçi programları