gpt4 book ai didi

编译后的matlab代码

转载 作者:行者123 更新时间:2023-12-04 16:08:49 25 4
gpt4 key购买 nike

我完全是 Matlab 的新手我想问一下,当我们在Matlab软件或IDE中编写程序并保存时.m(点m)文件然后编译执行,那么那个.m(点m)文件转换成哪个文件呢?我想知道这一点,因为我听说 matlab 是独立于平台的,我用谷歌搜索了这个,但我将 matlab 文件转换为 C、C++ 等很抱歉提出这个愚蠢的问题,并提前致谢。

最佳答案

Matlab 是一个 interpreted language .所以在大多数情况下没有持久的中间形式。然而,有一个加密的中间形式叫做 pcode还有 MATLAB 编译器和 MATLAB 编码器,它们提供其他高级语言(如 C)的代码。

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

但从你的后续问题来看,我猜你不太了解 MATLAB 的工作原理。代码得到解释(尽管有一点即时编译),因此不需要持久的中间代码文件:表示代码的实际数据结构由 MATLAB 维护。与编译语言相比,您的开发周期类似于“编写代码、编译和链接、执行”,编译(实际上:解释)步骤是执行的一部分,因此您最终得到大多数情况下是“编写代码,执行”。

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

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

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

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

关于编译后的matlab代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8636267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com