我是一位经验丰富的MATLAB用户,但对C和MEX文件全新。我有一个用C语言编写的复杂程序,需要在MATLAB中调用。该程序由一个文件夹中的几十个文件组成,其中一个名为main.c,它处理来自命令行的输入,并将结果传递给执行实际计算的其他类。为C程序创建一个MATLAB MEX文件
通常,要从命令行安装此程序,我将在UNIX命令提示符下运行./configure,make。然后,运行该程序./runMyProgram -f input_file.txt -p some_parameters。该程序将一个由数字列表组成的文本文件作为输入,并在命令窗口中打印结果表。我想为程序提供一个MATLAB数组(而不是一个.txt文件)并获取一个数组(而不是打印的结果表)。
我已经阅读了The Mathworks(我发现它非常不透明)的MEX文档以及一些其他的“教程”,但我完全失去了 - 这些例子适用于非常简单的单文件C程序,真的不讨论如何处理更大更复杂的程序。用一个MEX文件替换main.c文件就足够了,这个文件可以做同样的事情吗?另外,如何在MATLAB中编译整个软件包?
我会很感激任何关于从哪里开始的简明英语建议,或者指向任何以易于理解的方式处理主题的教程。
看这里:http://www.shawnlankton.com/2008/03/getting-started-with-mex-a-short-tutorial/。当我刚开始时,这对我非常有帮助。 – Justin 2013-04-08 15:29:13
构建复杂的MEX文件是一种痛苦。不要指望它是一个美丽的体验。 :) – Memming 2013-04-08 18:17:46
为什么不使用'system'或类似的函数从MATLAB运行程序,然后解析输出?这样,您不必编写任何C代码或混淆该程序的代码(如果程序被作者更新,则不必再次执行)。 – wakjah 2013-04-09 10:51:31