オブジェクト指向プログラミング、特に MATLAB は初めてです。これは、オブジェクトの複数のインスタンスに関する基本的な質問です。
簡単な設定で私の問題を説明します。
まず、Node と Edge の 2 つのクラスを定義しました。ここで、Node にはプロパティ値があり、Edge には Node が含まれています。
classdef Node < handle
properties
value
end
と
classdef Edge < handle
properties
node1
end
次に、1 つのノードと 1 つのエッジを作成しました
n1=Node;
e=Edge;
そして、このノードをエッジ e に関連付けます
e.node1=n1;
値を n1 に割り当てると、問題が発生します
n1.value=5;
予想される答えで e からこの値を参照できます。
e.node1.value
ans = 5
しかし、eのインスタンスを参照しているノードn1を削除したい場合
e.node1=[]
次に、オブジェクト e のオブジェクト node1 はなくなりますが、Node 変数 n1 はまだそこにあります。
私が念頭に置いていた (そして望んでいた) ことは、変数 n1 と e.node1 は同じものですが、MATLAB がノード n1 の 2 つのインスタンスを作成したように見えます。1 つは n1 自体で、もう 1 つはオブジェクト内の node1 です。 e ですが、node1 から n1 の値を参照できます。
私の質問は、関連する e から n1 を削除したい場合、効率的な方法は何でしょうか? オブジェクト指向 MATLAB の背景に関するその他の説明は大歓迎です。