c - 在 MEX/C 代码中访问 Matlab 类

标签 c matlab oop 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

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

谢谢

最佳答案

您在 MEX API 中具有以下函数:

mxGetProperty and mxSetProperty

它们的用法等同于:

value = pa[index].propname;

pa[index].propname = value;

请注意,这些函数会创建数据的深拷贝。有undocumented functions使用共享数据。

关于c - 在 MEX/C 代码中访问 Matlab 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105909/

相关文章:

C、为什么printf在个位数长后添加 "D"?

html - CGI 未根据 HTML 表单输入返回正确响应的问题

c - C 中 POSIX 线程运行时间和属性显示

matlab - 删除点云中的异常值

php - 使用父类方法填充的子类属性

c - 尝试添加代码来计算两个用户输入点之间的距离

matlab - 如何在Matlab中简单地连接两个具有不同字段的结构?

MATLAB 数组和容器

oop - 函数式编程会取代 GoF 设计模式吗?

c++ traits 设计中的习语