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

但是C版本比我的Matlab版本产生更好的输出
因此,我希望Matlab版本产生所需的数据代码,然后将其加载到C中的变量中,然后让C对数据点进行处理,反之亦然,以便我可以比较两个程序在何处以及如何以不同方式工作相同的数据集
问题是一个数据集的长度至少为256个浮点,并且有数百个此类数据集

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

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

编辑:

我觉得,尽管VC ++ 2010调试器非常易于使用,但它们很难与其他任何程序结合使用。因此,如果可以在gcc的调试器中执行此操作(使用代码块或其他方法),我希望获得一些有关如何执行此操作的建议(即不必是VC ++的调试器)

最佳答案

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

实际上,我经常忘记的一件事,但在这里也可能会有所帮助,那就是MATLAB的LOADLIBRARY接口。这样就无需在MEX贴面中包装C代码。我从未尝试过,但是我想您可以在这里做同样的事情-将VS调试器附加到正在运行的MATLAB进程并设置断点等。

09-09 23:12
查看更多