File Exchange

image thumbnail

Compare Two Structures

version 1.2 (2.48 KB) by

Compares two structures for equality

1 Download


View License

STRUCTCMP(A,B) returns logical 1 (TRUE) if structure A and B are the same
size, contain the same field names (case sensitive), same field sorting, and same values;
and logical 0 (FALSE) otherwise.

If A is defined and you set B = A, STRUCTCMP(A,B) is not necessarily
true. If A's or B's field contains a NaN (Not a Number) element, STRUCTCMP returns
false because NaNs are not equal to each other by definition. To considers NaN values to be equal
use STRUCTCMP(A,B, 'EqualNans', 'on')

The order in which the fields of each structure were created is important. To ignore the field
sorting use STRUCTCMP(A,B, 'IgnoreSorting', 'on')

Field names comparison is case sensitive. To ignore any differences in letter case use
STRUCTCMP(A,B, 'IgnoreCase', 'on')

STRUCTCMP(A,B, 'Report', 'on') displays a report on the command window

Comments and Ratings (2)

dm b

dm b (view profile)

Doesn't work correctly with struct arrays. If it doesn't support it, it might be good to add error message in case of struct array input.

Stephan Koehler

consider using isequaln, which I think does the job.



- Added error message when any input is not a structure.
- When report is 'on' the checking loop continues until the last field (does not use "break").

MATLAB Release
MATLAB 7.12 (R2011a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today