Hướng dẫn can python fully replace matlab? - python có thể thay thế hoàn toàn matlab không?

(Xin lỗi, không thể tìm thấy một diễn đàn tốt hơn cho việc này, vì vậy việc đăng ở đây)

Tôi đang tranh luận với một người bạn đang làm việc trong một chương trình giảng dạy điện toán khoa học và đang xem xét chuyển từ Matlab sang Python. Lời khuyên của tôi là chuyển sang Python tay xuống, vì Numpy và Scipy có thể làm khá nhiều điều mà Matlab có thể làm, theo hiểu biết tốt nhất của tôi.

Bạn tôi bị cám dỗ đồng ý, nhưng đã đưa ra những lo ngại sau:

  • Tôi chủ yếu là một người ML và số liệu thống kê, không phải là người mẫu và mô phỏng, vì vậy tôi có thể thiếu một số thứ mà Matlab thực sự làm tốt hơn Numpy và Scipy. Đó có phải là trường hợp không? (Có thể là phương trình vi phân hoặc phương pháp số nâng cao hơn? Kỹ thuật kiểm soát và phản hồi? Hoặc có thể chỉ là một giao diện đẹp hơn? Vv ...)

  • MATLAB là một gói "cấp công nghiệp" đắt tiền, nó có thể xử lý quy mô tốt hơn so với các dự án Python nguồn mở. Phản hồi của tôi là "Container, Container, Container, Container !!!!", nhưng tôi có thể sai?

  • Đối tượng mục tiêu của anh ấy là tôi và EE sinh viên, vì vậy ngay cả khi tôi nói đúng về hai điểm ở trên, các ngành công nghiệp họ sẽ tìm cách tham gia vẫn có thể tập trung với Matlab, và dù sao Python không phải là một ý tưởng tốt?

Có ba khía cạnh cần xem xét khi thay thế Matlab bằng Python; Các khả năng ngôn ngữ cốt lõi, IDE và giá cả.

So sánh khả năng

Phần này phác thảo tất cả các khả năng của mỗi nền tảng. Nói tóm lại, Matlab có thể làm, Python cũng có thể làm cộng với nhiều hơn nữa. Tuy nhiên, những thứ như đại số tuyến tính và MATLAB tạo mẫu nhanh chóng làm sạch hơn.

Matlab

Tất cả mọi thứ trong MATLAB đều sẵn sàng đi kèm và các hộp công cụ được tích hợp liền mạch. Nó cũng trưởng thành hơn nhiều - nhưng không được thiết kế cho lập trình mục đích chung có nghĩa là bất cứ điều gì không liên quan đến đại số tuyến tính là đau đớn để thực hiện.

  • Hộp công cụ: Các hộp công cụ MATLAB rất tốt và triển khai Python thường đấu tranh để cạnh tranh với chúng (ngay cả đối với những thứ không quá chuyên dụng như thuật toán tối ưu hóa). The Matlab toolboxes are very good and python implementations often struggle to compete with them (even for not so specialised things like optimisation algorithms).
  • Đại số tuyến tính: MATLAB có các khả năng đại số tuyến tính ngắn gọn dễ đọc và giải thích. Matlab has concise linear algebra capabilities which are easier to read and interpret.
  • Khả năng trực quan hóa: Có nhiều khả năng trực quan rất tốt và rất rộng. Has very good and very broad range of visualisation capabilities.

Python

Python sẽ yêu cầu một số mô -đun bổ sung để nó trở thành một MATLABREPREPLATION tốt.

  • Lập trình mục đích chung: Python là ngôn ngữ lập trình phù hợp cung cấp sự linh hoạt hơn rất nhiều so với MATLAB. Python is a proper programming language which offers a lot more flexibility over Matlab.
  • Numpy: Cung cấp các mảng và các thói quen đại số tuyến tính, tuy nhiên có cú pháp khó xử hơn MATLAB. Tôi đã yêu thích tính năng phát sóng tuy nhiên, không còn rác rưởi. Provides arrays and linear algebra routines, however has more awkward syntax than Matlab. I have fallen in love with the broadcasting feature however, no more repmat rubbish.
  • SCIPY: Số liệu thống kê, tối ưu hóa và các công cụ toán học hữu ích khác. Stats, optimization and other useful mathematical stuff.
  • Matplotlib: Theo tôi, cung cấp các lô chất lượng cao hơn Matlab. Hơn nữa, nó được thiết kế để có thể cú pháp tương tự như MATLAB, vì vậy nên dễ dàng nhận được. Provides, in my opinion, higher quality plots than Matlab. Furthermore it is designed to be syntactically similar to Matlab so should be easy to pick up.
  • Sympy: Gói lập trình biểu tượng tốt. Good symbolic programming package.

So sánh IDE

Đây là nơi mà Python thiếu theo quan điểm của tôi. Tôi chỉ đơn giản tìm thấy sự phát triển thuật toán (đặc biệt liên quan đến rất nhiều đại số tuyến tính) ít đau hơn trong Matlab IDE.

Matlab

Tất cả mọi thứ trong MATLAB đều sẵn sàng đi kèm và các hộp công cụ được tích hợp liền mạch. Nó cũng trưởng thành hơn nhiều - nhưng không được thiết kế cho lập trình mục đích chung có nghĩa là bất cứ điều gì không liên quan đến đại số tuyến tính là đau đớn để thực hiện.

  • Hộp công cụ: Các hộp công cụ MATLAB rất tốt và triển khai Python thường đấu tranh để cạnh tranh với chúng (ngay cả đối với những thứ không quá chuyên dụng như thuật toán tối ưu hóa). Can easily explore functions in a very non-restrictive manner. Python also allows for debugging but is often not as cleanly implemented in the IDEs.
  • Đại số tuyến tính: MATLAB có các khả năng đại số tuyến tính ngắn gọn dễ đọc và giải thích. MATLAB has a good variable explorer which always good for viewing of many supported data types. Some python IDEs struggle to display numpy arrays which can be annoying.
  • Khả năng trực quan hóa: Có nhiều khả năng trực quan rất tốt và rất rộng. If code breaks during runtime, the variables still persist which helps debugging. Furthermore it is easier to run different scripts in a row assuming persistent variables. In Python you will have to manually save variables in a script to have them available for other scripts.
  • Python Very good for a breakdown of where your algorithms are bottlenecking.
  • Python sẽ yêu cầu một số mô -đun bổ sung để nó trở thành một MATLABREPREPLATION tốt. Single line instructions can be executed on the command line. Python is full support for this also in all good IDEs.
  • Lập trình mục đích chung: Python là ngôn ngữ lập trình phù hợp cung cấp sự linh hoạt hơn rất nhiều so với MATLAB. Results and variables can be quickly and painlessly plotted from the user interface. Most Python IDEs are geared towards software development and so don't support this (although sypder does have limited support through matplotlib).
  • Numpy: Cung cấp các mảng và các thói quen đại số tuyến tính, tuy nhiên có cú pháp khó xử hơn MATLAB. Tôi đã yêu thích tính năng phát sóng tuy nhiên, không còn rác rưởi. All functions have native documentation within the IDE.

Python

Python sẽ yêu cầu một số mô -đun bổ sung để nó trở thành một MATLABREPREPLATION tốt.

  • Hi xuất phát
  • Trình khám phá biến
  • Dòng lệnh
  • Tài liệu

So sánh giá

Python là miễn phí và có một cộng đồng hỗ trợ tích cực. Matlab cũng có một cộng đồng hỗ trợ tốt, nhưng là bất cứ điều gì nhưng miễn phí.

Python có hữu ích hơn Matlab không?

Phần này có một câu trả lời dễ dàng: Python là người chiến thắng trước Matlab.Python có hàng tấn thư viện và gói cho cả mô hình học máy trường học cũ và trường học mới.Thêm vào đó, Python là ngôn ngữ được sử dụng rộng rãi nhất cho nghiên cứu máy học hiện đại trong ngành công nghiệp và học viện.Python is the winner over Matlab. Python has tons of libraries and packages for both old school and new school machine learning models. Plus, Python is the most widely used language for modern machine learning research in industry and academia.

Matlab sẽ được thay thế?

PHẦN KẾT LUẬN.Julia sẽ thay thế MATLAB trong một số lĩnh vực phân tích số và khoa học tính toán nhưng MATLAB vẫn còn phổ biến và được sử dụng rộng rãi, sẽ mất nhiều thời gian để Julia thay thế Matlab.Julia will replace MATLAB in some areas of numerical analysis and computational science but MATLAB is still popular and widely used, it will take a very long time for Julia to replace MATLAB.

Tôi có nên học Matlab trước Python không?

Tóm lại, thật tốt khi có cả hai nhưng chắc chắn bắt đầu với Python.Cá nhân tôi thích Matlab.Khi bạn đang làm việc trên máy tính khoa học, đặc biệt nếu bạn cần xử lý ma trận và vectơ thì MATLAB sẽ cung cấp cho bạn trải nghiệm tốt nhất.Nhưng nó khá tốn kém, rất nhiều sinh viên thích Python.it is good to have both but definitely start off with python. I personally prefer MATLAB. When you are working on scientific computing, particularly if you need to handle matrices and vectors then MATLAB will give you the best experience. But it is quite costly, so many students prefer Python.