Objective c 如何从Objective C调用MATLAB代码
我打算用Matlab编写算法代码。我需要将.m文件转换成Objective-C可以访问的格式。当我尝试mcc时,出现了以下错误Objective c 如何从Objective C调用MATLAB代码,objective-c,matlab,mcc,Objective C,Matlab,Mcc,我打算用Matlab编写算法代码。我需要将.m文件转换成Objective-C可以访问的格式。当我尝试mcc时,出现了以下错误 The -t switch is no longer supported; the Compiler no longer generates C/C++ source code for M-functions (it generates wrapper functions instead, see the documenation for -W). 如果mcc没有
The -t switch is no longer supported; the Compiler no longer generates C/C++
source code for M-functions (it generates wrapper functions instead, see
the documenation for -W).
如果mcc没有创建C源代码,如何生成包装器?我是否必须同时复制m文件和包装器才能使一切正常工作?。这些包装器在iOS中工作吗?我对你写的东西有点困惑,所以我可能没有回答你真正的问题: Matlab文档提供了关于如何使用C程序中的函数的清晰说明。既然Objective-C只是开着旋钮的C,我看不出有什么理由不应该从Objective-C程序调用引擎。Matlab引擎在运行时所看到的都是有效的调用,它不知道调用程序是用什么语言编写的 我认为对于你来说,使用mcc是无关紧要的;您需要的是Mac上的Objective-C编译器。Matlab文档表明,XCode至v4.1版本中包含的编译器适用于Matlab引擎应用程序。根据我的经验,可能需要稍微修改一下编译器选项,才能使较新的编译器与您的Matlab安装一起工作,但仅此而已 如果您计划使用Objective-C调用Matlab,您可能不想从为算法核心编写M文件开始。实际上,您可能会这样做,但Matlab引擎并不是真正运行M文件,而是执行外部程序(如Objective-C程序)发送给它的命令。您的开发路线可能是(1)编写M文件来实现算法,然后(2)在需要Matlab功能的关键步骤编写调用Matlab引擎的Objective-C程序。您可以编写应用程序使引擎运行M文件(我认为),但这超出了我的经验 虽然您可以使用Matlab运行编译器来构建程序,但在这种情况下,您最好使用XCode(或您首选的Mac IDE)来构建程序,注意确保与Matlab引擎建立正确的链接。同样,文档说明了您需要做什么
不涉及包装。不需要M文件。祝你在iOS上运行Matlab引擎好运 MATLAB编译器不会将MATLAB代码转换为C代码,而且很长时间以来都没有这样做 相反,它会归档和加密您的MATLAB代码,并创建一个包装器(可以是一个可执行文件、一个库,或者,如果您还可以访问任何生成器产品,.NET程序集、Java.jar文件或Excel加载项)。这个包装器对您的MATLAB代码进行解密,并在MATLAB编译器运行时执行它,该运行时需要包含在您的应用程序中(但可以自由地重新发布) 你将无法在iOS上运行MCR——它的占地面积太大了。如果您的目标是另一个使用Objective-C的平台,您可以使用MATLAB编译器生成一个库,并从Objective-C调用它 MATLAB编码器(与MATLAB编译器不同)可以将MATLAB语言的子集转换为C代码。如果你的目标是iOS,这将是一种方法,或者你也可以远程运行你的MATLAB代码,让你的应用程序通过网络访问它