Như chúng ta đã biết, Numpy là một thư viện Python nổi tiếng để hỗ trợ tính toán ma trận trong Python, cùng với một bộ sưu tập lớn các hàm toán học cấp cao để hoạt động trên các mảng vectơ, ma trận và tensor [1]. Matlab là ngôn ngữ lập trình và môi trường tính toán số, hỗ trợ tính toán ma trận, vẽ đồ thị hàm và dữ liệu, thực hiện thuật toán, tạo giao diện và giao tiếp với các chương trình viết bằng ngôn ngữ khác [2]
bảng trên cùng. Biểu trưng numpy [3]; . Logo matlab [4]
Một đặc điểm chung của Numpy và Matlab là chúng được sử dụng rộng rãi trong tính toán ma trận và tính toán số. Tuy nhiên, chúng không hoàn toàn giống nhau. Trong bài đăng này, chúng tôi sẽ thảo luận về cách tạo số và mảng ngẫu nhiên trong cả Matlab và Numpy. Cụ thể, chúng tôi so sánh giữa Matlab và Numpy để tái tạo các số và mảng ngẫu nhiên giống nhau
Số ngẫu nhiên và mảngCả Matlab và Numpy đều có thể tạo số và mảng ngẫu nhiên theo một lệnh nhất định. Có hai khái niệm quan trọng
- Phân phối số ngẫu nhiên
- Hạt giống ngẫu nhiên
Đối với phân phối số ngẫu nhiên, chúng ta thường tính đến phân phối đều và phân phối chuẩn [Gaussian]. Trong Numpy, chúng ta có thể sử dụng
sample = rand[1, 2]
4 để tạo các số ngẫu nhiên được phân phối đồng đều. Trong Matlab, chúng ta có thể sử dụng sample = rand[1, 2]
5 để tạo các số ngẫu nhiên phân bố đều. Dưới đây là một số ví dụ đơn giảnNumPy trong Python
import numpy as npsample = np.random.rand[2]
print[sample]
đầu ra là
[0.70573498 0.8595017 ]
matlab
sample = rand[1, 2]
đầu ra là
ans =
0.5390 0.7686
Các ví dụ trên là về các số ngẫu nhiên được phân phối đồng đều. Chúng ta có thể tạo các số ngẫu nhiên tuân theo phân phối chuẩn chuẩn
- NumPy trong Python.
sample = rand[1, 2]
6 - matlab.
sample = rand[1, 2]
7
Có thể sử dụng một lệnh/hàm nhất định để tạo số ngẫu nhiên theo một phân phối cụ thể, nhưng mỗi khi chúng tôi tạo lại mã của mình, số ngẫu nhiên được tạo sẽ khác. Do đó, hạt giống ngẫu nhiên là một khái niệm quan trọng khác, cho phép người ta sửa các số ngẫu nhiên trong mỗi lần
Ví dụ: mã Python sau
________số 8sẽ tạo ra những con số ngẫu nhiên này
[0.77132064 0.02075195]
Trong Matlab
sample = rand[1, 2]
0chúng tôi có đầu ra sau
sample = rand[1, 2]
1So sánh các hàm Rand trong Numpy và MatlabTrong cả Numpy và Matlab, chúng có thể xử lý các tính toán của các mảng khác nhau
- Mảng 1-D [mảng một chiều] đề cập đến vector
- Mảng 2 chiều [mảng hai chiều] dùng để chỉ ma trận
- Mảng 3-D [mảng ba chiều] dùng để chỉ tensor bậc ba
- ……
- mảng n-D [mảng n chiều] dùng để chỉ tensor bậc n
Trong phần tiếp theo, chúng tôi sẽ cố gắng tạo các số ngẫu nhiên được phân phối đồng đều trong Numpy và Matlab, tương ứng. Chúng tôi cũng sẽ cố gắng tạo các số ngẫu nhiên giống nhau trong Numpy và Matlab
Tạo mảng 1-D
Để có được các số ngẫu nhiên được phân phối đồng đều giống nhau trong Numpy và Matlab, chúng tôi đặt kích thước vectơ là 4 và hạt ngẫu nhiên là 10. Hãy để chúng tôi thử nó
Nặng nề
sample = rand[1, 2]
2Chạy nó, chúng tôi có
sample = rand[1, 2]
3matlab
[0.70573498 0.8595017 ]
0Chạy nó, chúng tôi có
[0.70573498 0.8595017 ]
1Rõ ràng là cả hai vectơ ngẫu nhiên được tạo đều giống nhau
Tạo mảng 2 chiều
Đầu tiên, chúng tôi đặt kích thước ma trận là 2 nhân 3 và hạt giống ngẫu nhiên là 10
Nặng nề
[0.70573498 0.8595017 ]
2Chạy nó, chúng tôi có
[0.70573498 0.8595017 ]
3matlab
[0.70573498 0.8595017 ]
4Chạy nó, chúng tôi có
[0.70573498 0.8595017 ]
5Các ma trận ngẫu nhiên phân phối đồng đều được tạo là giống nhau
Tạo mảng 3-D
Đầu tiên, chúng tôi đặt kích thước ma trận là 2 nhân 3 nhân 2 và hạt giống ngẫu nhiên là 10
Nặng nề
[0.70573498 0.8595017 ]
6Chạy nó, chúng tôi có
[0.70573498 0.8595017 ]
7matlab
[0.70573498 0.8595017 ]
8Chạy nó, chúng tôi có
[0.70573498 0.8595017 ]
9Các tenxơ ngẫu nhiên phân phối đồng đều được tạo là giống nhau
Tạo các số ngẫu nhiên được phân phối bình thường trong Numpy và MatlabỞ trên, Numpy và Matlab có thể tạo các số ngẫu nhiên được phân phối đồng đều giống nhau nếu chúng ta sử dụng cùng một hạt giống ngẫu nhiên. Thật không may, vì Numpy và Matlab sử dụng các phép biến đổi khác nhau để tạo các mẫu từ phân phối chuẩn chuẩn, do đó chúng ta cần sử dụng cùng một phép biến đổi trong cả Numpy và Matlab
Trong thực tế, vẫn có thể sao chép đầu ra của hàm randn[] của Matlab giống như Numpy
Nặng nề
sample = rand[1, 2]
0Chạy nó, chúng tôi có
sample = rand[1, 2]
1matlab
sample = rand[1, 2]
2Chạy nó, chúng tôi có
sample = rand[1, 2]
3Các ma trận ngẫu nhiên phân phối chuẩn được tạo giống nhau
Người giới thiệu[1] Numpy trên Wikipedia. https. // vi. wikipedia. tổ chức/wiki/NumPy
[2] Matlab trên Wikipedia. https. // vi. wikipedia. org/wiki/MATLAB
[3] Logo Numpy là từ https. // chung. wikimedia. org/wiki/Tệp. NumPy_logo_2020. svg
[4] Logo Matlab là từ https. //www. Google. com/url?esrc=s&q=&rct=j&sa=U&url=https. //1000logo. net/matlab-logo/&ved=2ahUKEwj24b7C7bvzAhUKoXIEHci3AdQQr4kDegQIEhAC&usg=AOvVaw2JKOiqdedKhhEEDnpm7AcW
[5] Tái tạo số ngẫu nhiên trong Matlab và Python/NumPy. Trang web GitHub. https. //github. com/jonasrauber/randn-matlab-python
[6] Có thể tạo lại randn[] của MATLAB bằng NumPy không? . // stackoverflow. com/câu hỏi/3722138/is-it-possible-to-reproducte-randn-of-matlab-with-numpy
[7] So sánh mã Matlab và Numpy sử dụng tạo số ngẫu nhiên. https. // stackoverflow. com/câu hỏi/18486241/so sánh-matlab-and-numpy-code-that-uses-random-number-generation