Mục lục:
Video: Tạo tệp Matlab MEX: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:36
Hướng dẫn cách tích hợp mã C đã biên dịch với Matlab. MEX là viết tắt của MATLAB Executable. Tệp MEX là các chương trình con được liên kết động được tạo ra từ mã nguồn C hoặc Fortran, khi được biên dịch, có thể chạy từ bên trong MATLAB theo cách tương tự như MATLAB M-tệp hoặc các hàm tích hợp. Các chức năng giao diện bên ngoài cung cấp chức năng truyền dữ liệu giữa các tệp MEX và MATLAB và khả năng gọi các hàm MATLAB từ mã C hoặc Fortran. Ở đây tôi sẽ chỉ cho bạn mọi thứ bạn cần để nhanh chóng tạo một tệp mex hữu ích. need: = a text editor = matlab 6.1 trở lên (các phiên bản trước đó cũng có thể tạo tệp mex nhưng định dạng hơi khác) = matlab có trình biên dịch c riêng đi kèm với nó, nhưng tôi đã sử dụng trình biên dịch c ++ trực quan vì tôi đã có nó.
Bước 1: Mã
tải xuống tệp tôi đã đính kèm: mextest1p0.cpp
cpp là viết tắt của c ++ ……… Đây là những gì mã làm: ……… nó nhận một số mà bạn gửi nó từ dấu nhắc lệnh matlab. Nó in "hello world" trong matlab, nó trả về hai đối số cho matlab, một mảng số hai phần tử và một chuỗi mà phần tử đầu tiên của mảng số trả về là 1 + số bạn đã gửi cho nó phần tử thứ hai của mảng số trả về là 2 + số bạn đã gửi nó ………. Đây là cách thực hiện nó: ………… lưu tệp vào máy tính của bạn khởi động matlab điều hướng trong matlab đến thư mục chứa tệp sau đó làm theo hướng dẫn biên dịch và thực thi ở đầu tệp.cpp. Tôi không thể viết các hướng dẫn này ở đây vì các lệnh có thể tự động chỉnh sửa các lệnh và làm cho chúng xuất hiện không chính xác. Trong hình bên dưới, bạn có thể thấy mã đang hoạt động. Đừng lo lắng về "cảnh báo dòng lệnh", nó dường như không có tác dụng gì. Lưu ý ở phía bên trái, thư mục hiện tại chứa tệp.cpp. Ở bên phải, bạn có thể thấy tôi đang biên dịch mã và sau đó thực thi nó từ matlab. Đọc qua tệp trong trình soạn thảo văn bản của bạn (ví dụ: notepad trong windows), nó được ghi chép rất tốt và tự giải thích, bạn sẽ có thể làm hầu hết mọi thứ bạn cần bằng cách tuân theo các quy ước trong mã (tức là sao chép và dán nó và thực hiện sửa đổi nhỏ) ################################################## ########################## …….. LƯU Ý …….. do một số tự động chỉnh sửa gây phiền nhiễu mà các lệnh thực hiện, mã như được thấy trên trang tiếp theo SẼ KHÔNG HOẠT ĐỘNG, bạn PHẢI TẢI TỆP mà tôi đính kèm thay vì sao chép và dán cái này. ##################################################### #######################
Bước 2: Đây là mã, KHÔNG SAO CHÉP VÀ DÁN
##################################################### ###################### …….. LƯU Ý ……..vì một số tự động chỉnh sửa gây phiền nhiễu mà các hướng dẫn thực hiện, đoạn mã hiển thị trên trang này SẼ KHÔNG LÀM VIỆC, bạn PHẢI TẢI TẬP TIN tôi đính kèm thay vì sao chép và dán tệp này. #################################### ########################################## // Bài này được viết bằng c ++ bởi leevonk // nó là mã cho tệp matlab mex // mã sẽ nhận một giá trị số và xuất ra hai giá trị số // hai số đầu ra được tính từ số đầu vào // mã cũng sẽ xuất ra một giá trị chuỗi // mã sẽ cũng in "hello world" #include "mex.h" void mexFunction (int nlhs, mxArray * plhs , int nrhs, mxArray * prhs ) {// ############## ############################### // ####### - in "hello world" - ### ########## // ######################################### ### mexPrintf ("Xin chào thế giới"); // ####################################### ##### // ######## - Nhận nội dung từ Matlab - ######### // ################ ############################ / * khai báo một biến mảng để giữ các giá trị đến * / double * InValues; / * nhận các giá trị được gửi từ matlab * / InValues = mxGetPr (prhs [0]); / * để sử dụng các giá trị này được gửi từ matlab, hãy thực hiện InValues [0], InValue [1], v.v. tùy thuộc vào số lượng giá trị có. InValues sẽ được sử dụng bên dưới * /// ########################################### ## // ######## - Trả về một mảng số - ########## // #################### ######################## / * khai báo mảng sẽ được gửi đến matlab (* làm cho nó thành một mảng) * / double * OutValues; / * Tạo / cấp phát đối số trả về, một ma trận 1x2 (1 hàng 2 cột) cho vị trí đầu tiên của mảng trả về (plhs [0]) * / plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Lấy con trỏ đến đối số trả về * / OutValues = mxGetPr (plhs [0]); / * gán giá trị cho OutValues sẽ nằm trong vị trí đầu tiên của mảng trả về, ở đây chúng tôi đang sử dụng InValues để tính toán OutValues * / OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ############################################## ########### - Trả về một chuỗi - ############## // ################# ############################ / * khai báo biến chuỗi sẽ được gửi đến matlab * / char * str; / * gán giá trị cho string * / str = "byebye"; / * đặt chuỗi vào vùng trả về mảng thứ hai (plhs [1]) * / plhs [1] = mxCreateString (str); // ########## ##################################//###########--trở lại nội dung khác - ############ // ################################## ############ / * để trả lại nhiều nội dung hơn, hãy làm theo các quy tắc chung ở trên nhưng đặt nội dung đó vào các vị trí plhs khác, plhs [somenumber] * /}
Bước 3: Nếu vì lý do gì thì nó không biên dịch
Nếu vì bất cứ lý do gì mà nó không biên dịch (nó hoạt động tốt trên máy tính của tôi), hãy xem những tài nguyên này, chúng là nơi tôi học được từ đó. Chúng có một chút trục trặc (sử dụng một số ngữ pháp cũ, không có chức năng, v.v.) nhưng nếu bạn quay đi quay lại giữa cả hai, bạn sẽ có thể kết hợp với nhau một thứ hoạt động. Http://web.ccr.jussieu.fr/ccr/ Documentation / Calcul / matlab5v11 / docs / 00009 / 009a1.htmhttps://cnx.org/content/m12348/latest/
Đề xuất:
Cách tạo một Ford Audiophile Stereo Radio Phát các tệp Mp3.: 7 bước
Cách tạo tệp tin Mp3 cho Ford Audiophile Stereo Radio Play: Tài liệu hướng dẫn này sẽ cung cấp cho bạn một vài chi tiết quan trọng về cách đáp ứng các yêu cầu về khả năng tương thích MP3 CD-R của Ford Audiophile (và có thể là Mach 300, Shaker 500 và Shaker 1000 ) âm thanh nổi nhà máy để bạn có thể ghi và thưởng thức các tệp MP3 trên đĩa CD-
Tạo Camera hành trình Pi Zero (pt. 3): Quản lý tệp & Cải tiến: 3 bước
Tạo camera hành trình Pi Zero (pt. 3): Quản lý tệp và các cải tiến: Chúng tôi tiếp tục với dự án camera hành trình Pi Zero và trong bài đăng này, chúng tôi quản lý tệp đồng thời bổ sung một số cải tiến trong quy trình. Dự án này đã gần hoàn thành và chúng tôi sẽ tiến hành kiểm tra đường trong bài đăng / video tuần sau
Cách tạo tệp Exe: 3 bước
Cách tạo tệp Exe: Xin chào, tôi sẽ hướng dẫn bạn cách tạo tệp thực thi. (còn được gọi là tệp.exe) Điều này không yêu cầu mã hóa. Chỉ cần giả mạo trình cài đặt. Các liên kết sẽ được cung cấp tại đây: InstallForge Vì vậy, không cần biết thêm, tôi sẽ hướng dẫn bạn cách tạo tệp a.exe
Cách nén tệp tin ISO của Psp sao lưu vào tệp CSO để tiết kiệm dung lượng.: 4 bước
Cách nén tệp ISO của bản sao lưu Psp của bạn thành tệp CSO để tiết kiệm dung lượng. có thể sử dụng được với Wine Trong Ubuntu. Bạn cũng sẽ cần một psp CFW (Cusstom Firm-Ware) để mak
Cách khắc phục các tệp dữ liệu không được hỗ trợ và tải xuống tệp video yêu thích cho PSP Portable của bạn: 7 bước
Cách khắc phục tệp dữ liệu không được hỗ trợ và tải xuống tệp video yêu thích của bạn cho PSP Portable của bạn: Tôi đã sử dụng Media Go và thực hiện một số thủ thuật để tệp video không được hỗ trợ hoạt động trên PSP của tôi. Đây là tất cả các bước mà tôi đã thực hiện , khi lần đầu tiên tôi có các tệp video không được hỗ trợ hoạt động trên PSP của mình. Nó hoạt động 100% với tất cả các tệp video của tôi trên PSP Po