- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我已经在使用 SWIG 将一些 C++ 库移植到 Python 中,结果的质量给我留下了深刻的印象。所以我想坚持使用 SWIG..
最近有人问我要一个 Matlab 端口。这样的想法实际上已经在我的 todolist 中了。但每次我在 google对 Matlab 及其调用 C/C++ 代码的几种方法的低技能)。
据我了解,在主分支中存在一种未维护且几乎没有文档记录的方法,并且在此方向上的许多其他尝试都没有达到足够成熟以成为主分支的一部分:link .我想跨平台,因此我认为 COM 方式可能不是我的解决方案。
不过,这一次我发现有一个分支看起来相当有前途:link有人已经测试过这个解决方案了吗?万一,一个从 Matlab 调用移植的 C++ 代码的简单工作示例会非常有帮助..
编辑 1:我删除了对 C++11 的任何引用
编辑 2:matlab
分支(在答案中引用)目前正在评估中,将与 swig
主分支合并(参见:https://github.com/jaeandersson/swig/issues/72 和 https://sourceforge.net/p/swig/mailman/message/35209729/ )
最佳答案
由于我目前参与了为 SWIG 实现 MATLAB 模块的工作(我在您链接的邮件中写过),因此我可以提供一些背景信息并报告 2014 年 11 月的状态。
使用各种不同的方法为 SWIG 实现 MATLAB 模块已经进行了多次努力。截至今天(2014 年 11 月),它们都还没有成功地融入 SWIG 的主分支(我们希望在不久的将来改变这一点,见下文)。
和您一样,我正在使用 SWIG 将 C++ 项目(称为 CasADi)移植到 Python,并且几年来一直在关注 SWIG 中 MATLAB 支持的发展,因为这对我们的项目非常有用。在我有点参与的努力未能通过概念验证阶段之后,我决定自己试一试。今年 4 月(2014 年),我开始编码,它比我预期的要顺利得多。经过大约 2 周的编码,我已经实现了核心功能(包装函数、类等),并将其发布到 SWIG 社区。我很高兴看到 SWIG 列表中的许多积极响应,更高兴看到像 Kris(见他的回答)这样的人加入了这项工作并做出了巨大贡献。
模块目前的状态是它已经实现了大部分功能,并已成功用于 CasADi 和其他项目。对我来说,它清楚地表明选择的方法是正确的,即使在模块稳定和记录之前还有一些工作要做。我希望能够再次插入并真正设法将 SWIG 模块带到可以合并到 SWIG 主分支中的状态。但这取决于我是否/何时设法获得资金来开展这项工作。不过,我相信它很快就会发生。
最后,您的问题提到了 C++11。这确实是一个与 MATLAB 模块工作完全不同的问题。涉及 C++11 的内容主要在 SWIG 中处理,这与您输出到哪种语言无关。所以一般请查阅 SWIG 中的 C++11 支持。
关于c++ - 使用 SWIG 对 C++ 库进行 Matlab 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26664945/
我有一个 foo 类,它有一个 bar 方法,它接受可调用的东西(函数指针/仿函数)。这个可调用的东西应该作为绑定(bind)元素传递给另一个方法 doit 和第三个方法 bar_cb 方法。 #in
我正在尝试在我的 WPF 4.0 应用程序(使用 VS 2010 Pro RTM)中创建自定义 TabItem 模板/样式,但尽管一切似乎都正常工作,但我注意到跟踪窗口中存在绑定(bind)错误。 我
作为一名刚接触 Android 的开发人员,我想我可能误解了绑定(bind)服务。 我创建了一项服务来结束对服务器的访问。作为此服务的一部分,该服务正在监听多播地址,以识别本地网络上的设备何时出现和消
这个问题在这里已经有了答案: What is the use of the JavaScript 'bind' method? (23 个回答) 关闭 7 年前。 所以我一直在尝试了解一些 JS 上
我不明白这三种语法之间的区别: where a = f (b) do a <- f (b) do let a = f (b) 我确实明白了a <- f(b)与其他两个不同,在大多数情况下,我尝试了所有
我在将 Cocoa 项目从手动同步接口(interface)模型转换为绑定(bind)模型时遇到问题,这样我就不必担心接口(interface)粘合代码。 我关注了 CocoaDevCentral C
我正在尝试找出一种好的方法来对处理大数据集的代码进行并行化,然后将结果数据导入 RavenDb。 数据处理受 CPU 限制和数据库导入 IO 限制。 我正在寻找一种解决方案,以对 Environmen
我正在 foreach 循环中生成单选按钮。我试图将选中的属性绑定(bind)到父级中的基本可观察值。不幸的是,当单击单选按钮时,父级的属性似乎没有在单击处理程序中更新。 基于一些previous w
在我的 Windows Phone 应用程序中,我有两个 LongListSelectors并排在页面上。我想做到这一点,以便当用户滚动其中一个时,另一个滚动相同的量。 两个 LongListSele
我在网上看到这个问题准备面试: Given a non-preemptive kernel which type of process will get affected morein terms o
我有一个 foreach 绑定(bind),如下所示: Summary Permitting 原因是有两个选项卡始终存在,并且我根据是否添加了其他选项卡来添加其他选项
任何人都有绑定(bind)相同的情况DataContext到 TextBlock 中的 Text 属性(例如)。 我必须分配 DataContext以我的风格反射(reflect)基于 Datacon
给定以下代码: Login 和下面的javascript $(function () { $('#btnLogin').click(function () { co
我使用 boost::asio 创建了一个服务器。我在绑定(bind)到端点时遇到问题。所以,如果我在构造函数中初始化一个接受器: Server::Server(QWidget *parent) :
我正在将现有项目从 MySQL 转换为 Postgres。代码中有相当多的原始 SQL 文字使用 ? 作为占位符,例如 SELECT id FROM users WHERE
似乎在绑定(bind)某些数据时出错了,有人可以帮我解决我哪里出错了,尽管我无法弄清楚。 真的不需要在这里显示太多,这是 Binding,我已经通过移除背景并在其中放置颜色来测试背景,效果很好。 编辑
我正在尝试使用 wcf 构建一个 http 监听器(web 服务)。这个监听器是一个更大的桌面应用程序的一部分。此桌面应用程序还会调用 http 监听器。 当监听器接收到数据时,它应该被传递到桌面应用
嘿嘿。 我正在使用 Node.JS 和 child_process 来生成 bash 进程。我试图了解我是否正在执行 I/O 绑定(bind)、CPU 绑定(bind)或两者兼而有之。 我正在使用 p
尝试执行以下操作并出现“Got interpolation ({{}}) where expression was expected”错误。 {{item.name}} 谢谢!
我有一个导入的 Java 库,它是我解决方案中的“绑定(bind)库”项目。 我正在尝试从解决方案中的另一个项目绑定(bind)到第 3 方库中的服务。 第 3 方库文档 [在 java 中] 非常简
我是一名优秀的程序员,十分优秀!