Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编译后的Matlab代码_Matlab - Fatal编程技术网

编译后的Matlab代码

编译后的Matlab代码,matlab,Matlab,我对Matlab完全是个新手 我想问一下,当我们用Matlab软件或IDE编写程序并用 .m(dot m)文件,然后编译并执行它,然后将该.m(dot m)文件转换为哪个文件?我想知道这是因为我听说Matlab是独立于平台的,我做了谷歌,但是我把MATLAB文件转换成C,C++等。 对于这个愚蠢的问题,我深表歉意,并提前表示感谢。Matlab是一个很好的工具。所以在大多数情况下,没有持久的中间形式。然而,有一种加密的中间形式叫做MATLAB编译器和MATLAB编码器,它用其他高级语言(如C)来传

我对Matlab完全是个新手 我想问一下,当我们用Matlab软件或IDE编写程序并用 .m(dot m)文件,然后编译并执行它,然后将该.m(dot m)文件转换为哪个文件?我想知道这是因为我听说Matlab是独立于平台的,我做了谷歌,但是我把MATLAB文件转换成C,C++等。 对于这个愚蠢的问题,我深表歉意,并提前表示感谢。

Matlab是一个很好的工具。所以在大多数情况下,没有持久的中间形式。然而,有一种加密的中间形式叫做MATLAB编译器和MATLAB编码器,它用其他高级语言(如C)来传递代码

编辑:
pcode
不是自动生成的,应该独立于平台/版本。但它的主要目的是加密代码,而不是编译代码(尽管它会进行部分编译)。要使用
pcode
,您仍然需要安装MATLAB环境,因此在许多方面,它的作用类似于解释代码

但从你的后续问题来看,我想你还不太了解MATLAB是如何工作的。代码会被解释(尽管有一点即时编译),因此不需要持久的中间代码文件:表示代码的实际数据结构由MATLAB维护。与编译语言不同,在编译语言中,您的开发周期类似于“编写代码、编译&链接、执行”,编译(实际上是:解释)步骤是执行的一部分,因此在大多数情况下,您都会以“编写代码、执行”结束

只是为了让您直观地理解编译器和解释器之间的区别。编译器将高级语言转换为低级语言(比如说可以由计算机执行的机器代码)。之后,编译后的代码(很可能存储在文件中)由计算机执行。另一方面,解释器逐段解释高级代码,在程序运行期间确定哪些机器代码与高级代码相对应,并立即执行该机器代码。因此,实际上不需要拥有与整个程序等效的机器代码(因此在许多情况下,解释器不会存储完整的机器代码,因为这只是浪费精力和空间)

您可以或多或少地像人类解释代码一样看待解释:当您试图手动确定某些代码的输出时,您会逐行跟踪计算并跟踪结果。您通常不会将整个代码翻译成不同的形式,然后再执行该代码。而且,由于您不完全翻译代码,因此不需要持久地存储中间形式

正如我上面所说的:您可以使用其他工具,例如将MATLAB代码转换为其他高级语言,例如C/C++,或者使用将代码编译为依赖于某些运行库的可执行形式。但这些仅在非常特定的情况下使用(例如,当您必须在没有MATLAB的计算机/嵌入式设备上部署MATLAB应用程序时,当您需要提高代码性能时,…)


注意:我对编译器和解释器的解释是对原型解释器和编译器的快速比较。许多实际情况介于两者之间,例如,Java通常编译成(JVM)字节码,然后由JVM解释,对于.NET语言及其CLR也可以说是类似的

因为MATLAB是一个解释器,所以您可以编写代码并从IDE执行,而无需编译


<>如果你想部署你的程序,你可以使用MATLAB编译器创建一个独立的可执行文件或一个共享库,你可以在C++项目中使用它。在Windows上,MATLAB代码将分别编译为.EXE文件或.DLL文件。

我建议您阅读文档:。谢谢Egon……。但我想问的是,当我们执行.m(dot m)文件时,此“p”代码将自动生成,或者我们必须显式生成。
p
代码不是自动生成的,但是我建议你作为初学者远离pcode。如果我上面的解释不够清楚,您可能想看看编译语言和解释语言之间的区别。谢谢Egon的详细解释。这真的很有帮助。