1 function res = isequal_ignore_handles(s1,s2)
2 %
function res = isequal_ignore_handles(s1,s2)
4 % generalization of isequal
for structures with possibly
5 % function_handles. as isequal does not work
for these,
6 % function_handles are skipped
9 % s1: general variable to be compared
10 % s2: general variable to be compared
13 % boolean, indicating wether the two variables are identical (
while ignoring
18 if ~isequal(
class(s1),
class(s2))
23 case 'function_handle'
27 % isequal does not work
for nan entries!!!
28 %res = isequal(s1,s2);
29 i1 = find(~isnan(s1));
30 i2 = find(~isnan(s2));
31 res = (isequal(size(s1),size(s2))) && ...
32 (isequal(i1,i2)) && isequal(s1(i1),s2(i1));
33 case {
'char',
'single',
'logical',
'rectgrid',
'triagrid',
'onedgrid'}
36 if length(s1)~=length(s2)
41 res = res && isequal_ignore_handles(s1{i},s2{i});
47 if length(intersect(fn1,fn2))~=length(fn1)
54 isequal_ignore_handles(s1.(fn1{i}),s2.(fn1{i}));
57 error(
'class type not yet supported');