我完全是Matlab中的新手 我想问,当我们在Matlab软件或IDE中编写程序并用 .m(点m)文件保存并编译并执行它时,那么.m(点m)文件被转换成哪个文件?我想知道这一点,因为我听说matlab是平台独立的,我做了谷歌这个,但我得到转换matlab文件到C,C++等 对不起,这个愚蠢的问题,并提前感谢。编译后的Matlab代码
回答
Matlab是interpreted language。所以在大多数情况下,没有持久的中间形式。然而,有被加密的中间形式称为pcode
和也存在MATLAB编译器和编码器MATLAB它提供代码在其它高级语言(如C)
编辑: pcode
不会自动生成,并应该是平台/版本独立。但它的主要目的是加密代码,而不是编译它(尽管它做了一些部分编译)。要使用pcode
,您仍需要安装MATLAB环境,因此在很多方面它的行为与解释代码相似。
但是从你的后续问题我想你不太明白MATLAB的工作原理。代码被解释(尽管有一点即时编译),所以不需要持久的中间代码文件:表示代码的实际数据结构由MATLAB维护。与编译语言相反,开发周期类似于“编写代码,编译&链接,执行”,编译(实际:解释)步骤是执行的一部分,因此最终将以“编写代码,执行“在大多数情况下。
只是为了让您对编译器和解释器之间的差异有一个直观的理解。编译器将高级语言转换为低级语言(假设计算机可以执行的机器代码)。之后,编译代码(很可能存储在一个文件中)由您的计算机执行。另一方面,解释程序会逐个解释您的高级代码,在程序运行期间确定与高级代码对应的机器代码,并立即执行该机器代码。因此,没有必要让您的整个程序可以使用机器代码(因此在很多情况下,解释器不会存储整个机器代码,因为这只是浪费精力和空间)。
你可以像解释代码一样或多或少地看待解释:当你尝试手动确定某些代码的输出时,你需要逐行跟踪计算并跟踪结果。您通常不会将整个代码翻译成不同的格式,然后执行该代码。由于您不需要完整地翻译代码,因此不需要持久地存储中间表单。
正如我前面所说:你可以使用其他工具,如MATLAB coder到您的MATLAB代码转换为其他高语言如C/C++,或者您可以使用MATLAB compiler编译代码到取决于一些运行可执行形式库。但是这些仅用于非常特定的情况(例如,当您需要在没有MATLAB的计算机/嵌入式设备上部署MATLAB应用程序时,当您需要提高代码的性能时,...)
说明: My关于编译器和解释器的解释是对原型解释器和编译器的快速比较。许多真实案例介于两者之间,例如Java通常编译为(JVM)字节码,然后由JVM解释,并且可以对.NET语言及其CLR进行类似的描述。
谢谢Egon .......但我想问一下,当我们执行我们的.m(点m)文件时,这个'p'代码会自动生成,或者我们必须明确地执行。 – 2011-12-28 09:09:50
'p'代码不会自动生成,但我建议您远离'pcode'作为初学者。如果我上面的解释不够清楚,你可能会想看看编译和解释语言之间的区别。 – Egon 2011-12-28 12:25:50
感谢Egon的详细解释。这真的很有帮助。 – 2011-12-28 13:16:14
由于MATLAB是一个解释器,您可以编写代码,只需从IDE执行它,无需编译。
如果您想部署您的程序,您可以使用MATLAB编译器创建一个独立的可执行文件或共享库,您可以在C++项目中使用它。在Windows上,MATLAB代码将分别编译为.EXE文件或.DLL文件。
谢谢Victor May ........... – 2011-12-28 09:10:19
- 1. 编译后的matlab代码之间的移位控制
- 2. Matlab Mex代码无法编译
- 3. 从matlab运行编译后的matlab
- 4. 编译后代码中的'()'是什么?
- 5. 编译后生成的视图代码
- 6. 如何管理编译后的代码?
- 7. 可能看编译后的Delphi代码?
- 8. 关闭后编译的Buggy代码
- 9. Delphi .PAS代码在编译/编译后恢复到之前的代码
- 10. 翻译Matlab代码到Python
- 11. 编译错误的代码的编译
- 12. 重新编译编译器对编译后的代码有影响吗?
- 13. GMP-汇编代码?编译代码
- 14. 编译C代码后出错
- 15. 编译后选择代码窗口
- 16. 编译后无法执行Java代码
- 17. 保存后不会编译Arduino代码
- 18. 如何编译Java代码的Clojure代码后leiningen
- 19. 重新编译为* .Jar反编译并修复代码后?
- 20. Matlab:如何从外部API调查编译后的m代码进度?
- 21. 编译Yacc代码
- 22. C代码编译
- 23. 编译vhdl代码
- 24. 编译C代码
- 25. 代码不编译
- 26. 反编译汇编代码
- 27. 翻译Matlab代码,以numpy的
- 28. 翻译MATLAB代码到Python(SciPy的)
- 29. 错误编译C++时在Matlab的MEX 11代码文件
- 30. 大型C代码没有用MATLAB的mex编译
我建议你阅读文档:http://www.mathworks.co.uk/help/toolbox/compiler/index.html。 – 2011-12-26 14:03:21