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

时间:2013-08-28 16:26:37

标签: matlab data-structures

answer个州

  

我不认为你(或我)可以在'MATLAB中做动态数据结构'。   我们必须使用MATLAB OO功能和MATLAB类。自从我想起   这些设施实际上是我制作的Java的MATLAB包装器   大胆宣称这些设施在MATLAB之外。一个问题   语义,我承认。如果你想用动态数据结构   MATLAB,你必须使用OO和类,你不能用我做的   被认为是核心语言,缺乏用户级别的指针。

现在假设一个包。新的数字以随机顺序添加到包中,但仍然需要订购数字。数量不明。因此,我需要一个动态数据结构:结构的大小必须能够改变。结构也必须能够平衡,即我需要订购它。

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

1 个答案:

答案 0 :(得分:2)

Matlab的矩阵本质上是动态的。如果您有vector个有序数字,并希望在适当的位置插入新的number(保持向量排序),您只需执行

[~, 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

当然,由于需要重新分配内存,因此速度不是很快。