0

我有一个移植到 Matlab 的 C 函数

然而,C 版本比我的 Matlab 版本产生更好的输出,所以我希望 Matlab 版本产生所需的数据代码,然后加载到 C 中的变量中,让 C 对数据点进行处理,反之亦然,这样我可以比较两个程序在同一组数据上的不同工作方式和方式问题是一个数据集至少有 256 个浮点数,并且有数百个这样的数据集

如果我可以在 Matlab 中计算数据集,将它们存储在一个文件中并向 C 调试器发送一个确认信号,这样会更方便,这样当它从 Matlab 获得信号时,它会继续单步执行它的代码,加载数据从磁盘上的文件中提供了我的 matlab

甚至有可能做到这一点吗?如果可能的话,我也希望能够反向执行此操作,即 C 程序生成数据点并将其存储在文件中,然后向 Matlab 发出信号以继续单步执行其代码

编辑:

我觉得虽然 VC++ 2010 调试器非常易于使用,但它们很难与任何其他程序一起使用。因此,如果可以在 gcc 的调试器中执行此操作(使用 Codeblocks 或其他任何东西),我想要一些有关如何执行此操作的建议(不必是 VC++ 的调试器)

4

1 回答 1

0

如果将 C 代码打包为MEX文件,则可以将数据直接从 MATLAB 发送到 C 代码中。然后,您可以将 VS 调试器附加到 MATLAB 进程,并像往常一样在 MEX 文件中设置断点。这将允许您单步执行 MATLAB 代码,然后执行 C 代码。(请注意,当您单步执行 C 代码时,MATLAB 将无响应)。

实际上,我总是忘记但在这里也可能有用的一件事是 MATLAB 的LOADLIBRARY接口。这消除了将 C 代码封装在 MEX 胶合板中的需要。我从未尝试过,但我假设您可以在这里做同样的技巧 - 将 VS 调试器附加到正在运行的 MATLAB 进程并设置断点等。

于 2012-09-26T11:42:55.907 回答