Matlab中的动态平衡数据结构?

Matlab中的动态平衡数据结构?,matlab,data-structures,Matlab,Data Structures,这说明 我不认为你(或我)可以在MATLAB中做动态数据结构。 我们必须使用MatlabOO特性和MATLAB类。因为我想 这些工具实际上是我制作的Java的MATLAB包装器 大胆地宣称这些设施不在MATLAB范围内。...的问题 语义学,我承认。如果您想使用 MATLAB,你必须使用OO和类,你不能用我的 将其视为核心语言,在用户级别缺少指针 现在假设一个包。新的数字以随机顺序添加到袋子中,并且仍然应该对数字进行排序。数量不详。因此,我需要一个动态数据结构:结构的大小必须能够改变。此外,结构

这说明

我不认为你(或我)可以在MATLAB中做动态数据结构。 我们必须使用MatlabOO特性和MATLAB类。因为我想 这些工具实际上是我制作的Java的MATLAB包装器 大胆地宣称这些设施不在MATLAB范围内。...的问题 语义学,我承认。如果您想使用 MATLAB,你必须使用OO和类,你不能用我的 将其视为核心语言,在用户级别缺少指针

现在假设一个包。新的数字以随机顺序添加到袋子中,并且仍然应该对数字进行排序。数量不详。因此,我需要一个动态数据结构:结构的大小必须能够改变。此外,结构必须能够达到平衡,即我需要使其有序


对于Matlab中的动态平衡数据结构要求,我应该使用哪种数据结构?

Matlab的矩阵本质上是动态的。如果您有一个有序数字的
向量
,并且希望在其适当位置插入一个新的
数字
(保持向量有序),您只需执行以下操作即可

[~, ind] = find(number<=vector,1,'first'); % determine where to insert
if isempty(ind), ind = numel(vector)+1; end % in this case, insert at the end
vector = [vector(1:ind-1) number vector(ind:end)]; % do the insert, extending the vector

[~,ind]=查找(数字这个答案完全过时了,自我写这篇文章以来,Matlab固有的OO功能在四年内有了巨大的进步。这对我来说意味着,你没有正确地完成你的研究,没有查看Matlab当前OO和其他数据结构特征的大量文档。@HighPerformanceMark Matlab works best关于矩阵,我无法理解你关于OO的说法。假设需要一个动态矩阵,有没有类似的东西?或者矩阵中的列大小需要不时更新?你也可以使用集合和映射。@EitanT是的,但在这里使用有意义吗?根据Luis的说法,Matlab的矩阵本质上是动态的。@hhh MATLAB在更改数组大小时会重新分配内存,这使得它效率非常低。这种方法与其他方法相比如何?我对HPM的OO感到困惑,为什么称它为“当然——不是很快”
。使用一些新颖的链表实现可以更快地实现吗?Matlab是否隐式实现了平衡?Matlab不允许您直接控制内存分配(没有malloc、指针等)。当你将向量重新定义为大于原来的值时,Matlab会重新分配内存。这取决于Matlab的工作方式,可能会很慢。很好。当ind为空时允许使用
ind:xxx
,这是Matlab的奇迹之一。@TryHard哇,我不知道!无论如何,这不允许我删除第2行,因为那时
1:ind-1
也将是空的。@LuisMendo你能更新你的答案吗,我没有理解这个问题--我花了一些时间…+1来评论。