2017-03-14 5 views
0

私は、情報のためのフィールドと別のセルのためのフィールドを持つネストされたセル配列を持っています。 補助変数を使用してセルを削除するにはどうすればよいですか?例えばOctave Cell Array

T =セルアレイ

P = T

P必要に応じて、P = {2}何度でも開始。

P {2} = []

セルの上の削除は、元のリストに表示されません。

+0

これはできません。 'P = T'を指定すると、' P'はオリジナルとは独立した 'T'の新しいコピーです。 – beaker

答えて

0

あなたがしたコードは、あなたが思うとは思わないと思います。 Octave \ Matlabは完全な意味でポインタの概念を実装していません。

ビーカーによると、割り当て操作はコピーなので、P = Tは別のセル配列です。実際には、パフォーマンス上の理由から、それらの1つの内容を変更するまでは同じ配列のままです。すなわち、P{2}={}まで、T={}およびP={[1,1] = [](0x0) [1,2] = {}(0x0)}までである。 (P = P{2}は途中で動作しません)。

Octave \ Matlabはメモリアドレッシングなどを公開しないので、これは問題ありません。つまり、変数PTが同じアドレスに格納されているかどうかを判断することはできません。等価演算子は配列の要素で動作し、セルに対しては完全に機能しません。

Octave \ Matlabは、数値処理用に設計されています。 簡単な作成操作で任意のデータ構造が範囲外です。 リストを作成するには、ソリューションがかなり複雑ではあるが、次のリンクが役立つかもしれません。 MATLAB linked list