Check if object's property is empty
Afficher commentaires plus anciens
I have an xmlcomp.Edits object that was created when performing a comparison via the command
root = slxmlcomp.compare(...)
In this case, an xmlcomp.Edits object was created (see attached file) but all properties are empty. However, I don't know how to check if the properties are empty so I can catch the error that occurs when I try to access the properties. Is there a command to use when the object's properties are empty?

14 commentaires
Rik
le 20 Fév 2022
Maybe numel works as expected?
Monika Jaskolka
le 20 Fév 2022
Image Analyst
le 20 Fév 2022
Modifié(e) : Image Analyst
le 23 Mar 2022
What does this show
p = properties(xmlcomp)
if isfield(xmlcomp, 'Edits') && isempty(xmlcomp.Edits)
% Structure has the field but it's empty so do sommething with that knowledge.
end
Monika Jaskolka
le 20 Fév 2022
Monika Jaskolka
le 20 Fév 2022
Modifié(e) : Monika Jaskolka
le 21 Fév 2022
per isakson
le 21 Fév 2022
Monika Jaskolka
le 21 Fév 2022
Modifié(e) : Monika Jaskolka
le 21 Fév 2022
per isakson
le 21 Fév 2022
Sorry for the noise.
Rik
le 21 Fév 2022
If you don't find anything, you could also put the if in catch block. That's what I do sometimes as well. (e.g. to catch a memory error, which isn't really possible to catch in advance)
I'm confused. Could it be that 'TimeSaved' exists in root.mat and rootOP.mat, but isn't shown. I would ask @MathWorks Support Team. Anyhow, there is no property named 'missing'.
%% R2018b
OP = load("rootOP.mat");
r1 = load("root.mat");
r2 = load("root2.mat");
%%
isprop( r1.root, 'TimeSaved' )
isprop( r2.root2, 'TimeSaved' )
isprop( OP.root, 'TimeSaved' )
isprop( OP.root, 'missing' )
Henry Barth
le 23 Mar 2022
Modifié(e) : Henry Barth
le 23 Mar 2022
if you want a function for your check, you could implement it for your needs like this:
function ispropOut = SOME_FUNCTION(objIn,nameIn)
ispropOut = false(size(objIn));
for nObjRow = 1:size(objIn,1)
for nObjCol = 1:size(objIn,2)
try
objIn(nObjRow,nObjCol).(nameIn);
ispropOut(nObjRow,nObjCol) = true;
catch
end
end
end
end
Adam Danz
le 23 Mar 2022
Réponses (1)
Fangjun Jiang
le 23 Mar 2022
Might this help?
>> EmptyRoot=xmlcomp.Edits('')
EmptyRoot =
Edits with no properties.
>> isequal(root,EmptyRoot)
ans =
logical
1
>> isequal(root2,EmptyRoot)
ans =
logical
0
Catégories
En savoir plus sur Data Type Identification dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

