MATLAB中可扩展的数据结构

rlb*_*ond 6 matlab linked-list

我需要在matlab中创建一个包含非常大的结构的队列.我不知道这个队列会有多大.Matlab没有链表,我担心重复分配和复制真的会减慢这个必须运行数千次的代码.我需要某种方式来使用可扩展的数据结构.我在matlab帮助中找到了几个链表的条目,但我无法理解发生了什么.有人可以帮我解决这个问题吗?

Amr*_*mro 6

我暂时发布了一个解决类似问题的解决方案.我尝试它的方法是通过分配具有初始大小的数组BLOCK_SIZE,然后BLOCK_SIZE根据需要继续增长它(只要少于10%*BLOCK_SIZE空闲时隙).

请注意,如果块大小合适,则性能与从头开始预分配整个阵列相当.请参阅另一篇文章,了解我所做的简单基准测试.


rlb*_*ond 2

好吧,我找到了简单的答案:

L = java.util.LinkedList;
Run Code Online (Sandbox Code Playgroud)