Tôi đã sử dụng Matlab và C++ được khoảng 10 năm. Đối với mọi thuật toán số được triển khai cho nghiên cứu của tôi, tôi luôn bắt đầu từ việc tạo mẫu bằng Matlab và sau đó dịch dự án sang C ++ để đạt được cải thiện hiệu suất gấp 10 lần đến 100 lần (tôi không đùa đâu). Tất nhiên, tôi đang so sánh mã C++ được tối ưu hóa với mã Matlab được vector hóa hoàn toàn. Trung bình, sự cải thiện là khoảng 50 lần Có rất nhiều điều tinh tế đằng sau cả hai ngôn ngữ lập trình và sau đây là một số hiểu lầm
Lý do tại sao bạn có thể đạt được hiệu suất 10x~100x trong C++ so với mã Matlab vector hóa
Tuy nhiên, thời gian phát triển trong C++ cũng là một hệ số gấp 10 lần so với Matlab Những lý do tại sao bạn nên sử dụng Matlab thay vì C++
Cuối cùng nhưng không kém phần Bởi vì một khi mã Matlab được vector hóa, lập trình viên sẽ không còn nhiều thứ để tối ưu hóa, hiệu suất mã Matlab ít nhạy cảm hơn nhiều đối với chất lượng của mã so với mã C++. Do đó, tốt nhất là tối ưu hóa các thuật toán tính toán trong Matlab và các thuật toán tốt hơn một chút thường có hiệu suất tốt hơn một chút trong Matlab. Mặt khác, kiểm tra thuật toán trong C++ yêu cầu lập trình viên giỏi viết các thuật toán được tối ưu hóa ít nhiều theo cùng một cách và để đảm bảo trình biên dịch không tối ưu hóa các thuật toán theo cách khác. Kinh nghiệm gần đây của tôi về C++ và Matlab Tôi đã tạo một số công cụ phân tích dữ liệu Matlab lớn trong năm qua và gặp phải vấn đề về tốc độ chậm của Matlab. Nhưng tôi đã có thể cải thiện tốc độ chương trình Matlab của mình lên gấp 10 lần nhờ các kỹ thuật sau
Mã được cải thiện là ~98% trong Matlab và ~2% trong C++ Tôi tin rằng có thể cải thiện tốc độ thêm 2 lần nữa (tổng cộng 20 lần) nếu toàn bộ công cụ được mã hóa bằng C++, đây là cải thiện tốc độ ~100 lần của các quy trình tính toán. I/O của ổ cứng sau đó sẽ chi phối thời gian chạy chương trình Câu hỏi dành cho kỹ sư Mathworks Khi mã Matlab được véc tơ hóa hoàn toàn, một trong những yếu tố hạn chế hiệu suất là hoạt động lập chỉ mục ma trận. Chẳng hạn, một phép toán sai phân hữu hạn cần được thực hiện trên Ma trận A có kích thước 5000x5000
Hoạt động lập chỉ mục ma trận làm cho mã Matlab chậm hơn nhiều lần so với mã C++. Hiệu suất lập chỉ mục ma trận có thể được cải thiện không? C có dễ hơn MATLAB không?Chúng tôi thường thấy rằng sinh viên bắt đầu lập trình bằng MATLAB dễ dàng hơn nhiều so với sử dụng C vì MATLAB giải quyết được nhiều vấn đề .
C có được sử dụng trong MATLAB không?C và C++ Trong MATLAB ® , bạn có thể mở rộng mã C và C++ của mình bằng MEX . Điều đó có nghĩa là bạn có thể sử dụng mã C và C++ hiện có mà không cần viết lại thuật toán của mình trong MATLAB. Các hàm MEX cho phép mã C và C++ tạo và sửa đổi các mảng MATLAB trong không gian làm việc MATLAB. . That means you can use existing C and C++ code without rewriting your algorithms in MATLAB. MEX functions enable C and C++ code to create and modify MATLAB arrays in the MATLAB workspace.
MATLAB hay C++ cái nào dễ hơn?Không, Matlab là một ngôn ngữ bắt buộc được viết bằng C/C++ và JAVA có nghĩa là nó dễ sử dụng hơn C++ nhưng những thứ bạn sẽ .
C ++ có tốt hơn MATLAB không?Sự khác biệt chính giữa Matlab và C++
. Trong khi đó, C++ được sử dụng cho các hệ thống nhúng như ô tô, rô-bốt và các thiết bị khác . |