ObjDiff - Generic object comparator

버전 1.3.0.0 (3.34 KB) 작성자: Yair Altman
Compares objects of any type inc. Java, Matlab, HG handles, structs, cells & arrays
다운로드 수: 3.4K
업데이트 날짜: 2022/9/7

라이선스 보기

OBJDIFF compares two objects & returns an object of the same type with just the different fields/values. Unlike Matlab's SETDIFF or SETXOR, this OBJDIFF utility also compares structs, GUI handles, ActiveX, Matlab & Java objects, in addition to arrays & cells. OBJDIFF also allows comparison of numeric cell arrays, unlike SETDIFF/SETXOR. It also accepts anything that SETDIFF/SETXOR accept.
Syntax: [objectC,IA,IB] = objdiff(objectA, objectB, options, ...)
Inputs:
- objectA - first object to compare
- objectB - second object to compare. Field order in opaque objects does not matter.
Note: If objectB is not supplied, then objectA(1) is compared to objectA(2)
- options - optional flags as follows:
'rows' - see documentation for SETXOR
'dontIgnoreJava' - show different instances of the same java class (default=ignore them)
Outputs:
- objectC - object containing only the different (or new) fields, in a {old, new} pattern
- IA,IB - index vector into objectA,objectB such that objectC = [objectA(IA),objectB(IB)] (see SETXOR)
Examples:
>> objectA = struct('a',3, 'b',5, 'd',9);
>> objectB = struct('a','ert', 'c',struct('t',pi), 'd',9);
>> objectC = objdiff(objectA, objectB) % a=different, b=new in objectA, c=new in objectB, d=same
objectC =
a: {[3] 'ert'}
b: {[5] {}}
c: {{} [1x1 struct]}
>> objectC = objdiff(java.awt.Color.red, java.awt.Color.blue)
objectC =
Blue: {[0] [255]}
RGB: {[-65536] [-16776961]}
Red: {[255] [0]}
>> objectC = objdiff(0,gcf) % 0 is the root handle
objectC =
children: {[2x1 struct] []}
handle: {[0] [1]}
properties: {[1x1 struct] [1x1 struct]}
type: {'root' 'figure'}
>> [objectC,IA,IB] = objdiff({2,3,4,7}, {2,4,5})
objectC =
3 5 7
IA =
2
4
IB =
3
See also:
setdiff, setxor, isstruct, isjava, ishghandle, isobject, iscell, http://UndocumentedMatlab.com

인용 양식

Yair Altman (2024). ObjDiff - Generic object comparator (https://www.mathworks.com/matlabcentral/fileexchange/14395-objdiff-generic-object-comparator), MATLAB Central File Exchange. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R2007a
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux
카테고리
Help CenterMATLAB Answers에서 Structures에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
버전 게시됨 릴리스 정보
1.3.0.0

Various code fixes

1.1.0.0

Fixed: identical function handles should be treated as being equal

1.0.0.0

Fixed handling of identical objects per D. Gamble