MATLAB so với C++
Tôi có mục tiêu tạo ra phần mềm kế toán đơn giản nhất cho Mac và Windows để giúp các doanh nghiệp nhỏ ở Canada Show Điều này đã dẫn tôi đến 2 năm dài khám phá ngôn ngữ tốt nhất có thể cung cấp các tính năng này
Tôi đã thử Python, Java, C# và C++ mà không tìm thấy thứ tôi đang tìm kiếm Khi tôi phát hiện ra Javascript, tôi thực sự biết đó là ngôn ngữ phù hợp để sử dụng. Nghĩ về điều này ngày hôm nay khiến tôi càng nhận ra quyết định tuyệt vời như thế nào khi học, sử dụng và thành thạo Javascript. Đó là một con đường thú vị, đầy thử thách và hiệu quả mà tôi vẫn hài lòng Rõ ràng khi nhắc đến Javascript không phải không ám chỉ hệ sinh thái rộng lớn xung quanh nó. Đối với tôi, JS là cả một vũ trụ trong đó hầu hết mọi công cụ có thể tưởng tượng đều tồn tại. Thật tuyệt vời - thực tế. Cảm ơn tất cả những người đóng góp đã làm cho nó có thể Để rõ ràng hơn về mức độ mãnh liệt của tôi với Javascript, hãy nói rằng niềm đam mê đầu tiên của tôi là âm nhạc. Cho đến khi, tôi tìm thấy mã hóa bằng Javascript. Vâng tôi biết Vì vậy, cuối cùng, tôi đã chọn Javascript vì nó linh hoạt, thú vị, được sử dụng rộng rãi, hiệu quả cho cả phần mềm máy tính để bàn và trang web với khả năng tạo giao diện người dùng đẹp mắt hiện đại (giả sử có liên quan đến HTML và CSS) và cuối cùng là có cơ hội việc làm Các lớp MATLAB có thể định nghĩa các thuộc tính chung, mà bạn có thể sửa đổi các thuộc tính này bằng cách gán rõ ràng các giá trị cho các thuộc tính đó trên một thể hiện nhất định của lớp. Tuy nhiên, chỉ các lớp bắt nguồn từ lớp obj = SimpleClass('red');6 mới thể hiện hành vi tham chiếu. Sửa đổi một giá trị thuộc tính trên một thể hiện của một lớp giá trị (các lớp không bắt nguồn từ obj = SimpleClass('red');6), chỉ thay đổi giá trị trong ngữ cảnh thực hiện sửa đổi Các phần tiếp theo mô tả hành vi này chi tiết hơn Các đối tượng được truyền cho hàmMATLAB chuyển tất cả các biến theo giá trị. Khi bạn truyền một đối tượng vào một hàm, MATLAB sẽ sao chép giá trị từ hàm gọi vào biến tham số trong hàm được gọi Có thể bạn quan tâmTuy nhiên, MATLAB hỗ trợ hai loại lớp hoạt động khác nhau khi sao chép
Xem So sánh các lớp Xử lý và Giá trị để biết thêm thông tin về hành vi và cách sử dụng của cả hai loại lớp Truyền đối tượng giá trị. Khi bạn truyền một đối tượng giá trị cho một hàm, hàm này sẽ tạo một bản sao cục bộ của biến đối số. Chức năng chỉ có thể sửa đổi bản sao. Nếu bạn muốn sửa đổi đối tượng ban đầu, hãy trả lại đối tượng đã sửa đổi và gán nó cho tên biến ban đầu. Ví dụ, xem xét lớp giá trị, obj = SimpleClass('red');0 classdef SimpleClass properties Color end methods function obj = SimpleClass(c) if nargin > 0 obj.Color = c; end end end end Tạo một thể hiện của obj = SimpleClass('red');0, gán giá trị của obj = SimpleClass('red');2 cho thuộc tính obj = SimpleClass('red');3 của nó obj = SimpleClass('red'); Truyền đối tượng cho hàm obj = SimpleClass('red');4, hàm này gán obj = SimpleClass('red');5 cho thuộc tính obj = SimpleClass('red');3 function y = g(x) x.Color = 'blue'; y = x; end Hàm obj = SimpleClass('red');4 sửa đổi bản sao của đối tượng đầu vào và trả về bản sao đó, nhưng không thay đổi đối tượng ban đầu Nếu hàm obj = SimpleClass('red');4 không trả về giá trị, thì việc sửa đổi thuộc tính đối tượng obj = SimpleClass('red');3 sẽ chỉ xảy ra trên bản sao của function y = g(x) x.Color = 'blue'; y = x; end0 trong không gian làm việc của hàm. Bản sao này sẽ nằm ngoài phạm vi khi quá trình thực thi chức năng kết thúc Ghi đè biến ban đầu thực sự thay thế nó bằng một đối tượng mới Vượt qua đối tượng xử lý. Khi bạn truyền một giá trị điều khiển cho một hàm, hàm đó sẽ tạo một bản sao của biến điều khiển, giống như khi truyền một đối tượng giá trị. Tuy nhiên, vì bản sao của đối tượng xử lý đề cập đến cùng một đối tượng với đối tượng xử lý ban đầu, nên hàm có thể sửa đổi đối tượng mà không phải trả về đối tượng đã sửa đổi Ví dụ: giả sử bạn sửa đổi định nghĩa lớp obj = SimpleClass('red');0 để tạo một lớp dẫn xuất từ lớp obj = SimpleClass('red');6 classdef SimpleClass properties Color end methods function obj = SimpleClass(c) if nargin > 0 obj.Color = c; end end end end5 Tạo một thể hiện của function y = g(x) x.Color = 'blue'; y = x; end3, gán giá trị của obj = SimpleClass('red');2 cho thuộc tính obj = SimpleClass('red');3 của nó classdef SimpleClass properties Color end methods function obj = SimpleClass(c) if nargin > 0 obj.Color = c; end end end end9 Truyền đối tượng cho hàm obj = SimpleClass('red');4, hàm này gán obj = SimpleClass('red');5 cho thuộc tính obj = SimpleClass('red');3 Hàm obj = SimpleClass('red');4 đặt thuộc tính obj = SimpleClass('red');3 của đối tượng được tham chiếu bởi cả handle trả về và handle ban đầu Các biến classdef SimpleClass properties Color end methods function obj = SimpleClass(c) if nargin > 0 obj.Color = c; end end end end51 và function y = g(x) x.Color = 'blue'; y = x; end0 đề cập đến cùng một đối tượng obj = SimpleClass('red');7 Hàm obj = SimpleClass('red');4 đã sửa đổi đối tượng được tham chiếu bởi đối số đầu vào ( function y = g(x) x.Color = 'blue'; y = x; end0) và trả về một điều khiển cho đối tượng đó trong classdef SimpleClass properties Color end methods function obj = SimpleClass(c) if nargin > 0 obj.Color = c; end end end end51 MATLAB Vượt qua các Xử lý theo Giá trị. Một biến xử lý là một tham chiếu đến một đối tượng. MATLAB chuyển tham chiếu này theo giá trị Xử lý không hoạt động như tài liệu tham khảo trong C++. Nếu bạn chuyển một đối tượng xử lý cho một hàm và hàm đó gán một đối tượng khác cho biến xử lý đó, thì biến trong trình gọi sẽ không bị ảnh hưởng. Ví dụ, giả sử bạn định nghĩa một hàm classdef SimpleClass properties Color end methods function obj = SimpleClass(c) if nargin > 0 obj.Color = c; end end end end56 obj = SimpleClass('red');2 Truyền một đối tượng xử lý cho classdef SimpleClass properties Color end methods function obj = SimpleClass(c) if nargin > 0 obj.Color = c; end end end end56 obj = SimpleClass('red');4 Hàm ghi đè bộ điều khiển được truyền dưới dạng đối số, nhưng không ghi đè lên đối tượng được gọi bởi bộ điều khiển. Xử lý ban đầu function y = g(x) x.Color = 'blue'; y = x; end0 vẫn tham chiếu đối tượng ban đầu MATLAB có dễ hơn C 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 đề .
Tại sao C tốt hơn MATLAB?Sự khác biệt chính giữa Matlab và ngôn ngữ C là Matlab là môi trường điện toán tương tác trong khi Ngôn ngữ C là ngôn ngữ lập trình mục đích chung cấp cao.
MATLAB có dựa trên C không?Tính đến năm 2020, MATLAB có hơn 4 triệu người dùng trên toàn thế giới.
. MATLAB MATLAB có nhanh hơn C++ không?C++ có tốc độ xử lý trung bình nhanh hơn 500 lần so với mã Matlab . Điều này không chỉ áp dụng cho mã này mà còn có thể áp dụng cho bất kỳ so sánh mã nào khác giữa các tệp MEX của Matlab và C++. So sánh, lợi ích về tốc độ do C++ mang lại vượt xa sự đơn giản của Matlab. |