プロパティ構造を介してプロットをコピーする場合は、読み取り専用プロパティ (Annotation、BeingDeleted、Parent、Type など) を除外する必要があります。オブジェクトの読み取り専用プロパティのリストを取得する方法はありますか?
質問は関連する質問から生じました
プロパティ構造を介してプロットをコピーする場合は、読み取り専用プロパティ (Annotation、BeingDeleted、Parent、Type など) を除外する必要があります。オブジェクトの読み取り専用プロパティのリストを取得する方法はありますか?
質問は関連する質問から生じました
どのフィールドが設定可能かを動的に見つけようとして、前の質問をいじり始めました。
うまく動作しませんでしたが、 と の戻り値の違いを使用して、(ほとんどの) 読み取り専用プロパティを取得できましset(h)
たget(h)
。
ここに表示されない唯一のプロパティはParent
-property です。これは設定可能ですが、前の質問で変更することは想定されていません。
設定不可能なプロパティを取得する方法は次のとおりです。
h = plot(1:0.2:10);
xx=get(h)
close all
h2 = plot(0);
settableHandles = set(h2);
settableNames = fieldnames(settableHandles);
allHandles = get(h2);
allNames = fieldnames(allHandles);
nonSettableHandles = rmfield(allHandles,settableNames);
nonSettableNames = fieldnames(nonSettableHandles)
これにより、次のセルが生成されnonSettableNames
ます。
nonSettableNames =
'Annotation'
'BeingDeleted'
'Type'
なぜ次のようなものを使用しないのですか
try
%// [set property]
catch ME
if ~isempty( regexp(ME.error, 'read only') )
continue;
else
%// [handle other error]
end
end