Matlab是如何实现高效的子索引的?

Posted

技术标签:

【中文标题】Matlab是如何实现高效的子索引的?【英文标题】:How did Matlab implement efficient sub-indexing? 【发布时间】:2014-05-29 13:29:24 【问题描述】:

这是一个例子:

A(I) = D

I 是二进制过滤器或索引列表时

【问题讨论】:

【参考方案1】:

来自matlab docs

MATLAB® 数据的基础类型。有关 MATLAB 数组如何与 MATLAB 支持的变量一起使用的信息,请参阅MATLAB Data。

mxArray 是 C 语言的不透明类型。

意味着不公开底层实现,只公开一个 API。 mxArray 包含以下信息

它的类型 它的尺寸 与此数组关联的数据 如果是数字,变量是实数还是复数 如果稀疏,则其索引和非零最大元素 如果是结构体或对象,字段数和字段名

以及可以查看here的访问方法列表。在某些时候,它归结为一些指针算法,但是如上所述,这个实现没有公开。 matlabs内部内存布局的一个很好的探索可以找到here

【讨论】:

以上是关于Matlab是如何实现高效的子索引的?的主要内容,如果未能解决你的问题,请参考以下文章

如何在“结构”子索引中使用 FOR 循环? - MATLAB

如何使用iOS实现视频的直播点播缓存?-HTTP Live Streaming (HLS)

在 Qt 中如何对 QModelIndex 的直接子索引进行排序

如何在 Rails 中设置没有特定父 ID 的子索引路径?

如何理解canopen通讯中的索引和子索引

OpenCV 中的高效矩阵复制