2013-08-07 70 views
5

Tôi phải viết lại một số mã MATLAB vào C sau đó sẽ được nhúng vào Matlab bằng MEX một lần nữa. Cho đến nay, tôi đã đọc một số hướng dẫn và ví dụ về cách làm việc này cho các cấu trúc dữ liệu đơn giản. (Tôi đã không bao giờ làm điều đó trước đây, mặc dù tôi sẽ xem xét bản thân mình có kinh nghiệm trong cả Matlab và C).Truy cập các lớp Matlab trong MEX/C-code

Vì vậy, đây là vấn đề:

tôi đã đưa ra một cái gì đó như thế

classdef MyClass 
    properties 
      foo; 
      bar; 
      blub; 
      somethingElse; 
    end 

    methods 

      function obj = myFun(obj) % really just some random example code 
       obj.foo = obj.bar; 
       obj.blub = 42; 
       for i = 1:length(obj.somethingElse) 
        obj.somethingElse(i) = i*i; 
       end; 
      end 
    end 
end 

Tôi muốn viết lại myFun như một MEX/C-chức năng. Nếu tôi chuyển một lớp vào một hàm MEX, làm thế nào tôi có thể truy cập vào các thuộc tính khác nhau của lớp này?

Cảm ơn

Trả lời

9

Bạn đã các chức năng sau trong API MEX:

mxGetPropertymxSetProperty

sử dụng của họ là tương đương với:

value = pa[index].propname; 

pa[index].propname = value; 

Lưu ý rằng những chức năng tạo ra de ep bản sao của dữ liệu. Có undocumented functions để làm việc với dữ liệu được chia sẻ.

Các vấn đề liên quan