Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Biểu tượng yêu thích OnWorks

PDL::MATLABp - Trực tuyến trên đám mây

Chạy PDL :: MATLABp trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh PDL :: MATLABp có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


PDL :: MATLAB - Hướng dẫn cho người dùng MATLAB.

GIỚI THIỆU


Nếu bạn là người dùng MATLAB, trang này là dành cho bạn. Nó giải thích sự khác biệt chính giữa
MATLAB và PDL để giúp bạn đi nhanh nhất có thể.

T tài liệu is không a hướng dẫn. Để làm điều đó, hãy truy cập PDL :: QuickStart. Tài liệu này
bổ sung hướng dẫn Bắt đầu Nhanh, vì nó nêu bật sự khác biệt chính giữa MATLAB và
PĐL.

Perl


Sự khác biệt chính giữa MATLAB và PDL là Perl.

Perl là một ngôn ngữ lập trình đa năng với hàng ngàn mô-đun có sẵn miễn phí
trên web. PDL là một phần mở rộng của Perl. Điều này cho phép các chương trình PDL truy cập vào nhiều tính năng hơn
hơn hầu hết các công cụ số có thể mơ ước. Đồng thời, hầu hết các khác biệt về cú pháp giữa
MATLAB và PDL là kết quả của nền tảng Perl.

Bạn do không đến kiến thức nhiều Perl đến be hiệu quả với PDL. Nhưng nếu bạn muốn học
Perl, có tài liệu tuyệt vời có sẵn trên mạng (http://perldoc.perl.org>) hoặc
thông qua lệnh "perldoc perl". Ngoài ra còn có một cổng thông tin dành cho người mới bắt đầu
(<http://perl-begin.org>).

Kho lưu trữ mô-đun của Perl được gọi là CPAN (http://www.cpan.org>) và nó có rất nhiều
các mô-đun. Chạy "perldoc cpan" để biết thêm thông tin.

THUẬT NGỮ: CHĂM


MATLAB thường đề cập đến vectơ, ma trận và mảng. Perl đã có các mảng, và
thuật ngữ "vectơ" và "ma trận" thường đề cập đến các tập hợp một và hai chiều của
dữ liệu. Không có thuật ngữ tốt để mô tả đối tượng của họ, các nhà phát triển PDL đã đặt ra thuật ngữ
"chăm"để đặt tên cho kiểu dữ liệu của chúng.

A chăm bao gồm một chuỗi số được tổ chức dưới dạng tập dữ liệu N chiều. Piddles
cung cấp khả năng lưu trữ hiệu quả và tính toán nhanh các ma trận N-chiều lớn. họ đang
tối ưu hóa cao cho công việc số.

Để biết thêm thông tin, hãy xem "Piddle vs Perl Mảng"sau trong tài liệu này.

COMMAND Cửa sổ IDE


Không giống như MATLAB, PDL không đi kèm với IDE chuyên dụng. Tuy nhiên, nó đi kèm với một
shell tương tác và bạn có thể sử dụng Perl IDE để phát triển các chương trình PDL.

PDL tương tác shell
Để khởi động trình bao tương tác, hãy mở một thiết bị đầu cuối và chạy "perldl" hoặc "pdl2". Như trong MATLAB,
shell tương tác là cách tốt nhất để học ngôn ngữ. Để thoát khỏi trình bao, hãy nhập
"exit", giống như MATLAB.

Writing PDL chương trình
Một IDE phổ biến cho Perl được gọi là Padre (http://padre.perlide.org>). Nó là chéo
nền tảng và dễ sử dụng.

Bất cứ khi nào bạn viết một chương trình PDL độc lập (tức là bên ngoài shell "perldl" hoặc "pdl2")
bạn phải bắt đầu chương trình bằng "use PDL;". Lệnh này nhập mô-đun PDL vào
Perl. Đây là một chương trình PDL mẫu:

sử dụng PDL; # Nhập mô-đun PDL chính.
sử dụng PDL :: NiceSlice; # Nhập mô-đun PDL bổ sung.
sử dụng PDL :: AutoLoader; # Nhập mô-đun PDL bổ sung.

$ b = pdl [2,3,4]; # Câu lệnh kết thúc bằng dấu chấm phẩy.
$ A = pdl [[1,2,3], [4,5,6]]; # Ma trận 2 chiều.

print $ A x $ b-> chuyển vị;

Lưu tệp này dưới dạng "myprogram.pl" và chạy nó bằng:

perl mychương trình.pl

New: Linh hoạt cú pháp
Trong các phiên bản hiện tại của PDL (phiên bản 2.4.7 trở lên) có một cú pháp ma trận linh hoạt
có thể trông cực kỳ giống với MATLAB:

1) Sử dụng dấu ';' để phân tách các hàng:

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

2) Sử dụng dấu cách để phân tách các phần tử:

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

Về cơ bản, miễn là bạn đặt "q" trước dấu ngoặc mở, PDL sẽ "làm những gì
ý bạn là ". Vì vậy, bạn có thể viết theo một cú pháp mà bạn cảm thấy thoải mái hơn.

MODULES CHO MATLAB NGƯỜI DÙNG


Có hai mô-đun mà người dùng MATLAB sẽ muốn sử dụng:

PDL :: NiceSlice
Cung cấp cho PDL một cú pháp cho các lát (ma trận con) ngắn hơn và quen thuộc hơn
Người dùng MATLAB.

% MATLAB
b (1: 5) -> Chọn 5 phần tử đầu tiên từ b.

# PDL không có NiceSlice
$ b-> slice ("0: 4") -> Chọn 5 phần tử đầu tiên từ $ b.

# PDL với NiceSlice
$ b (0: 4) -> Chọn 5 phần tử đầu tiên từ $ b.

PDL :: AutoLoader
Cung cấp trình tải tự động kiểu MATLAB cho PDL. Nếu một hàm không xác định "foo ()" được gọi,
PDL tìm kiếm một tệp có tên "foo.pdl". Nếu nó tìm thấy một, nó sẽ đọc nó.

BASIC Tính năng nổi bật:


Phần này giải thích cú pháp của PDL khác với MATLAB như thế nào. Hầu hết người dùng MATLAB sẽ muốn
bắt đầu ở đây.

Tổng quan "gotchas"
Chỉ Số
Trong PDL, các chỉ số bắt đầu từ '0' (như C và Java), không phải 1 (như MATLAB hoặc FORTRAN). Vì
ví dụ, nếu $ b là một mảng có 5 phần tử, các phần tử sẽ được đánh số từ 0 đến
4.

Hiển thị một đối tượng
MATLAB thường tự động hiển thị nội dung đối tượng. Trong các trình bao PDL bạn hiển thị
các đối tượng một cách rõ ràng bằng lệnh "print" hoặc phím tắt "p":

MATLAB:

>> a = 12
a = 12
>> b = 23; % Ức chế sản lượng.
>>

PDL Shell (perldl hoặc pdl2):

pdl> $ a = 12 # Không có đầu ra.
pdl> print $ a # In đối tượng.
12
pdl> p $ a # "p" là cách viết tắt của "print" trong shell.
12
pdl>

Tạo Piddle
Các biến trong PDL
Các biến luôn bắt đầu bằng dấu '$'.

MATLAB: giá trị = 42
PerlDL: $ value = 42

Cú pháp cơ bản
Sử dụng hàm tạo "pdl" để tạo mới chăm.

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

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

Ma trận đơn giản
MATLAB PDL
------ ------
Ma trận của những cái những(5) cái 5,5
Ma trận số không số không(5) số không 5,5
Ma trận ngẫu nhiên rand(5) ngẫu nhiên 5,5
Vectơ tuyến tính 1: 5 chuỗi 5

Lưu ý rằng trong PDL, dấu ngoặc đơn trong một lệnh gọi hàm thường là tùy chọn. Nó là
quan trọng là luôn để ý đến những điều không rõ ràng có thể xảy ra. Ví dụ:

pdl> p số không 2, 2 + 2

Điều này nên được hiểu là "số không (2,2) + 2" hay là "số không 2, (2 + 2)"? Cả hai đều
tuyên bố hợp lệ:

pdl> p số không (2,2) + 2
[
[2 2]
[2 2]
]
pdl> p số không 2, (2 + 2)
[
[0 0]
[0 0]
[0 0]
[0 0]
]

Thay vì cố gắng ghi nhớ thứ tự ưu tiên của Perl, cách tốt nhất là sử dụng
dấu ngoặc đơn để làm cho mã của bạn rõ ràng.

Các chuỗi có khoảng cách tuyến tính
MATLAB: >> linspace (2,10,5)
đáp án = 2 4 6 8 10

PerlDL: pdl> p số XNUMX(5) -> xlinvals (2,10)
[2 4 6 8 10]

Giải thích: Bắt đầu với trò chơi 1 chiều gồm 5 phần tử và chia đều
các giá trị cách nhau từ 2 đến 10.

MATLAB có một lệnh gọi hàm duy nhất cho việc này. Mặt khác, phương pháp của PDL là
Linh hoạt:

pdl> p số không (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ố không (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ố không (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]
]
]

Cắt và chỉ số
Trích xuất một tập hợp con từ một tập hợp dữ liệu được gọi là cắt lát. PDL và MATLAB
có một cú pháp tương tự để cắt, nhưng có hai điểm khác biệt quan trọng:

1) Các chỉ số PDL bắt đầu từ 0, như trong C và Java. MATLAB bắt đầu các chỉ số ở 1.

2) Trong MATLAB, bạn nghĩ rằng "hàng và cột". Trong PDL, hãy nghĩ "x và y".

MATLAB PerlDL
------ ------
>> Một pdl> p $ A
Một = [
1 2 3 [1 2 3]
4 5 6 [4 5 6]
7 8 9 [7 8 9]
]
-------------------------------------------------- -----
(hàng = 2, col = 1) (x = 0, y = 1)
>> A (2,1) pdl> p $ A (0,1)
trả lời = [
4 [4]
]
-------------------------------------------------- -----
(hàng = 2 đến 3, col = 1 đến 2) (x = 0 đến 1, y = 1 đến 2)
>> A (2: 3,1: 2) pdl> p $ A (0: 1,1: 2)
trả lời = [
4 5 [4 5]
7 8 [7 8]
]

Cảnh báo
Khi bạn viết một chương trình PDL độc lập, bạn phải bao gồm PDL :: NiceSlice
mô-đun. Xem phần trước "MODULES CHO MATLAB NGƯỜI DÙNG"để biết thêm
thông tin.

sử dụng PDL; # Nhập mô-đun PDL chính.
sử dụng PDL :: NiceSlice; # Cú pháp tốt để cắt.
sử dụng PDL :: AutoLoader; Trình tải tự động giống # MATLAB.

$ A = 4,4 ngẫu nhiên;
in $ A (0,1);

Matrix Hoạt động
Phép nhân ma trận
MATLAB: A*B
PerlDL: $ A x $ B

Phép nhân khôn ngoan nguyên tố
MATLAB: A. * B
PerlDL: $ A * $ B

Chuyển đổi
MATLAB: A '
PerlDL: $ A-> chuyển vị

Chức năng việc này tổng hợp dữ liệu
Một số hàm (như "sum", "max" và "min") tổng hợp dữ liệu cho tập dữ liệu N chiều.
Đây là nơi mà MATLAB và PDL thực hiện một cách tiếp cận khác:

Trong MATLAB, tất cả các hàm này đều hoạt động theo một chiều.
>> A = [1,5,4; 4,2,1]
Một = 1 5 4
4 2 1
>> tối đa (A)
đáp án = 4 5 4
>> tối đa (A ')
đáp án = 5 4

Nếu bạn muốn giá trị tối đa cho toàn bộ tập dữ liệu, bạn có thể sử dụng A đặc biệt (:)
ký hiệu về cơ bản biến toàn bộ tập dữ liệu thành một chiều 1 chiều
vectơ.

>> tối đa (A (:))
trả lời = 5
>> A = những cái (2,2,2,2)
>> tối đa (A (:))
trả lời = 1

PDL cung cấp hai chức năng cho mỗi tính năng.
tổng so với tổng
trung bình so với trung bình
tối đa so với tối đa
tối thiểu so với tối thiểu

Sản phẩm Dài tên hoạt động trên một thứ nguyên, trong khi ngắn tên hoạt động trên toàn bộ
chăm.

pdl> p $ A = pdl [[1,5,4], [4,2,1]]
[
[1 5 4]
[4 2 1]
]
pdl> p $ A-> tối đa
[5 4]
pdl> p $ A-> chuyển vị-> tối đa
[4 5 4]
pdl> p $ A-> max
5
pdl> p cái (2,2,2) -> max
1
pdl> p cái (2,2,2,2) -> max
1

Chú thích Lưu ý rằng PDL tổng hợp theo chiều ngang trong khi MATLAB tổng hợp theo chiều dọc. Trong khác
từ ngữ:

MATLAB PerlDL
max (A) == $ A-> chuyển vị-> tối đa
max (A ') == $ A-> tối đa

TIP: Trong MATLAB, bạn nghĩ rằng "hàng và cột". Trong PDL, hãy nghĩ "x và y".

Cao hơn chiều dữ liệu bộ
Một vấn đề liên quan là cách MATLAB và PDL hiểu tập dữ liệu có thứ nguyên cao hơn. MATLAB cũ là
được thiết kế cho vectơ 1D và ma trận 2D. Đối tượng chiều cao hơn ("mảng ND") là
được thêm vào đầu trang. Ngược lại, ngay từ đầu PDL đã được thiết kế cho các trò chơi N-chiều. Điều này
dẫn đến một vài điều bất ngờ trong MATLAB không xảy ra trong PDL:

MATLAB coi một vectơ là một ma trận 2D.
MATLAB PerlDL
------ ------
>> vector = [1,2,3,4]; pdl> $ vector = pdl [1,2,3,4]
>> size (vector) pdl> p $ vector-> dims
đáp án = 1 4 4

MATLAB xem "[1,2,3,4]" là ma trận 2D (ma trận 1x4). PDL coi nó như một vectơ 1D: A
kích thước duy nhất của kích thước 4.

Nhưng MATLAB bỏ qua kích thước cuối cùng của ma trận 4x1x1.
MATLAB PerlDL
------ ------
>> A = những cái (4,1,1); pdl> $ A = cái 4,1,1
>> size (A) pdl> p $ A-> dims
đáp án = 4 1 4 1 1

Và MATLAB xử lý ma trận 4x1x1 khác với ma trận 1x1x4.
MATLAB PerlDL
------ ------
>> A = những cái (1,1,4); pdl> $ A = cái 1,1,4
>> size (A) pdl> p $ A-> dims
đáp án = 1 1 4 1 1 4

MATLAB không có cú pháp trực tiếp cho mảng ND.
pdl> $ A = pdl [[[1,2,3], [4,5,6]], [[2,3,4], [5,6,7]]]
pdl> p $ A-> mờ
3 2 2

Hỗ trợ tính năng.
Trong MATLAB, một số tính năng như hỗ trợ ma trận thưa thớt không khả dụng cho ND
mảng. Trong PDL, về bất kỳ tính năng nào được hỗ trợ bởi piddles 1D và 2D, đều như nhau
được hỗ trợ bởi N-chiều piddles. Thường không có sự phân biệt.

Vòng lặp Cấu trúc
Perl có nhiều cấu trúc vòng lặp, nhưng chúng tôi sẽ chỉ hiển thị cấu trúc vòng lặp quen thuộc nhất
Người dùng MATLAB:

MATLAB PerlDL
------ ------
cho i = 1:10 cho $ i (1..10) {
disp (i) in $ i
endfor}

Chú thích Không bao giờ sử dụng vòng lặp for cho công việc số. Vòng for của Perl nhanh hơn của MATLAB,
nhưng cả hai đều nhợt nhạt trước một hoạt động "vectơ hóa". PDL có nhiều công cụ
tạo điều kiện cho việc viết các chương trình được vector hóa. Những điều này nằm ngoài phạm vi của hướng dẫn này. Đến
tìm hiểu thêm, xem: PDL :: Lập chỉ mục, PDL :: Phân luồng và PDL :: PP.

Tương tự như vậy, không bao giờ sử dụng 1..10 cho công việc số, ngay cả bên ngoài vòng lặp for. 1..10 là một
Mảng Perl. Mảng Perl được thiết kế để linh hoạt chứ không phải tốc độ. Sử dụng câu đố thay thế.
Để tìm hiểu thêm, hãy xem phần tiếp theo.

Piddle vs Perl Mảng
Điều quan trọng cần lưu ý là sự khác biệt giữa Chăm và một mảng Perl. Perl có một
đối tượng mảng mục đích chung có thể chứa bất kỳ loại phần tử nào:

@perl_array = 1..10;
@perl_array = (12, "Xin chào");
@perl_array = (1, 2, 3, \ @a another_perl_array, trình tự(5));

Mảng Perl cho phép bạn tạo cấu trúc dữ liệu mạnh mẽ (xem Ngày cấu trúc phía dưới), nhưng
họ đang không thiết kế cho số học công việc. Đối với điều đó, hãy sử dụng câu đố:

$ pdl = pdl [1, 2, 3, 4];
$ pdl = dãy 10_000_000;
$ pdl = những cái 600, 600;

Ví dụ:

$ điểm = pdl 1..10_000_000 # 4.7 giây
$ điểm = chuỗi 10_000_000 # mili giây

TIP: Bạn có thể sử dụng dấu gạch dưới trong số ("10_000_000" đọc tốt hơn 10000000).

Điều kiện
Perl có nhiều điều kiện, nhưng chúng tôi sẽ chỉ hiển thị một điều kiện quen thuộc nhất với MATLAB
người dùng:

MATLAB PerlDL
------ ------
if value> MAX if ($ value> $ MAX) {
disp ("Quá lớn") print "Quá lớn \ n";
giá trị elseif <MIN} elsif ($ value <$ MIN) {
disp ("Quá nhỏ") print "Quá nhỏ \ n";
else} khác {
disp ("Hoàn hảo!") print "Hoàn hảo! \ n";
kết thúc }

Chú thích Đây là một "gotcha":

MATLAB: khác
PerlDL: elsif

Nếu điều kiện của bạn có lỗi cú pháp, hãy kiểm tra xem bạn đã viết "elsif" của mình
đúng.

TIMTOWDI (Ở đó Is Xem thêm Hơn Một Way Đến Do Nó)
Một trong những điểm khác biệt thú vị nhất giữa PDL và các công cụ khác là tính biểu cảm
của ngôn ngữ Perl. TIMTOWDI, hay "Có nhiều hơn một cách để làm", là phương châm của Perl.

Perl được viết bởi một nhà ngôn ngữ học và một trong những thuộc tính xác định của nó là các câu lệnh có thể
được xây dựng theo những cách khác nhau để mang lại cảm giác tự nhiên hơn cho ngôn ngữ. Ví dụ, bạn
không chắc sẽ nói với một người bạn:

"Trong khi tôi chưa hoàn thành, tôi sẽ tiếp tục làm việc."

Ngôn ngữ của con người linh hoạt hơn thế. Thay vào đó, bạn có nhiều khả năng nói:

"Tôi sẽ tiếp tục làm việc cho đến khi tôi hoàn thành."

Do có nguồn gốc ngôn ngữ, Perl là ngôn ngữ lập trình duy nhất có loại
Uyển chuyển. Ví dụ, Perl có các vòng lặp while và các câu lệnh if truyền thống:

trong khi (! finish ()) {
tiếp tục làm việc();
}

if (! wife_angry ()) {
hôn_vợ ();
}

Nhưng nó cũng cung cấp sự thay thế cho đến khitrừ khi các câu lệnh:

cho đến khi (kết thúc ()) {
tiếp tục làm việc();
}

trừ khi (wife_angry ()) {
hôn_vợ ();
}

Và Perl cho phép bạn viết các vòng lặp và điều kiện ở dạng "postfix":

keep_working () cho đến khi hoàn thành ();

Kiss_wife () trừ khi wife_angry ();

Bằng cách này, Perl thường cho phép bạn viết mã tự nhiên, dễ hiểu hơn là
có thể bằng các ngôn ngữ lập trình hạn chế hơn.

Chức năng
Cú pháp của PDL để khai báo các hàm khác biệt đáng kể so với MATLAB.

MATLAB PerlDL
------ ------
function retval = foo (x, y) sub foo {
retval = x. ** 2 + x. * y my ($ x, $ y) = @_;
hàm end hàm trả về $ x ** 2 + $ x * $ y;
}

Đừng sợ hãi bởi tất cả các cú pháp mới. Đây là một chạy nhanh qua một chức năng
khai báo trong PDL:

1) "phụ"là viết tắt của" chương trình con ".

2) "my"khai báo các biến là cục bộ cho hàm.

3) "@_"là một mảng Perl đặc biệt chứa tất cả các tham số hàm. Điều này có vẻ như
giống như một cách kỳ lạ để thực hiện các chức năng, nhưng nó cho phép bạn tạo các chức năng có
số lượng tham số biến. Ví dụ: hàm sau nhận bất kỳ số nào trong số
và thêm chúng lại với nhau:

mysum phụ {
của tôi ($ i, $ tổng) = (0, 0);
với giá $ i (@_) {
$ tổng + = $ i;
}
trả lại tổng số $;
}

4) Bạn có thể gán giá trị cho nhiều biến cùng một lúc bằng cú pháp:

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

Vì vậy, trong các ví dụ trước:

# Điều này khai báo hai biến cục bộ và khởi tạo chúng bằng 0.
của tôi ($ i, $ tổng) = (0, 0);

# Điều này lấy hai phần tử đầu tiên của @_ và đặt chúng vào $ x và $ y.
của tôi ($ x, $ y) = @_;

5) Các "trở lại"câu lệnh cho giá trị trả về của hàm, nếu có.

BỔ SUNG Tính năng nổi bật:


ASCII Tập tin IO
Để đọc các tệp dữ liệu chứa các cột số được phân tách bằng khoảng trắng (như cách đọc
sử dụng MATLAB tải lệnh) một người sử dụng PDL rcol trong PDL :: IO :: Misc. Đối với một vị tướng
xem xét chức năng IO có sẵn trong PDL, xem tài liệu về PDL :: IO, ví dụ:
"help PDL :: IO" trong PDL2 shell hoặc "pdldoc PDL :: IO" từ dòng lệnh shell.

Ngày cấu trúc
Để tạo cấu trúc dữ liệu phức tạp, MATLAB sử dụng "pin mảng"Và"cấu trúc mảng".
Các mảng và hàm băm của Perl cung cấp chức năng tương tự nhưng mạnh mẽ và linh hoạt hơn.
Phần này chỉ là một cái nhìn tổng quan nhanh chóng về những gì Perl phải cung cấp. Để tìm hiểu thêm về điều này,
xin hãy đếnhttp://perldoc.perl.org/perldata.html> hoặc chạy lệnh "perldoc
perldata ”.

Mảng
Mảng Perl tương tự như mảng ô của MATLAB, nhưng linh hoạt hơn. Ví dụ, trong
MATLAB, một mảng ô về cơ bản vẫn là một ma trận. Nó được tạo thành từ các hàng, và các hàng
phải có cùng độ dài.

MATLAB
------
array = {1, 12, 'xin chào'; rand (3, 2), những(3), 'rác'}
=> OK
array = {1, 12, 'xin chào'; rand (3, 2), những(3)}
=> LỖI

Mảng Perl là một mục đích chung, cấu trúc dữ liệu tuần tự. Nó có thể chứa bất kỳ dữ liệu nào
kiểu.

PerlDL
------
@array = ([1, 12, 'xin chào'], [ngẫu nhiên (3,2), cái (3,3), 'rác'])
=> OK
@array = ([1, 12, 'xin chào'], [ngẫu nhiên (3,2), cái (3,3)])
=> OK
@array = (5, {'name' => 'Mike'}, [1, 12, 'hello'])
=> OK

Lưu ý rằng mảng Perl bắt đầu bằng tiền tố "@" thay vì "$" được sử dụng bởi
cái nôi.

Đến kiến thức về Perl mảng, xin vui lòng go đến <http://perldoc.perl.org/perldata.html> or
chạy các lệnh "perldoc perldata ”.

Băm
Hàm băm Perl tương tự như mảng cấu trúc của MATLAB:

MATLAB
------
>> drink = struct ('type', 'coke', 'size', 'large', 'myarray', {1,2,3})
>> drink.type = 'sprite'
>> drink.price = 12% Thêm trường mới vào mảng cấu trúc.

PerlDL
------
pdl>% drink = (type => 'coke', size => 'large', mypiddle => ones (3,3,3))
pdl> $ drink {type} = 'sprite'
pdl> $ drink {price} = 12 # Thêm trường mới vào hàm băm.

Lưu ý rằng hàm băm Perl bắt đầu bằng tiền tố "%" thay vì "@" cho các mảng và
"$" được sử dụng bởi piddles.

Đến kiến thức về Perl băm, xin vui lòng go đến <http://perldoc.perl.org/perldata.html> or
chạy các lệnh "perldoc perldata ”.

HIỆU QUẢ
PDL có các tính năng hiệu suất mạnh mẽ, một số trong số đó thường không có sẵn trong
các công cụ tính toán số. Các trang sau sẽ hướng dẫn bạn các tính năng này:

PDL :: Lập chỉ mục
Cấp: Người bắt đầu

Hướng dẫn dành cho người mới bắt đầu này bao gồm tính năng "vectơ hóa" tiêu chuẩn mà bạn đã
biết từ MATLAB. Sử dụng trang này để tìm hiểu cách tránh vòng lặp for để tạo chương trình của bạn
hiệu quả hơn.

PDL :: Phân luồng
Cấp: Trung gian

Tính năng "vectơ hóa" của PDL vượt xa những gì mà hầu hết các phần mềm số có thể làm được. Trong
hướng dẫn này, bạn sẽ học cách "phân luồng" qua các kích thước cao hơn, cho phép bạn
vectơ hóa chương trình của bạn xa hơn những gì có thể trong MATLAB.

điểm chuẩn
Cấp: Trung gian

Perl đi kèm với một mô-đun điểm chuẩn dễ sử dụng để giúp bạn tìm ra thời gian
để thực thi các phần khác nhau của mã của bạn. Nó là một công cụ tuyệt vời để giúp bạn tập trung
nỗ lực tối ưu hóa. Bạn có thể đọc về nó trực tuyến
(<http://perldoc.perl.org/Benchmark.html>) hoặc thông qua lệnh "perldoc
Điểm chuẩn ”.

PDL :: PP
Cấp: Nâng cao

PDL's Pre-Processor là một trong những tính năng mạnh mẽ nhất của PDL. Bạn viết một hàm
định nghĩa trong đánh dấu đặc biệt và bộ xử lý trước tạo ra mã C thực có thể được
đã biên dịch. Với PDL: PP, bạn có được tốc độ tối đa của mã C gốc mà không cần phải xử lý
với sự phức tạp đầy đủ của ngôn ngữ C.

Vẽ
PDL có khả năng lập kế hoạch đầy đủ tính năng. Không giống như MATLAB, PDL dựa nhiều hơn vào bên thứ ba
thư viện (pgplot và PLplot) cho các tính năng vẽ đồ thị 2D của nó. Âm mưu và đồ họa 3D của nó
sử dụng OpenGL cho hiệu suất và tính di động. PDL có ba mô-đun âm mưu chính:

PDL :: Đồ họa :: PGPLOT
Tốt cho: Vẽ các hàm và tập dữ liệu 2D.

Đây là giao diện của thư viện PGPLOT đáng kính. PGPLOT đã được sử dụng rộng rãi trong
cộng đồng học thuật và khoa học trong nhiều năm. Một phần vì tuổi của nó,
PGPLOT có một số hạn chế so với các gói mới hơn như PLplot (ví dụ: không có RGB
đồ họa). Nhưng nó có nhiều tính năng vẫn khiến nó trở nên phổ biến trong giới khoa học
cộng đồng.

PDL :: Đồ họa :: PLplot
Tốt cho: Vẽ các hàm 2D cũng như các tập dữ liệu 2D và 3D.

Đây là giao diện của thư viện vẽ đồ thị PLplot. PLplot là một mã nguồn mở hiện đại
thư viện lập đồ án khoa học. Nó hỗ trợ các lô của cả tập dữ liệu 2D và 3D.
PLplot được hỗ trợ tốt nhất cho các nền tảng unix / linux / macosx. Nó có một nhà phát triển tích cực
cộng đồng và hỗ trợ cho nền tảng win32 đang được cải thiện.

PDL :: Đồ họa :: TriD
Tốt cho: Vẽ các chức năng 3D.

Thư viện đồ họa PDL 3D nguyên bản sử dụng OpenGL làm chương trình phụ trợ cho các âm mưu và dữ liệu 3D
hình dung. Với OpenGL, thật dễ dàng để thao tác các đối tượng 3D kết quả với
chuột trong thời gian thực.

Writing GUI
Thông qua Perl, PDL có quyền truy cập vào tất cả các bộ công cụ chính để tạo nền tảng chéo
Giao diện đồ họa người dùng. Một tùy chọn phổ biến là wxPerl (http://wxperl.sourceforge.net>).
Đây là các ràng buộc Perl cho wxWidgets, một bộ công cụ GUI mạnh mẽ để viết chéo
các ứng dụng nền tảng.

wxWidgets được thiết kế để làm cho ứng dụng của bạn trông giống như một ứng dụng gốc trong
mọi nền tảng. Ví dụ, Perl IDE Padre được viết bằng wxPerl.

simulink
Simulink là một trình mô phỏng và mô phỏng hệ thống động học đồ họa. Nó có thể được mua
riêng biệt dưới dạng tiện ích bổ sung cho MATLAB. PDL và Perl không tương đương trực tiếp với
Simulink của MATLAB. Nếu tính năng này quan trọng đối với bạn, thì hãy xem có vảy:

<http://www.scilab.org>

Scilab là một phần mềm phân tích số khác. Giống như PDL, nó là mã nguồn mở và miễn phí. Nó
không có các tính năng độc đáo của PDL, nhưng nó rất giống với MATLAB. Scilab đi kèm với
Xcos (trước đây là Scicos), một trình mô phỏng và mô hình hệ thống đồ họa tương tự như Simulink.

BẢN QUYỀN


Bản quyền 2010 Daniel Carrera ([email được bảo vệ]). Bạn có thể phân phối và / hoặc sửa đổi điều này
tài liệu theo các điều khoản tương tự như giấy phép Perl hiện tại.

Xem: http://dev.perl.org/licenses/

Lời cảm ơn
Tôi muốn cảm ơn David Mertens, Chris Marshall và Sigrid Carrera vì
giúp xem lại các bản nháp trước đó của hướng dẫn này. Nếu không có giờ làm việc của họ, điều này
tài liệu sẽ không hữu ích từ xa cho người dùng MATLAB như ngày nay.

Sử dụng PDL :: MATLABp trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    Máy pha
    Máy pha
    Phaser là một công cụ mở nhanh, miễn phí và thú vị
    nguồn HTML5 trò chơi khung cung cấp
    Hiển thị WebGL và Canvas trên
    trình duyệt web trên máy tính để bàn và thiết bị di động. Trò chơi
    có thể được đồng ...
    Tải xuống Phaser
  • 2
    Động cơ VASSAL
    Động cơ VASSAL
    VASSAL là một công cụ trò chơi để tạo
    phiên bản điện tử của bảng truyền thống
    và các trò chơi bài. Nó cung cấp hỗ trợ cho
    kết xuất và tương tác mảnh trò chơi,
    và ...
    Tải xuống Công cụ VASSAL
  • 3
    OpenPDF - Ngã ba của iText
    OpenPDF - Ngã ba của iText
    OpenPDF là một thư viện Java để tạo
    và chỉnh sửa các tệp PDF bằng LGPL và
    Giấy phép nguồn mở MPL. OpenPDF là
    Mã nguồn mở LGPL/MPL kế thừa của iText,
    có ...
    Tải xuống OpenPDF - Một nhánh của iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Hệ thống tự động
    Phân tích khoa học địa lý - là một địa lý
    Phần mềm Hệ thống Thông tin (GIS) với
    khả năng to lớn cho dữ liệu địa lý
    chế biến và ana ...
    Tải xuống SAGA GIS
  • 5
    Hộp công cụ cho Java / JTOpen
    Hộp công cụ cho Java / JTOpen
    Hộp công cụ IBM dành cho Java/JTOpen là một
    thư viện các lớp Java hỗ trợ
    lập trình client/server và internet
    các mô hình cho một hệ thống chạy OS/400,
    i5/OS, hoặc...
    Tải xuống Hộp công cụ cho Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (hoặc D3 cho Tài liệu hướng dữ liệu)
    là một thư viện JavaScript cho phép bạn
    để tạo dữ liệu động, tương tác
    trực quan hóa trong trình duyệt web. Với D3
    bạn...
    Tải xuống D3.js
  • Khác »

Lệnh Linux

Ad