ho iniziato a impazzire con la domanda precedente, cercando di scoprire dinamicamente quali campi erano tavola apparecchiata.
Non ho potuto farlo funzionare ma potrei ottenere (la maggior parte) le proprietà di sola lettura utilizzando la differenza tra i valori di ritorno di set(h)
e get(h)
.
L'unica proprietà che non viene visualizzata qui è la Parent
-proprietà che è impostabile ma non dovrebbe essere modificata nella domanda precedente.
Ecco come ho ottenuto le proprietà non impostabili:
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)
Questo produce una cella di nonSettableNames
:
nonSettableNames =
'Annotation'
'BeingDeleted'
'Type'
Immagino che tu possa ridurre tutto a un solo liner: 'fieldnames (rmfield (get (h), fieldnames (set (h)))'. Abbastanza intelligente, +1. –
@EitanT +1 per l'unico rivestimento! – user1884905
+1 - Non ho mai nemmeno notato che posso ottenere un valore di ritorno da 'set'! – Jonas