在某些高级语言(如Matlab)中,您可以使用“逻辑索引”来选择数组中的整个条目集进行操作。
我了解逻辑索引是和 如何使用它。
相反,我在问:
答案 0 :(得分:3)
解释语言可以被认为是在模拟核心上运行的汇编程序的变体。它们具有堆栈和命令,它们以汇编程序的方式工作,而实际上并不是汇编程序。它们是虚拟机。
for循环可以被认为是告诉系统,设置一个值,运行一系列任务,当你完成后再返回并检查该值。如果它没有达到阈值,则以规定的方式进行更改,然后重复这些任务并返回。在汇编程序中,您正在快速地进行尖叫,但是在" VM"没那么多。请考虑此链接的13:50和15:30之间的演示:(link)
这意味着看起来像for循环,实际上并不是for循环。它是操作系统中断和虚拟化内存。它是背景中的病毒扫描和巨型英雄软件。
如果你有一个虚拟系统,你是否可以为解决没有使用虚拟化for循环的内存做出捷径,这是合理有效的? MatLab尝试主要处理数据,因此必须有非常有效的方法在其虚拟机中存储,排序和选择数据。
MathWorks不会向公众公开这些细节。如果它有一个好主意,那么他们不希望它在Python和R明天实现。如果它有一个平庸的想法,那么他们不希望明天被Python和R殴打。无论哪种方式,在没有NDA的情况下,公众可以获得该特定方法的具体细节 - 这对他们来说可能是一个失败的主张。
底线:
值得注意的是,矢量化代码在执行相同操作时可以优于循环。这意味着他们可能正在应用更多的内部因素来执行"任务序列"为了提高绩效。