Angielskifrancuskihiszpański

Ulubiona usługa OnWorks

PDL::FAQp - Online w chmurze

Uruchom PDL::FAQp u bezpłatnego dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

To jest polecenie PDL::FAQp, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


PDL::FAQ — często zadawane pytania dotyczące języka PDL

WERSJA


Aktualna wersja FAQ: 1.004

OPIS


To jest wersja 1.004 FAQ PDL, zbioru najczęściej zadawanych pytań na temat
PDL — język danych Perla.

JAK TO SIĘ ZACZĘŁO TO DOKUMENT


Q: 1.1 Gdzie do odnaleźć to dokument
Najnowszą wersję tego dokumentu można znaleźć pod adresem
<http://pdl.perl.org/?docs=FAQ&title=Często%20Zadawane%20Pytania> .

Q: 1.2 W jaki sposób do przyczynić się do to dokument
To jest znacznie przerobiona wersja FAQ PDL. Jako takie może mieć wiele błędów
wkradło się i wiele aktualizacji mogło nie dotrzeć. Wyraźnie zachęcamy do wpuszczenia
wiemy o pytaniach, na które Twoim zdaniem należy odpowiedzieć w tym dokumencie, ale już teraz
nie są.

Podobnie, jeśli uważasz, że części tego dokumentu są niejasne, poinformuj o tym opiekuna FAQ
o tym. Gdzie konkretna odpowiedź jest pobierana w całości od osoby zamieszczającej autorstwo
powinien być wskazany, jeśli tak nie jest, powiadom opiekuna FAQ. Aby uzyskać bardziej ogólne informacje
w tekście nie ma wyraźnego potwierdzenia, ale raczej istnieje niekompletna lista
autorów na końcu tego dokumentu. Jeśli czujesz, skontaktuj się z opiekunem FAQ
nieuczciwie potraktowany.

Wyślij swoje uwagi, uzupełnienia, sugestie lub poprawki na listę mailingową PDL pod adresem
[email chroniony]. Zobacz P: 3.2 poniżej, aby uzyskać instrukcje dotyczące dołączania do korespondencji
listy.

GENERAŁ PYTANIA


Q: 2.1 Co is PDL ?
PDL oznacza Perl Dane Wybierz język . Mówiąc to słowami Karla Glazebrooka:
inicjator projektu PDL:

Koncepcja PDL polega na zapewnieniu standardowego Perl5 możliwości
do KOMPAKTOWEGO przechowywania i SZYBKIEGO manipulowania dużymi
N-wymiarowe zbiory danych, które są chlebem powszednim
obliczeń naukowych. np. $a=$b+$c może dodać dwa
Obrazy 2048x2048 w ułamku sekundy.

Zapewnia mnóstwo przydatnych funkcji do analiz naukowych i numerycznych.

Dla czytelników zaznajomionych z innymi pakietami oceny danych naukowych może to być pomocne
dodaj, że PDL jest pod wieloma względami podobny do pakietów IDL, MATLAB i podobnych. Jednakże to
stara się poprawić szereg kwestii, które były postrzegane (przez autorów PDL) jako
niedociągnięć istniejących pakietów.

Q: 2.2 Z kim wspiera PDL? Z kim rozwija się jest?
PDL jest obsługiwany przez swoich użytkowników. Ogólne nieformalne wsparcie dla języka PDL jest zapewniane za pośrednictwem
Lista mailingowa PDL ([email chroniony] patrz poniżej).

Jako rozszerzenie Perla (patrz P: 2.5 poniżej) jest poświęcone idei wolności i otwartości
rozwój opracowany przez społeczność Perla. PDL był i jest aktywnie rozwijany przez:
luźno powiązana grupa ludzi na całym świecie, którzy koordynują swoje działania poprzez
Lista mailingowa rozwoju PDL ([email chroniony] , patrz P: 3.2 poniżej). Jeśli ty
jeśli chcesz przyłączyć się do ciągłych wysiłków na rzecz ulepszenia języka PDL, dołącz do tej listy.

Q: 2.3 Czemu jeszcze inne Dane Wybierz język ?
Powodów jest właściwie kilka i każdy powinien sam zdecydować, które z nich są
najważniejsze:

· PDL jest „wolnym oprogramowaniem”. Autorzy PDL uważają, że koncepcja ta ma kilka
zalety: każdy ma dostęp do źródeł -> lepsze debugowanie, łatwa adaptacja
do własnych potrzeb, z możliwością rozbudowy do własnych celów, itp... W porównaniu z komercyjnym
pakietów takich jak MATLAB i IDL, ma to duże znaczenie dla pracowników, którzy
chcą popracować w domu i nie mogą sobie pozwolić na znaczny koszt zakupu komercyjnego
pakiety do użytku osobistego.

· PDL opiera się na potężnym i dobrze zaprojektowanym języku skryptowym: Perl. W odróżnieniu
innych językach analizy danych naukowych/numerycznych, został zaprojektowany przy użyciu języka
cechy sprawdzonego języka, zamiast powstawać od zera.
Zdefiniowanie struktur kontrolnych podczas dodawania funkcji podczas programowania prowadzi do:
języków, które często wydają się niezgrabne i źle zaplanowane w przypadku większości istniejących pakietów
podobny zakres jak PDL.

· Używając Perla jako podstawy, programista PDL ma do dyspozycji wszystkie zaawansowane funkcje Perla
rękę, od samego początku. Obejmuje to wyrażenia regularne i tablice asocjacyjne
(hasze), dobrze zaprojektowane interfejsy do systemu operacyjnego, sieci itp. Doświadczenie
pokazało, że nawet w programowaniu głównie zorientowanym numerycznie jest to często niezwykle
przydatne, jeśli masz łatwy dostęp do potężnych półnumerycznych lub całkowicie nienumerycznych
także funkcjonalność. Na przykład możesz chcieć zaoferować wyniki a
być może skomplikowane obliczenia jako proces serwera w stosunku do innych procesów w sieci
bezpośrednio akceptując dane wejściowe z innych procesów w sieci. Używanie Perla i istniejące
Takie pakiety rozszerzeń Perla nie stanowią żadnego problemu (i wszystko będzie pasować
do „skryptu PDL”).

· Niezwykle łatwa rozszerzalność i interoperacyjność, ponieważ PDL jest rozszerzeniem Perla;
wsparcie rozwojowe dla rozszerzeń Perla jest integralną częścią Perla i istnieją
już liczne rozszerzenia standardowego Perla swobodnie dostępne w sieci.

· Integralne funkcje języka Perla (wyrażenia regularne, skróty, moduły obiektowe)
ogromnie ułatwił rozwój i wdrażanie kluczowych koncepcji PDL. Jeden z
najbardziej uderzającym przykładem w tej kwestii jest prawdopodobnie PDL::PP (patrz P: 6.16 poniżej), a
generator kodu/parser/preprocesor, który generuje funkcje PDL ze zwięzłego
opisy.

· Żaden z istniejących języków danych nie jest zgodny z zasadami języka Perl, określonymi przez autorów
mocno wierzę w:

· TIMTOWTDI: Można to zrobić na wiele sposobów. Języki minimalistyczne są
interesujące dla informatyków, ale dla użytkowników trochę redundancji
znacznie ułatwia obsługę i pozwala na indywidualny styl programowania -
tak jak ludzie mówią na różne sposoby. Dla wielu osób będzie to niewątpliwie
powód, aby unikać PDL;)

· Proste rzeczy są proste, skomplikowane są możliwe: rzeczy, które często się robi
powinno być łatwe do wykonania w tym języku, podczas gdy rzeczy rzadko wykonywane nie powinny być zbyt łatwe
nieporęczny.

Wszystkie istniejące języki naruszają co najmniej jedną z tych zasad.

· Jako projekt na przyszłość PDL powinien mieć możliwość wykorzystania funkcji superkomputera, np
możliwości wektorowe/przetwarzanie równoległe, akceleracja GPGPU. Prawdopodobnie tak będzie
osiągnąć poprzez wygenerowanie odpowiedniego kodu przez PDL::PP (patrz Q: 6.16 poniżej).
architektury umożliwiające wykorzystanie tych funkcji.

· [wpisz tutaj swoje 111 ulubionych powodów...]

Q: 2.4 Co is PDL dobry dla ?
Na wypadek, gdybyś jeszcze nie wiedział, jakie są główne cechy PDL i co można zrobić
wraz z nimi oto (koniecznie wybiórcza) lista kluczowych funkcji:

PDL dobrze nadaje się do obliczeń macierzowych, ogólnej obsługi danych wielowymiarowych,
przetwarzanie obrazu, obliczenia ogólnonaukowe, zastosowania numeryczne. Obsługuje wejścia/wyjścia
dla wielu popularnych formatów obrazów i danych, 1D (wykresy liniowe), 2D (obrazy) i 3D (objętość
wizualizacja, wykresy powierzchni poprzez OpenGL - na przykład realizowane za pomocą Mesa lub wideo
sterowniki kart OpenGL), możliwości wyświetlania grafiki i implementacje wielu numerycznych i
Algorytmy półnumeryczne.

Dzięki potężnemu preprocesorowi łatwo jest także połączyć Perla z ulubionym C
procedury, więcej o tym poniżej.

Q: 2.5 Co is dotychczasowy połączenie pomiędzy PDL i Perl ?
PDL to pakiet rozszerzeń Perl5. Jako taki potrzebuje istniejącej instalacji Perl5 (patrz
poniżej), aby uruchomić. Co więcej, większość języka PDL jest napisana w języku Perl (+ niektóre podstawowe funkcje, które
jest napisane w C). Programy PDL są (składniowo) po prostu używanymi skryptami Perla
część funkcjonalności realizowanych przez pakiet „PDL”.

Q: 2.6 Co do I potrzeba do biegać PDL on my maszyna ?
Ponieważ PDL jest tylko pakietem Perl5, potrzebujesz przede wszystkim instalacji Perl5 na swoim komputerze
maszyna. W chwili pisania tego tekstu PDL wymaga wersji Perla 5.8 lub nowszej. Więcej informacji
Informacje o tym, gdzie i jak zainstalować Perl, można znaleźć na stronie głównej Perla
<http://www.perl.org> i na wielu stronach CPAN (jeśli nie wiesz co CPAN jest, sprawdź
odpowiedź na następne pytanie).

Do zbudowania PDL potrzebny jest także działający kompilator C, obsługa Xsubs i pakiet
Extutils::MakeMaker. Jeśli nie masz kompilatora, może istnieć dystrybucja binarna
dostępne, zobacz „Dystrybucje binarne” poniżej.

Jeśli możesz (lub nie możesz) sprawić, że PDL będzie działać na nowej (wcześniej nieobsługiwanej) platformie, zrobimy to
lubię o tym słyszeć. Prosimy o zgłaszanie swoich sukcesów/porażek na listę mailingową PDL pod adresem
[email chroniony] . Dołożymy wszelkich starań, aby pomóc Ci w przeniesieniu PDL na nowy system.

Q: 2.7 Gdzie do I otrzymać jest?
PDL jest dostępny jako dystrybucja źródłowa w formacie Wszechstronny Perl Archiwum Sieć (lub
CPAN) oraz ze strony projektu sourceforge.net pod adresem
. Archiwa CPAN zawierają nie tylko
Dystrybucja PDL, ale także prawie wszystko inne, co jest związane z Perlem. CPAN jest
odzwierciedlone w dziesiątkach witryn na całym świecie. Główna strona tohttp://www.cpan.org>,
można tam znaleźć lokalne witryny CPAN (lustra). W CPAN znajdziesz najnowsze
wydano wersję PDL w katalogu /modules/by-module/PDL/. Strona główna PDL znajduje się pod adresem
<http://pdl.perl.org> i stamtąd też można pobrać najnowszą wersję.

Q: 2.8 Co do I mieć do zapłacić do otrzymać PDL?
Cieszymy się, że możemy udzielić Ci najmilszej możliwej odpowiedzi na takie pytanie jak
to: PDL jest *wolnym oprogramowaniem* i wszystkie jego źródła są publicznie dostępne. Ale nadal są
pewne prawa autorskie, których należy przestrzegać. Więc proszę, staraj się być tak miły, jak my (autorzy PDL).
i staraj się ich przestrzegać.

Och, zanim pomyślisz, że jest *całkowicie* darmowy: musisz poświęcić trochę czasu, aby go pobrać
dystrybucję z sieci, skompiluj ją, zainstaluj i (być może) przeczytaj instrukcje.

DOSTAĆ POMOC/WIĘCEJ INFORMACJE


Q: 3.1 Gdzie mogą I otrzymać Informacja on PDL?
Pełna dokumentacja PDL jest dostępna wraz z dystrybucją PDL. Użyj polecenia
„perldoc PDL”, aby rozpocząć naukę języka PDL.

Zdecydowanie najłatwiejszym sposobem zapoznania się z PDL jest skorzystanie z pomocy on-line PDL
z poziomu powłoki PDL, „pdl2”. Po prostu wpisz „pdl2” w wierszu poleceń systemu. Raz
jesteś w powłoce „pdl2”, wpisz „help” . Korzystanie z poleceń „pomoc” i „apropos”.
wewnątrz powłoki powinieneś być w stanie znaleźć drogę do dokumentacji.

Co więcej, możesz od razu wypróbować nowo zdobytą wiedzę na temat PDL, wydając
Polecenia PDL/Perl bezpośrednio w wierszu poleceń. Aby zilustrować ten proces, oto
zapis typowej sesji „pdl2” początkującego użytkownika PDL (długie dane wyjściowe są tylko symboliczne
powtórzone w nawiasach klamrowych ( <... ...> ) ):

unix> pdl2
pdl> pomóż
< ...wyjście pomocy ... >
pdl> pomoc PDL::QuickStart
< ... strona perldoc ... >
pdl> $a = pdl (1,5,7.3,1.0)
pdl> $b = sekwencja zmiennoprzecinkowa, 4, 4
pdl> pomoc wewnętrzna
< ... pomoc dotycząca funkcji „wewnętrznej” ... >
pdl> $c = wewnętrzne $a, $b
pdl> p $c
[22.6 79.8 137 194.2]

Dalsze źródła informacji dostępne za pośrednictwem Internetu znajdują się w dalszej części
pytanie.

Q: 3.2 Czy tam inny PDL Informacja źródła on dotychczasowy Internet?
Po pierwsze, w sieci znajdziesz mnóstwo źródeł na wszystkie pytania związane wyłącznie z Perlem.
Dobre punkty na początek tohttp://www.perl.com> ihttp://www.perl.org>.

Dostęp do strony głównej PDL można uzyskać, wskazując w przeglądarce internetowejhttp://pdl.perl.org>.
Zawiera mnóstwo gadżetów dla wszystkich zainteresowanych PDL:

· Dystrybucje PDL

· Dokumentacja on-line

· Wskaźniki do archiwum HTML list mailingowych PDL

· Lista platform, na których pomyślnie przetestowano PDL.

· Wiadomości o ostatnio dodanych funkcjach, przeniesionych bibliotekach itp.

· Nazwy aktualnych posiadaczy dyni dla różnych modułów PDL (jeśli chcesz wiedzieć
co to oznacza, lepiej zajrzyj na strony internetowe).

Jeśli ogólnie interesuje Cię PDL, możesz zapisać się na listę mailingową PDL
[email chroniony]. To jest forum do dyskusji na temat zagadnień programistycznych w PDL, zgłaszania błędów,
szukaj pomocy w rozwiązywaniu problemów związanych z PDL itp. Aby zapisać się, wypełnij formularz na stronie
<http://mailman.jach.hawaii.edu/mailman/listinfo/perldl>.

Można przeszukiwać archiwum i wersję hipertekstową ruchu na tej liście (1997-2004).
znaleźć się pod adresemhttp://www.xray.mpe.mpg.de/mailing-lists/perldl/> . Nowsze wiadomości
(od czerwca 2005) można znaleźć pod adresemhttp://mailman.jach.hawaii.edu/mailman/listinfo/perldl>
.

Jeśli interesują Cię wszystkie szczegóły techniczne ciągłego rozwoju PDL, możesz to zrobić
dołącz do listy mailingowej programistów PDL [email chroniony] . Aby zapisać się wypełnij
formathttp://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters>.

Można przeszukiwać archiwum i wersję hipertekstową ruchu na tej liście (1997-2004).
znaleźć się pod adresemhttp://www.xray.mpe.mpg.de/mailing-lists/pdl-porters/> . Nowsze wiadomości
(od czerwca 2005) można znaleźć pod adresem
<http://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters>.

Należy unikać wzajemnego zamieszczania postów pomiędzy tymi listami, chyba że istnieje: początku. dobry powód
robiąc to.

Q: 3.3 Co is dotychczasowy aktualne wersja of PDL ?
W chwili pisania tego tekstu (FAQ wersja 1.004 z 16 września 2013 r.) najnowszą stabilną wersją jest 2.006.
Najnowsza stabilna wersja powinna być zawsze dostępna w najbliższej witrynie lustrzanej CPAN (patrz
Pytanie 2.7, aby uzyskać informacje o tym, gdzie można uzyskać PDL).

Najbardziej aktualną (prawdopodobnie niestabilną) wersję PDL można uzyskać z Git
repozytorium, patrz Pytanie 4.10 i okresowe wydawanie kodu Git przez programistów CPAN
zostać wykonane w celach testowych i w celu zapewnienia bardziej ogólnej dostępności. Obecna wersja po PDL-2.006
Wersja deweloperska języka PDL jest dostępna jako CHM/PDL-2.006_07.tar.gz .

Q: 3.4 I chcieć do przyczynić się do dotychczasowy dalej rozwój of PDL. W jaki sposób mogą I pomóc?
Możesz pomóc na dwa sposoby niemal natychmiast: (1) udział w programie testerów CPAN
PDL i powiązanych modułów oraz (2) korekta i wyjaśnienie dokumentacji PDL, tak aby
jest najbardziej użyteczny dla użytkowników PDL, zwłaszcza nowych użytkowników.

Aby wziąć udział w testerach CPAN i przesyłać raporty z testów, przejdź na stronę
<http://wiki.cpantesters.org/wiki/QuickStart> ma instrukcje uruchamiania obu
Użytkownicy „CPAN” lub „CPANPLUS”.

Jeśli masz na myśli konkretny projekt, powinieneś sprawdzić, czy ktoś inny już nie pracuje
na nim lub czy mógłbyś skorzystać z istniejących modułów. Zrób to, publikując planowany projekt
na listę mailingową programistów PDL pod adresem [email chroniony] . Zobacz subskrypcję
instrukcje zawarte w pytaniu 3.2. Zawsze poszukujemy osób do pisania kodu i/lub
dokumentacja ;).

Q: 3.5 I myśleć I mieć znaleziono a pluskwa in dotychczasowy aktualne wersja of PDL. Co powinien I zrobić?
Najpierw upewnij się, że napotkany błąd/problem nie został już rozwiązany
gdzie indziej w tym FAQ. Po drugie, możesz sprawdzić przeszukiwalne archiwum PDL
listy mailingowe, aby dowiedzieć się, czy ten błąd został już omówiony. Jeśli nadal tego nie zrobiłeś
znalazłem wyjaśnienia, do których możesz wysłać raport o błędzie [email chroniony] lub przez
Włącz łącze Błędyhttp://pdl.perl.org> . Zobacz ROBAKI plik w dystrybucji PDL dla
jakie informacje uwzględnić. Jeśli nie jesteś pewien, dyskusje za pośrednictwem listy mailingowej perldl
może być najbardziej pomocny.

PORADY


Q: 4.1 I mieć problemy Instalacja PDL. Co powinien I zrobić?
Najpierw upewnij się, że przeczytałeś plik INSTALL w dystrybucji. Zawiera listę
typowych problemów, których nie ma potrzeby powtarzać w tym miejscu.

Następnie sprawdź plik perldl.conf aby sprawdzić, czy edytując zawarte w nim opcje konfiguracji
plik, będziesz mógł pomyślnie zbudować PDL. Niektóre moduły wymagają dodatkowych
zainstalowane oprogramowanie, zapoznaj się z plikiem ZALEŻNOŚCI dla dalszych szczegółów. Upewnić się
aby edytować lokalizację tych pakietów w pliku perldl.conf, jeśli masz je w wersji niestandardowej
lokalizacje.

Uwaga: Specyficzna dla powłoki Uniksa: Jeśli chcesz zapisać edytowany plik perldl.conf na przyszłość
kompilacje po prostu skopiuj jako ~/.perldl.conf do katalogu domowego, skąd zostanie pobrany
automatycznie podczas procesu kompilacji PDL.

Sprawdź także, czy w systemie kompilacji jest dostępna inna, wcześniej istniejąca wersja języka PDL. Wiele PDL
instaluje się w tej samej PATH lub @INC, co może powodować zagadkowe błędy podczas testów lub kompilacji.

Jeśli nadal nie możesz sprawić, by działało poprawnie, prześlij raport o błędzie, zawierający szczegółowe informacje
informacje o napotkanych problemach na listę mailingową perldl (
[email chroniony] , patrz także powyżej). Odpowiedź jest często szybka.

Q: 4.2 Czy tam konfiguracja pliki dla PDL I mieć do edytować?
Większość użytkowników nie powinna ręcznie edytować żadnych plików konfiguracyjnych. Jednak w niektórych
przypadki, w których może być konieczne podanie informacji o niezręcznie umieszczonych, obejmują
plików/bibliotek lub możesz wyraźnie wyłączyć tworzenie niektórych opcjonalnych PDL
moduły. Sprawdź pliki INSTALL i perldl.conf .

Gdybyś musiał ręcznie edytować perldl.conf i jesteś zadowolony z wyników, które możesz utrzymać
plik przydatny do wykorzystania w przyszłości. Umieść to ~/.perldl.conf gdzie zostanie odebrany
automatycznie lub użyj „perl Makefile.PL PDLCONF=nazwa_pliku” następnym razem, gdy będziesz budować PDL.

Q: 4.3 Do I potrzeba inny oprogramowanie dla udany operacja?
Do podstawowej funkcjonalności PDL nie jest potrzebne żadne dodatkowe oprogramowanie. Jednak niektóre z
opcjonalne moduły PDL zawarte w dystrybucji (zwłaszcza większość kart graficznych i niektóre moduły we/wy).
moduły) wymagają zainstalowania pewnych innych bibliotek/programów. Sprawdź plik
ZALEŻNOŚCI w dystrybucji, aby uzyskać szczegółowe informacje i wskazówki, jak je zdobyć.

Q: 4.4 W jaki sposób mogą I zainstalować PDL in a niestandardowy Lokalizacja?
Aby zainstalować PDL w niestandardowej lokalizacji, użyj opcji INSTALL_BASE w pliku „perl
Krok konfiguracji Makefile.PL”. Na przykład „perl Makefile.PL INSTALL_BASE=/mydir/perl5”
skonfiguruje PDL do instalacji w drzewie zakorzenionym w „/mydir/perl5”. Po więcej szczegółów
zobacz „Jak zachować własny katalog modułów/biblioteki?” w perlfaq8 i kolejnych sekcjach.
Inną alternatywą jest użycie local::lib w celu wykonania obszernej listy potrzebnych elementów
konfiguracja.

Q: 4.5 W jaki sposób mogą I siła a całkowicie kleń instalacja?
Aby zagwarantować całkowicie czystą instalację PDL, musisz najpierw usunąć plik
aktualne pliki i foldery instalacyjne. Będą to wszystkie katalogi o nazwie „PDL” w pliku
Ścieżka Perla @INC, pliki o nazwach „*Pdlpp*” w dowolnych katalogach „Inline” oraz programy „pdl,
pdldoc, pdl2, perldl i pptemplate”. Następnie po prostu zbuduj i zainstaluj jak zwykle. To jest
znacznie łatwiej śledzić, jeśli zawsze instalujesz „PDL” w niestandardowej lokalizacji.
Patrz P: 4.4 powyżej.

BINARY DYSTRYBUCJE


Q: 4.5 Co dwójkowy Dystrybucje jest dostępny?
Informacje na temat dystrybucji binarnych języka PDL można znaleźć na stroniehttp://pdl.perl.org> . Na
obecne są binarne dystrybucje PDL dla Linuksa (RedHat i Debian), FreeBSD, Mac
OS X i Windows, choć mogą nie być najnowszymi wersjami.

Jeśli ktoś jest zainteresowany dostarczaniem dystrybucji binarnych dla innych architektur, to
byłoby bardzo mile widziane. Daj nam znać na [email chroniony] Lista mailingowa. Również
sprawdź menedżera pakietów swojej dystrybucji Linuksa, ponieważ wiele z nich zawiera teraz PDL. PPM dla win32
dostępne są również wersje (zarówno 32-bitowe, jak i 64-bitowe).

Q: 4.6 Czy PDL biegać on Linuksa? (I co Parę słów o paczki?)
Tak, PDL działa na Linuksie i rzeczywiście większość prac nad nim została wykonana pod Linuksem.
NAhttp://pdl.perl.org> możesz znaleźć linki do pakietów dla niektórych głównych
dystrybucje. Sprawdź także menedżera pakietów swojej dystrybucji (yum, apt, urpmi, ...) as
Wiele z nich znajduje obecnie język PDL.

Q: 4.7 Czy PDL biegać dla Windows?
PDL działa dobrze na Win32 przy użyciu kompilatorów MinGW lub Microsoft. Zobacz win32/ZAINSTALUJ filet
szczegółowe informacje można znaleźć w dystrybucji źródłowej PDL. Inne kompilatory nie zostały przetestowane — input
jest mile widziany. Istnieje również dystrybucja PDL poprzez ppm ActiveState
może nie zawsze być najnowszą wersją. PDL-2.006 jest tworzony od razu po wyjęciu z pudełka na platformie Strawberry
Perl i ActiveState Perl.

CVS, GIT, ROLNICZE BIEŻĄCY ROZWÓJ


Q: 4.8 Czy I otrzymać PDL przez CVS?
Nie. Rozwój języka PDL był prowadzony z wykorzystaniem repozytorium CVS od grudnia 1999 r. do kwietnia 2009 r.
W kwietniu 2009 roku projekt przeszedł na system kontroli wersji Git (patrz
<http://git-scm.com>).

Q: 4.9 W jaki sposób do I otrzymać PDL przez Gita?
Załóżmy, że masz zainstalowany Git w swoim systemie i chcesz pobrać kod źródłowy projektu
do katalogu „PDL”. Aby uzyskać dostęp do repozytorium w trybie tylko do odczytu, wpisz at
linii poleceń

git clone git://git.code.sf.net/p/pdl/code kod-pdl

W przypadku oficjalnych programistów PDL, aby uzyskać dostęp do odczytu/zapisu wpisz typ repozytorium pod adresem
linii poleceń

git klon ssh://[email chroniony]/p/pdl/code kod-pdl

Q: 4.10 I miał a problem w dotychczasowy git wersja, w jaki sposób do I ZOBACZ if ktoś ma składane a
łata?
System Sourceforge zawiera menedżera poprawek, który zawiera poprawki, których jeszcze nie ma
zastosowano do dystrybucji. Dostęp do tej opcji można uzyskać poprzez menu Bilety w PDL
Strona projektu Sourceforgehttp://sourceforge.net/projects/pdl>.

Dodatkowo, jeśli nie zapisujesz się na listę mailingową, sprawdź archiwum
listy mailingowe „pdl-porters” i „perldl”. Aby uzyskać szczegółowe informacje, zobacz pytanie 3.2.

Q: 4.11 I mieć zdobyć wywoływacz dostęp do Udać się, w jaki sposób do I przesłać my zmiany?
Pierwszą rzeczą, którą powinieneś zrobić, to przeczytać dokumentację Gita i poznać podstawy
Git. W Internecie dostępnych jest wiele źródeł. Ale oto podstawy:

Zanim prześlesz zmiany, zatwierdź je w TWOIM repozytorium

git dodaj ...
git commit

lub połącz te dwa z

git commit -a

Następnie wprowadź zmiany wprowadzone przez innych

git pull Origin

Przetestuj plik PDL przed wypchnięciem go do głównego repozytorium. Jeśli kod jest dla Ciebie uszkodzony,
wtedy najprawdopodobniej jest uszkodzony w przypadku innych i nie będą zadowoleni z posiadania swojego ostatniego PDL
nie zbudować! UWAGA: git bardzo ułatwia utrzymanie oddzielnej gałęzi programowania.
[Do ustalenia, podaj informacje o tym, jak to zrobić].

Następnie zaktualizuj udostępnione repozytorium (w SF.net) swoimi zmianami

git push origin master

PDL ŻARGON


Q: 5.1 Co is gwintowanie (jest PDL a czytnik wiadomości) ?
Niestety w kontekście PDL termin Threading może mieć dwa różne (ale
powiązane) znaczenia:

· Kiedy wspomniano w INSTALL wskazówek i być może w trakcie procesu kompilacji
Mając na uwadze zwykłe informatyczne znaczenie wielowątkowości (przydatne głównie w
maszyny wieloprocesorowe lub klastry)

· Wątkowanie PDL operacji na piddlech (jak wspomniano w dokumentacji indeksowania).
iteracja podstawowej operacji na odpowiednich podprzekrojach piddle'ów, np. wewnętrznych
iloczyn „wewnętrzny $a, $b” z (3) pdl $a i a (3,5,4) pdl $b daje w wyniku (5,4) piddle
gdzie każda wartość jest wynikiem iloczynu wewnętrznego (3) pdl z (3) podkategorią
z (3,5,4) piddle'a. Aby uzyskać szczegółowe informacje, sprawdź PDL::Indexing

Wątkowanie PDL prowadzi w naturalny sposób do potencjalnie równoległego kodu, który może korzystać z wielu
wątki na maszynach/sieciach wieloprocesorowych; tam masz połączenie pomiędzy
dwa rodzaje użycia tego terminu.

Q: 5.2 Co is a siusiać?
Cóż, zmienne skalarne PDL (które są instancjami określonej klasy obiektów Perla,
tj. błogosławione rzeczy (patrz „perldoc perlobj”)) są w potocznym żargonie PDL często nazywane
piddles (na przykład sprawdź archiwa list mailingowych). Err, jasne? Jeśli nie, po prostu użyj
termin siusiać kiedy odwołujesz się do zmiennej PDL (instancja obiektu PDL, jak możesz
pamiętaj) niezależnie od tego, jakie rzeczywiste dane zawiera zmienna PDL.

TECHNICZNE PYTANIA


Q: 6.1 Co is perldl? Co is pdl2?
Czasami „perldl” („pdl2”) jest używane jako synonim języka PDL. Ściśle jednak mówiąc,
nazwa „perldl” („pdl2”) jest zarezerwowana dla małej powłoki dostarczanej z PDL
dystrybucji i ma być używany do interaktywnego prototypowania skryptów PDL.
Aby uzyskać szczegółowe informacje, sprawdź perldl lub pdl2.

Q: 6.2 W jaki sposób do I otrzymać on-line pomoc dla PDL?
Po prostu wpisz „help” (skrót = „?”) w wierszu polecenia powłoki „pdl2” i kontynuuj.
Innym przydatnym poleceniem jest polecenie „apropos” (skrót = „???”). Wypróbuj także „demo”
polecenie w powłoce „perldl” lub „pdl2”, jeśli nie znasz języka PDL.

MANIPULACJA OF PIDDLE


Q: 6.3 I chcieć do dostęp dotychczasowy trzeci element of a Pan ale $a[2] nie praca ?!
Zobacz odpowiedź na następne pytanie, dlaczego normalna składnia tablicy Perla nie działa w przypadku piddle'ów.

Q: 6.4 Kurs docs powiedzieć piddles jest kilka uprzejmy of szyk. Ale dlaczego nie dotychczasowy Perl szyk składnia
praca w piddles następnie ?
OK, w pewnym sensie masz rację. Dokumenty mówią, że piddle można traktować jako tablice. Więcej
konkretnie jest napisane ( PDL::QuickStart ):

Uważam, że najbardziej przydatny jest język Perl Data Language
myśleć o standardowych zmiennych Perla @x jak o „listach” ogólnych
„rzeczy” i zmienne PDL, takie jak $x, jako „tablice”, którymi mogą być
zawarte w listach lub skrótach.

Tak więc, chociaż piddle można traktować jako rodzaj wielowymiarowej tablicy, rzeczywiście nią jest nie
tablice w sensie Perla. Raczej z punktu widzenia Perla są one wyjątkowe
class (która jest obecnie zaimplementowana jako nieprzezroczysty wskaźnik do niektórych rzeczy w pamięci) i
dlatego potrzebujesz specjalnych funkcji (lub „metod”, jeśli używasz wersji OO), aby uzyskać dostęp
poszczególne elementy lub zakres elementów. Funkcje/metody do sprawdzenia to „at” /
„set” (patrz sekcja „Sekcje” w PDL::QuickStart ) lub potężna funkcja „slice”
i przyjaciele (zobacz PDL::Slices i PDL::Indexing, a zwłaszcza PDL::NiceSlice ).

Na koniec, aby całkowicie Cię zmylić, możesz mieć tablice Piddle w Perlu, np. $spec[3] może
odnosi się do pdl reprezentującego np. widmo, gdzie $spec[3] jest czwartym elementem
Lista Perla (lub tablica ;) @spec . Może to być mylące, ale jest bardzo przydatne!

Q: 6.5 W jaki sposób do I powiązać piddles?
Większość ludzi będzie próbowała utworzyć nowe piddle ze starych, stosując pewne zmiany
motyw: "$a = pdl([$b, 0, 2])" , ale to nie działa. Sposobem na łączenie piddle jest
aby użyć funkcji „kot” (patrz także „dołącz” i „klej”). Podobnie możesz dzielić piddles
za pomocą komendy „pies”.

Q: 6.6 czasami I am miejsce te dziwny wyniki jeśli chodzi o komunikację i motywację za pomocą w miejscu operacje?
To pytanie jest związane z funkcją „inplace”. Z dokumentacji (patrz
PDL::Szybki start):

Większość funkcji, np. log(), zwraca wynik, którym jest a
transformację ich argumentacji. To wychodzi na dobre
praktyka programowania. Można jednak wykonać wiele operacji
„na miejscu”, co może być wymagane w przypadku dużych tablic
wykorzystanie i pamięć są na wagę złota. W tych okolicznościach
zapewniony jest operator inplace(), który zapobiega dodatkowej kopii
i pozwala na modyfikację argumentu. np:

$x = log($tablica); # Tablica $ bez zmian
log(inplace($bigarray) ); # $bigarray zmieniony na miejscu

A także z dokumentu !!:

Oczywiście w przypadku użycia z pewnymi funkcjami, których nie można
zastosowane in situ (np. convolve()) mogą spowodować nieoczekiwane efekty
zdarzać się!

Q: 6.7 Co is to dziwny zwyczaj of dotychczasowy ciąg konkatenacja operator ".=" in PDL
skrypty?
Zobacz następne pytanie dotyczące zadania w PDL.

Q: 6.8 Czemu jest tam drugiej różne rodzaje of cesja in PDL ?
Jest to spowodowane tym, że obecnie operator przypisania "=" pozwala tylko
ograniczone przeciążenie. Dla niektórych celów PDL okazało się to konieczne
większa kontrola nad przeciążeniem operatora przypisania. Dlatego PDL zapoznaje się z
operator ".=" dla niektórych typów przypisań.

Q: 6.9 W jaki sposób do I zestaw a zestaw of wartości in a siusiać?
W Perlu 5.6.7 i nowszych przypisanie to można wykonać za pomocą podprogramów lvalue:

pdl> $a = sekwencja(5); p $a
[0 1 2 3 4]
pdl> $a->plaster('1:2') .= pdl([5,6])
pdl> p $a
[0 5 6 3 4]

zobacz PDL::Lvalue, aby uzyskać więcej informacji. PDL obsługuje również bardziej macierzową składnię plasterków poprzez
Moduł PDL::NiceSlice:

pdl> $a(1:2) .= pdl([5,6])
pdl> p $a
[0 5 6 3 4]

W wersjach Perla wcześniejszych niż 5.6.7 or jeśli chodzi o komunikację i motywację bieganie dla dotychczasowy Perl debugger to musi
można to zrobić za pomocą zmiennej tymczasowej:

pdl> $a = sekwencja(5); p $a
[0 1 2 3 4]
pdl> $tmp = $a->plasterek('1:2'); p $tmp;
[1 2]
pdl> $tmp.= pdl([5, 6]); # Uwaga.= !!
pdl> p $a
[0 5 6 3 4]

Można to również przekształcić w jedno wyrażenie, które często można spotkać w kodzie PDL:

pdl> ($tmp = $a->plaster('1:2')) .= pdl([5,6])
pdl> p $a
[0 5 6 3 4]

Q: 6.10 Czy I posługiwać się a siusiać in a warunkowy wyrażenie?
Tak, możesz, ale nie w sposób, w jaki prawdopodobnie próbowałeś na początku. Nie ma możliwości użycia a
piddle bezpośrednio w wyrażeniu warunkowym, ponieważ jest ono zwykle słabo zdefiniowane. Zamiast
PDL ma dwie bardzo przydatne funkcje: „any” i „all”. Użyj ich, aby sprawdzić, czy którykolwiek lub wszystkie
elementy w piddle spełniają pewne kryterium:

pdl> $a=pdl ( 1, -2, 3);
pdl> print '$a ma przynajmniej jeden element < 0' if (dowolny $a < 0);
$a ma co najmniej jeden element < 0

pdl> print '$a nie jest dodatnio określone' chyba, że ​​(wszystkie $a > 0);
$a nie jest dodatnio określone

Q: 6.11 logiczny operatorzy i piddles - „||” i „&&” nie praca!
Częstym problemem jest próba utworzenia tablicy masek lub czegoś podobnego przy użyciu a
konstruować np

$maska ​​= która($piddle > 1 && $piddle < 2); # niepoprawne

To zdjęcie robi nie praca! To, czego szukasz, to bitowe operatory logiczne „|” I
„&”, które działają na zasadzie element po elemencie. Zatem sprawa jest naprawdę bardzo prosta: nie używać
operatory logiczne na wieloelementowych piddlech, ponieważ zamiast tego naprawdę nie ma to sensu
napisz przykład jako:

$maska ​​= która($piddle > 1 & $piddle <2);

który działa poprawnie.

ADVANCED TEMATY


Q: 6.12 Co is a zero Pan ?
„null” to specjalny token dla „pustego piddle”. Pusty pdl może być użyty do flagowania do PDL
funkcję, która powinna utworzyć piddle o odpowiedniej wielkości i typie. Null piddle może
być używane w miejscach, gdzie funkcja PDL oczekuje wydajność or tymczasowy argumenty. Wydajność i
tymczasowy argumenty są oznaczone w pliku podpis funkcji PDL za pomocą „[o]” i
Kwalifikatory „[t]” (zobacz następne pytanie, jeśli nie wiesz, co to jest podpis funkcji PDL
Jest). Na przykład możesz wywołać funkcję „sumover” w następujący sposób:

suma $a, $b=null;

co jest równoważne

$b = suma $a;

Jeśli wydaje się to nadal trochę niejasne, sprawdź PDL::Indexing i PDL::PP, aby uzyskać szczegółowe informacje na temat wywoływania
konwencje, podpis i gwintowanie (patrz także poniżej).

Q: 6.13 Co is dotychczasowy podpis of a PDL funkcjonować ?
Kurs podpis funkcji jest ważnym pojęciem w języku PDL. Wiele (ale nie wszystkie) PDL
funkcja ma podpis który określa argumenty i ich (minimalne)
wymiarowość. Jako przykład spójrz na sygnaturę funkcji „maksimum”:

'jakiś); [o] b;'

oznacza to, że „maksimum” przyjmuje dwa argumenty, z których pierwszy to (przynajmniej) jeden-
wymiarowy, podczas gdy drugi jest zerowymiarowy i an wydajność argument (oznaczony przez
kwalifikator „[o]”). Jeśli funkcja zostanie wywołana z piddle'ami o większym wymiarze, to
funkcja będzie wielokrotnie wywoływana z wycinkami tych odpowiednich fragmentów
wymiar (jest to tzw gwintowanie w PDL).

Aby uzyskać szczegółowe informacje i dalsze wyjaśnienia, zobacz PDL::Indexing i PDL::PP .

Q: 6.14 W jaki sposób mogą I podklasa (dziedziczyć z) piddles?
Krótka odpowiedź brzmi: przeczytaj PDL::Objects (np. wpisz „help PDL::Objects” w polu perdl or
pdl2 powłoka).

Dłuższa odpowiedź (wyciągnięta z PDL::Objects ): Ponieważ obiekt PDL jest nieprzezroczysty
odniesienie do struktury C, nie jest możliwe rozszerzenie klasy PDL np. o dodatkowe dane via
podklasa (jak można to zrobić w przypadku obiektu Perla opartego na mieszaniu). Aby obejść ten problem
PDL ma wbudowaną obsługę rozszerzania klasy PDL poprzez ma relacja dla błogosławionych
skróty. Możesz zdobyć MA zachowywać się jak JEST po prostu w ten sposób, że przypisujesz obiekt PDL
do atrybutu o nazwie „PDL” i ponownie zdefiniuj metodę zainicjuj(). Na przykład:

pakiet FOO;

@FOO::ISA = qw(PDL);
subinicjalizuj {
moja $klasa = przesunięcie;
moje $ja = {
czas_tworzenia => czas(), # niezbędne rozszerzenie :-)
PDL => PDL->null, # używany do przechowywania obiektu PDL
};
pobłogosław $siebie, $klasę;
}

Aby zapoznać się z innym przykładem, sprawdź skrypt t/podklasa.t w dystrybucji PDL.

Q: 6.15 Co on Ziemia is to przepływ danych rzeczy ?
Dataflow to projekt eksperymentalny, którym nie musisz się przejmować (it
nie powinno zakłócać normalnego programowania). Jeśli jednak chcesz wiedzieć, miej
spójrz na PDL::Dataflow . Istnieją aplikacje, które skorzystają z tej funkcji (i
to już działa za kulisami).

Q: 6.16 Co is PDL::PP?
Prosta odpowiedź: PDL::PP jest zarówno klejem pomiędzy bibliotekami zewnętrznymi i PDL, jak i zwięzłym
język do pisania funkcji PDL.

Nieco dłuższa odpowiedź: PDL::PP służy do kompilowania bardzo zwięzłych definicji w XSUB
procedury zaimplementowane w C, które można łatwo wywołać z PDL i które są automatycznie
obsługuje wątki, przepływ danych i inne rzeczy, nie musisz się o to martwić.

Aby uzyskać więcej informacji, sprawdź PDL::PP i poniższą sekcję dotyczącą rozszerzeń PDL.

Q: 6.17 Co dzieje jeśli chodzi o komunikację i motywację I mieć kilka referencje do dotychczasowy taki sam PDL przedmiot in różne
zmienne (klonowanie, itp?) ?
Piddles pod wieloma względami zachowują się jak odniesienia do Perla. Więc kiedy mówisz

$a = pdl [0,1,2,3];
$b = $a;

wtedy zarówno $b, jak i $a wskazują na ten sam obiekt, np. wtedy mówiąc

$b++;

*nie* utworzy kopii oryginalnego piddle'a, ale po prostu zwiększy go w miejscu, którego ty
możesz się przekonać, mówiąc

wydrukuj $a;
[1 2 3 4]

Nie należy tego mylić z przepływem danych, który łączy kilka *różnych* obiektów, tzw
że zmiany danych są propagowane pomiędzy tak połączonymi piddle'ami (choć pod pewnymi względami
okolicznościach, przepływające dane mogą fizycznie współużytkować te same dane).

Ważne jest, aby podczas mijania piddle'ów mieć na uwadze "naturę referencyjną".
w podprogramy. Jeśli zmodyfikujesz piddle wejściowe, zmodyfikujesz oryginalny argument, nie a
jego kopia. Różni się to od niektórych innych języków przetwarzania tablic, ale powoduje
bardzo efektywne przechodzenie piddle'ów pomiędzy podprogramami. Jeśli nie chcesz modyfikować pliku
oryginalny argument, ale raczej jego kopia, po prostu utwórz kopię jawnie (w tym przykładzie również
pokazuje, jak prawidłowo sprawdzić, czy plik wyraźny żądanie przetworzenia na miejscu, zakładając
Twoja rutyna może działać lokalnie):

moja funkcja podrzędna {
mój $pdl = przesunięcie;
if ($pdl->is_inplace) {
$pdl->ustaw_w miejscu(0)
} Else {
# domyślnie zmodyfikuj kopię
$pdl = $pdl->kopiuj
}
$pdl->set(0,0);
zwróć $pdl;
}

RÓŻNE


Q: 6.18 Co I / O Formaty jest utrzymany by PDL ?
Obecne wersje języka PDL obsługują już sporo różnych formatów wejścia/wyjścia.
Jednak nie zawsze jest oczywiste, który moduł implementuje które formaty. Aby pomóc Ci znaleźć
odpowiedni moduł dla wymaganego formatu, oto krótka lista aktualnej listy
Formaty I/O i podpowiedź, w którym module znaleźć implementację:

· Szybki format wejścia/wyjścia typu home Brew (binarny) dla PDL jest realizowany przez moduł FastRaw

· Moduł FlexRaw implementuje ogólne metody wprowadzania i wyprowadzania „surowych” danych
tablice. W szczególności jest przeznaczony do odczytu danych wyjściowych z FORTRAN 77 UNFORMATTED
plików i niskopoziomową funkcję „zapisu” C, nawet jeśli pliki są skompresowane lub
spakowane.

Możliwe, że funkcjonalność FastRaw zostanie uwzględniona w module FlexRaw
kiedyś w przyszłości.

· FITS I/O jest realizowane poprzez funkcje "wfits"/"rfits" w PDL::IO::FITS.

· Plik ASCII we/wy w różnych formatach można uzyskać za pomocą „rcols” i „rgrep”
funkcje, także w PDL::IO::Misc .

· PDL::IO::Pic implementuje interfejs do filtrów NetPBM/PBM+ do odczytu/zapisu kilku
popularne formaty obrazów; obsługiwane jest także wyjście sekwencji obrazów w postaci filmów MPEG,
animowane pliki GIF i wiele innych formatów wideo.

· Na CPAN można znaleźć moduł PDL::NetCDF, który współpracuje z aktualnie wydanym modułem
wersja PDL 2.006.

Dalsze szczegóły można znaleźć na bardziej szczegółowej liście w dokumentacji PDL::IO lub w pliku
dokumentacja poszczególnych modułów.

Q: 6.19 W jaki sposób mogą I stos a zestaw of 2D tablice (obrazy) najnowszych a 3D siusiać?
Zakładając, że wszystkie tablice mają ten sam rozmiar i jakiś format rozpoznawany przez „rpic” (patrz
PDL::IO::Pic ) można powiedzieć:

użyj PDL::IO::Pic;
@names = qw/nazwa1.tif .... nazwaN.tif/; # niektóre nazwy plików
$dummy = PDL->rpic($names[0]);
$cube = PDL->zera($dummy->type,$dummy->dims,$#names+1); # zrób piddle 3D
dla (0..$#nazwy) {
# to jest przypisanie wycinka
($tmp = $kostka->kawałek(":,:,($_)")) .= PDL->rpic($names[$_]);
}

or

$cube(:,:,($_)) .= PDL->rpic($names[$_]);

dla przypisania wycinka przy użyciu nowej składni PDL::NiceSlice i przypisań Lvalue.

Pętla for wczytuje rzeczywiste obrazy do tymczasowego bufora 2D, którego wartości są następnie
przypisane (za pomocą przeciążonego operatora „.=") do odpowiednich wycinków piddle'a 3D
$kostka.

Q: 6.20 Gdzie jest test pliki dla dotychczasowy grafika moduły?
Ta odpowiedź dotyczy głównie PDL::Graphics::TriD (niezależna od urządzenia grafika 3D PDL
model), co jest pod tym względem najtrudniejsze. W pliku znajdziesz kilka skryptów testowych
Demos/TriD w dystrybucji. Istnieje również 3dtest.pl i line3d.pl
Katalog PDL/Przykład/TriD. Po zbudowaniu PDL możesz:

perl -Mblib Przykład/TriD/3dtest.pl

perl -Mblib Przykład/TriD/line3d.pl

aby wypróbować dwa programy testowe TriD. Wykonują tylko jedną funkcję TriD oprócz swojej
prostota ułatwia debugowanie, jeśli zajdzie taka potrzeba, za pomocą debugera Perla, zobacz perldbug.

Programy znajdujące się w katalogu Demo można najłatwiej uruchomić z katalogu „perldl” lub „pdl2”
interaktywna powłoka:

perl -Mblib perldl lub perl -Mblib Perldl2/pdl2

po czym w wierszu polecenia pojawia się „demo 3d” lub „demo 3d2”. Samo „demo” wyświetli listę
dostępnych wersji demonstracyjnych PDL.

Możesz ręcznie uruchomić skrypty testowe w katalogu Demos/TriD, zmieniając go
katalog i działa

perl -Mblib

gdzie „plik testowy” ; powinien pasować do wzorca „test[3-9].p” i obserwować wyniki. Niektóre z
testy powinny wyświetlić okno, w którym możesz kontrolować (przekręcać) obiekty 3D za pomocą
mysz. Spróbuj użyć przycisku myszy 1 do obracania obiektów w przestrzeni 3D, przycisku myszy 3 do
powiększaj i pomniejszaj oraz „q”, aby przejść do następnego etapu testu.

Q: 6.21 Co is TriD or PDL::TriD or PDL::Grafika::TriD?
Dzięki systemowi pomocy on-line PDL tego typu pytania powinny należeć do przeszłości
miejsce. Po prostu spróbuj (po instalacji):

un*x> pdl2
pdl> w odniesieniu do trid

Sprawdź wyniki pod kątem obiecujących trafień, a następnie spróbuj wyszukać niektóre z nich, np

pdl> pomoc PDL::Graphics::TriD

Zauważ, że przypadek ma znaczenie w przypadku „pomocy”, ale nie „apropos”.

Q: 6.22 PGPLOT robi nie napisać na zewnątrz PNG akta.
Istnieje kilka źródeł problemów z plikami PGPLOT i PNG. Po pierwsze, podczas kompilacji
pgplot, pamiętaj o odkomentowaniu wpisów PNG w pliku lista.sterowników plik. Następnie
podczas uruchamiania „make” prawdopodobnie pojawił się błąd podobny

C

Aby to naprawić, znajdź w pliku makefile linię zaczynającą się od „pndriv.o:” (znajduje się ona blisko
spód). Zmień na przykład ./png.h na /usr/include/png.h, jeśli tam znajduje się twój nagłówek
pliki są (masz pakiety deweloperskie libpng i libz, prawda?). Zrób to dla wszystkich
cztery wpisy w tej linii, a następnie wróć i uruchom polecenie „make”.

Po drugie, jeśli masz już zainstalowany moduł PGPLOT Perl i PDL, prawdopodobnie próbowałeś
aby zapisać plik PNG i otrzymałem komunikat o błędzie krytycznym, taki jak:

C

Dzieje się tak, ponieważ moduł PGPLOT Perl nie łączy się automatycznie z plikami png i z
biblioteki. Więc kiedy instalujesz moduł PGPLOT Perl (wersja 2.19) z CPAN,
nie rób „instaluj PGPLOT”, ale po prostu „pobierz PGPLOT”. Następnie wyjdź z CPAN i ręcznie
zainstaluj PGPLOT, wywołując plik makefile w ten sposób:

C/ Usr / lib>

zakładając, że istnieją pliki takie jak /usr/lib/libpng.so.*, /usr/lib/libz.so.*. Więc zrób to
standardowe „make;make test;make install;” sekwencja. Teraz możesz zapisywać pliki png z
PDL!

ROZSZERZENIA OF PDL


Q: 7.1 I am poszukuje dla a pakiet do do XXX in PDL. Gdzie powinien I na temat dla jest?
Pierwszym przystankiem jest ponownie „perldl” lub „pdl2” i pomoc on-line lub dokumentacja PDL.
W języku PDL dostępnych jest już wiele funkcji, o których możesz nie wiedzieć. The
najłatwiejszym sposobem wyszukania funkcjonalności jest użycie polecenia „apropos”:

pdl> w odniesieniu do „całki”
ceil Zaokrągla do wartości całkowitych w formacie zmiennoprzecinkowym
podłoga Zaokrąglanie do wartości całkowitych w formacie zmiennoprzecinkowym
Inver Projekt poprzez całkowanie do wymiarów N-1
rint Zaokrąglanie do wartości całkowitych w formacie zmiennoprzecinkowym

Ponieważ polecenie apropos nie jest zaawansowaną wyszukiwarką, upewnij się, że szukasz w a
kilka powiązanych tematów i używaj krótkich wyrażeń.

Istnieje jednak duża szansa, że ​​to, czego potrzebujesz, nie jest częścią dystrybucji PDL. Ty
w takim razie dobrze jest sprawdzićhttp://pdl.perl.org> gdzie znajduje się lista pakietów
za pomocą PDL-a. Jeśli to nie rozwiąże problemu, zapytaj na liście mailingowej, jeśli nie ma innego wyjścia
możesz uzyskać pomoc, która pozwoli ci samodzielnie połączyć pakiet z PDL, zobacz
także następne pytanie.

Q: 7.2 Czy I dostęp my C/FORTRAN biblioteka rutyny in PDL?
Tak, można, w rzeczywistości jest to bardzo proste w przypadku wielu prostych aplikacji. To, czego chcesz, to
Preprocesor PDL PP (PDL::PP ). Umożliwi to utworzenie prostego interfejsu do Twojego C
rutyna.

Dwie funkcje, których musisz się nauczyć (przynajmniej najpierw), to „pp_def”, które definiuje
wywołanie interfejsu funkcji, określenie parametrów wejściowych i wyjściowych oraz zawiera
kod łączący się z biblioteką zewnętrzną. Drugie polecenie to „pp_end”, które kończy się
definicje PP. Aby uzyskać szczegółowe informacje, zobacz stronę podręcznika PDL::PP, ale mamy również działającą
przykład tutaj.

podwójna suma ośmiu (int n)
{
wew;
suma podwójna, x;

suma = 0.0; x=0.0;
for (i=1; i<=n; i++) {
x++;
suma += x/((4.0*x*x-1.0)*(4.0*x*x-1.0));
}
zwrot 1.0/suma;
}

Pokażemy Ci tutaj przykład połączenia kodu C z PDL. To jest pierwszy
przykład i pokaże Ci, jak przybliżyć liczbę 8...

Kod C pokazano powyżej i jest prostą funkcją zwracającą wartość podwójną i oczekującą
integer — liczba składników sumy — jako dane wejściowe. Funkcję tę można zdefiniować w a
bibliotekę lub, tak jak to robimy w tym przypadku, jako funkcję wbudowaną.

Odłożymy pisanie pliku Makefile na później. Najpierw skonstruujemy plik „.pd”
plik. To jest plik zawierający kod PDL::PP. Nazywamy to „osiem.pd”.

#
# pp_def definiuje funkcję PDL.
#
pp_addhdr (
'
podwójna suma ośmiu (int n)
{
wew;
suma podwójna, x;

suma = 0.0; x=0.0;
for (i=1; i<=n; i++) {
x++;
suma += x/((4.0*x*x-1.0)*(4.0*x*x-1.0));
}
zwrot 1.0/suma;

}
');

pp_def (
'osiem',
Pars => 'int a(); podwójne [o]b();',
Code => '$b()=osiem_sum($a());'
);

# Zawsze pamiętaj o zakończeniu deklaracji PP
# pp_gotowe

pp_gotowe();

Osobliwością naszego przykładu jest to, że umieściliśmy cały kod w „pp_addhdr”
zamiast go łączyć. To tylko dla celów przykładowych, w typowym przypadku
aplikacji będziesz używać „pp_addhdr” do dołączania plików nagłówkowych. Należy pamiętać, że argument do
„pp_addhdr” jest ujęte w cudzysłów.

Najważniejsze w tym przykładzie jest jednak polecenie „pp_def”. Pierwszy argument
do tego jest nazwa nowej funkcji osiem , potem pojawia się skrót, który jest prawdziwym mięsem:

· Daje to parametry wejściowe (tutaj „a”) i parametry wyjściowe (tutaj „b”). The
te ostatnie są oznaczone specyfikatorem „[o]”. Oba argumenty mogą mieć typ
specyfikacja, jak pokazano tutaj.

Można określić wiele wariantów i większą elastyczność interfejsu. Widzieć
Szczegóły znajdziesz w „perldoc PDL::PP”.

· Ten przełącznik zawiera kod, który powinien zostać wykonany. Jak widać jest to raczej
osobliwa mieszanka C i Perla, ale zasadniczo jest tak, jak napisałbyś to w C, ale
zmienne przekazywane z PDL są traktowane odmiennie i należy się do nich odnieść
z poprzedzającym znakiem „$”.

Istnieją również proste makra umożliwiające przekazywanie wskaźników do danych i uzyskiwanie ich wartości
inne ilości Perla, więcej szczegółów znajdziesz na stronie podręcznika.

Na koniec zwróć uwagę na wywołanie „pp_done()” na końcu pliku. Jest to konieczne we wszystkich PP
akta.

OK. Mamy więc teraz plik z kodem, który bardzo chcielibyśmy wykorzystać w Perlu poprzez PDL. Do
aby to zrobić, musimy skompilować funkcję i do tego potrzebujemy pliku Makefile.

użyj PDL::Core::Dev;
użyj ExtUtils::MakeMaker;
PDL::Core::Dev->import();

$pakiet = ["osiem.pd",Osiem,PDL::Eight];
%hash = pdlpp_stdargs($pakiet);

WriteMakefile(%hash);

sub MY::postamble {pdlpp_postamble($package)};

Powyższy kod należy umieścić w pliku o nazwie Makefile.PL, który następnie należy wywołać
w standardowy sposób Perla: „perl Makefile.PL” . To powinno dać ci plik Makefile i
uruchomienie polecenia „make” powinno skompilować moduł za Ciebie, a polecenie „make install” spowoduje jego zainstalowanie
ty.

Q: 7.3 W jaki sposób mogą I Interfejs pakiet XXX in PDL?
To pytanie jest ściśle powiązane z poprzednim i, jak tam powiedzieliśmy, PDL::PP
preprocesor to standardowy sposób łączenia pakietów zewnętrznych z PDL. Najbardziej
typowym sposobem użycia PDL::PP jest napisanie krótkiej procedury interfejsu, zobacz PDL::PP perldoc
strona i odpowiedź na poprzednie pytanie dla przykładów.

Jednakże możliwe jest również połączenie pakietu z PDL poprzez ponowne zapisanie funkcji
bezpośrednio PDL::PP. Może to być wygodne w niektórych sytuacjach, zwłaszcza jeśli tak jest
procedura, która oczekuje funkcji jako danych wejściowych i chcesz przekazać tę funkcję do Perla
funkcję dla wygody.

Strona perldoc PDL::PP jest głównym źródłem informacji o pisaniu rozszerzeń PDL::PP,
ale bardzo przydatne jest szukanie plików w dystrybucji PDL jak najwięcej rdzenia
funkcje są zapisane w PDL::PP. Szukaj plików kończących się na „.pd”, czyli ogólnie
akceptowany przyrostek dla plików PDL::PP. Ale mamy tu również prosty przykład.

Poniższy przykład pokaże Ci, jak napisać prostą funkcję, która będzie działać automatycznie
umożliwia gwintowanie. Aby było to zwięzłe, przykład ma niemal trywialną funkcję, ale
zamierzeniem jest pokazanie podstaw pisania interfejsu PDL::PP.

Napiszemy prostą funkcję, która oblicza minimum, maksimum i średnią wartości a
siusiać. Na moim komputerze wynikowa funkcja jest 8 razy szybsza niż funkcja wbudowana
„statystyki” (oczywiście ta ostatnia również oblicza medianę).

Przejdźmy od razu do rzeczy. Oto kod (z pliku o nazwie „quickstats.pd”)

#
pp_def('szybkie statystyki',
Pars => 'a(n); [o]średnia(); [o]maks.(); [o]min()',
Code => '$GENERIC(a) curmax, kurmin;
$GENERIC(a) tmp=0;
pętla(n) %{
tmp += $a();
if (!n || $a() > curmax) { curmax = $a();}
if (!n || $a() < kurmin) { kurmin = $a();}
%}
$średnia() = tmp/$ROZMIAR(n);
$max() = curmax;
$min() = kurmin;
'
);

pp_gotowe();

Powyższe może wyglądać jak myląca mieszanka C i Perla, ale ma w sobie coś osobliwego
składnia kryje się w bardzo potężnym języku. Rozpatrzmy to linijka po linijce.

Pierwsza linia deklaruje, że rozpoczynamy definicję funkcji PDL:PP o nazwie
„szybkie statystyki”.

Druga linia jest bardzo ważna, ponieważ określa parametry wejściowe i wyjściowe
funkcjonować. a(n) mówi nam, że istnieje jeden parametr wejściowy, który będziemy nazywać „a”
który ma być wektorem o długości n (podobnie jak macierze, zarówno kwadratowe, jak i
prostokątny byłby zapisywany odpowiednio jako „a(n,n)” i „a(n,m)”). Aby to wskazać
coś jest parametrem wyjściowym, który umieszczamy „[o]” przed ich nazwami, więc odsyłamy do nich
w kodzie widzimy, że avg, max i min to trzy parametry wyjściowe, z których wszystkie są
skalarne (ponieważ nie mają wskazanego rozmiaru wymiarowego.

Trzecia linia rozpoczyna definicję kodu, która jest zasadniczo czystym C, ale z kilkoma
wygodne funkcje. $GENERIC to funkcja, która zwraca argument typu C -
tutaj parametr wejściowy a. Zatem pierwsze dwie linie sekcji kodu są zmienne
deklaracje.

Konstrukcja pętli(n) jest wygodną funkcją, która wykonuje pętlę po wymiarze zwanym nin
sekcja parametrów. Wewnątrz tej pętli obliczamy skumulowaną sumę danych wejściowych
wektor i śledź wartości maksymalne i minimalne. Na koniec przypisujemy wynik
wartości do parametrów wyjściowych.

Na koniec kończymy deklarację funkcji za pomocą „pp_done()”.

Aby skompilować naszą nową funkcję, musimy utworzyć plik Makefile, który od tego czasu będziemy po prostu wyświetlać
jego utworzenie zostało omówione we wcześniejszym pytaniu.

użyj PDL::Core::Dev;
użyj ExtUtils::MakeMaker;
PDL::Core::Dev->import();

$pakiet = ["quickstats.pd",Quickstats,PDL::Quickstats];
%hash = pdlpp_stdargs($pakiet);

WriteMakefile(%hash);

sub MY::postamble {pdlpp_postamble($package)};

Przykład Makefile.PL

Nasza nowa funkcja statystyczna powinna się teraz kompilować przy użyciu wypróbowanego i przetestowanego sposobu Perla: „perl
Makefile.PL; robić" .

Powinieneś poeksperymentować z tą funkcją, zmieniając obliczenia oraz dane wejściowe i wyjściowe
parametry. W połączeniu ze stroną perldoc PDL::PP powinno to umożliwić szybkie
pisz bardziej zaawansowane procedury bezpośrednio w PDL::PP.

Korzystaj z PDL::FAQp online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    Darmowy kompilator Pascala
    Darmowy kompilator Pascala
    32/64/16-bitowy kompilator Pascala dla
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, GameBoy
    Advance, Nintendo NDS i DOS;
    semantycznie zgodny z...
    Pobierz darmowy kompilator Pascala
  • 2
    Informacje cyfrowe Canon EOS
    Informacje cyfrowe Canon EOS
    Canon nie ma licznika migawki
    zawarte w informacjach EXIF ​​an
    plik obrazu, w przeciwieństwie do Nikon i
    Pentaks. Nie ma oficjalnej bazy Canon
    podanie ...
    Pobierz informacje o Canon EOS DIGITAL
  • 3
    ODNIESIENIE
    ODNIESIENIE
    rEFInd jest rozwidleniem bootowania REFIt
    menedżer. Podobnie jak rEFit, rEFInd może
    automatycznie wykryj zainstalowany rozruch EFI
    ładowarki i prezentuje ładny GUI
    menu opcji rozruchu...
    Pobierz rEFInd
  • 4
    ExpressLuke GSI
    ExpressLuke GSI
    Ta strona pobierania SourceForge miała na celu
    zezwolić użytkownikom na pobranie mojego pliku źródłowego
    GSI, oparte na phhusson's great
    praca. Buduję zarówno Android Pie, jak i
    Androida 1...
    Pobierz ExpressLuke GSI
  • 5
    Caster muzyczny
    Caster muzyczny
    Music Caster to odtwarzacz muzyki z tacy
    który pozwala przesyłać lokalną muzykę do
    Urządzenie Google Cast. Na pierwszym biegu,
    musisz kliknąć strzałkę w swoim
    tak...
    Pobierz aplikację Music Caster
  • 6
    PyQt .Name
    PyQt .Name
    PyQt to powiązania Pythona dla
    Wieloplatformowy Qt firmy Digia
    framework do tworzenia aplikacji. Ono
    obsługuje Python v2 i v3 oraz Qt v4 i
    Qt v5. PyQt jest dostępny...
    Pobierz PyQt
  • więcej »

Komendy systemu Linux

Ad