逻辑索引如何工作?

在一些像Matlab这样的高级语言中,可以使用“逻辑索引”来选择数组中用于操作的整组条目。

我了解逻辑索引是什么以及如何使用它。

相反,我问:

  • 它是如何工作的(“幕后”)?
  • 它不是归结为一个for循环?
  • 如果是这样,为什么它比循环更快?

  • 解释的语言可以被认为是运行在仿真核心上的汇编程序的变体。 它们具有像汇编程序一样工作的堆栈和命令,而实际上并不是汇编程序。 他们是一台虚拟机。

    一个for循环可以被认为是告诉系统,设置一个值,运行一系列的任务,当你完成后,回来检查这个值。 如果它没有达到阈值,那么以规定的方式改变它,然后重复这些任务并回来。 在汇编程序中,您正在快速运行尖叫,但在“虚拟机”中并不是那么多。 考虑下面这个链接13:50和15:30之间的演示:(链接)

    这意味着什么似乎是for循环,实际上并不是for循环。 它是操作系统中断和虚拟内存。 它是在背景中进行病毒扫描和megasloth英国媒体报道。

    如果你有一个虚拟系统,你是否可以做一个快捷方式来寻址那些没有使用虚拟化for循环的内存,这是相当高效的? MatLab试图主要处理数据,所以它必须有非常有效的方法来存储,排序和选择虚拟机中的数据。

    MathWorks不会将这些细节公诸于众。 如果它有一个好主意,那么他们不希望它在Python和R中实现。 如果它有一个平庸的想法,那么他们不希望在明天被Python和R执行时被殴打。 无论哪种方式,在没有NDA的情况下,公众都可以访问特定方法的细节 - 这对他们来说可能是一个失败的主张。

    底线:

  • 它不是一个真正的“for”,即使是for循环,因为它实际上运行
  • 他们正在开放一些数据处理的内部部分以提高可用性
  • 由于负面的业务后果,他们不可能公开实际的代码
  • 值得注意的是,在做同样的事情时,矢量化代码可以胜过循环。 这意味着他们可能会将更多内部应用程序用于执行“任务序列”以获得性能改进。

    链接地址: http://www.djcxy.com/p/19155.html

    上一篇: How does logical indexing work?

    下一篇: Android Click Through PopupWindow