2

この回答は述べています

あなた (または私) が MATLAB で動的データ構造を作成できるとは思いません。MATLAB OO 機能と MATLAB クラスを使用する必要があります。これらの機能は実際には Java の MATLAB ラッパーであると考えているため、これらの機能は MATLAB の外部にあると大胆に主張します。セマンティクスの問題であることは認めます。MATLAB で動的データ構造を作成したい場合は、OO とクラスを使用する必要があります。ユーザー レベルでのポインターが欠けているコア言語と私が考えるものでは実行できません。

ここで、バッグを考えてみましょう。新しい番号はランダムな順序でバッグに追加されますが、番号は順序付けする必要があります。本数は不​​明です。したがって、動的なデータ構造が必要です。構造のサイズを変更できる必要があります。また、構造はバランスが取れている必要があります。つまり、順序付けする必要があります。

Matlab の動的にバランスのとれたデータ構造要件には、どのデータ構造を使用する必要がありますか?

4

1 に答える 1

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

もちろん、メモリの再割り当てが必要なため、これはあまり高速ではありません。

于 2013-08-28T16:57:21.000 に答える