访问MEX/C代码中的Matlab类

Chr*_*ris 6 c oop matlab mex

我必须将一些matlab代码重写为C,然后再使用MEX将其嵌入到Matlab中.到目前为止,我已经阅读了一些有关简单数据结构如何工作的教程和示例.(我之前从未这样做过,尽管我认为自己在Matlab和C方面都很有经验).

所以这是问题所在:

我已经给出了类似的东西

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
Run Code Online (Sandbox Code Playgroud)

我想将myFun重写为MEX/C函数.如果我将类传递给MEX函数,我该如何访问该类的不同属性?

谢谢

Amr*_*mro 11

您在MEX API中具有以下功能:

mxGetPropertymxSetProperty

它们的用途相当于:

value = pa[index].propname;

pa[index].propname = value;
Run Code Online (Sandbox Code Playgroud)

请注意,这些函数会创建数据的深层副本.有一些未记录的函数可以处理共享数据.