File Exchange

image thumbnail

compare .fig files, or folders containing .fig files

version 1.02 (15.8 KB) by

compareFigFiles compares GUI (*.FIG) files, reporting differences in components/properties

2 Downloads

Updated

View License

Syntax:
compareFigFiles(folderName1, folderName2)
compareFigFiles(folderName, figFilename)
compareFigFiles(figFilename, folderName)
[diffStruct,data1,data2] = compareFigFiles(figFilename1, figFilename2)

Description:
compareFigFiles compares *.fig files, reporting internal components and properties that are different between corresponding fig files.

Inputs can be either a figure filename or folder name. When a folder name is specified, then all the corresponding fig file(s) in that folder will be compared to the other folder/file. Note: when one of the inputs is a folder, then only files that have the same name will be compared.

compareFigFiles(folderOrFilename) compares the specified input to the current folder (pwd).

[diffStruct,data1,data2] = compareFigFiles(file1,file2) returns a Matlab struct containing the non-matching components/properties. Each of the struct fields corresponds to a specific figure handle and property name, and contains a cell array of 2 values, for each of the compared files. data1 and data2 contain the raw data used for the comparison - a Matlab struct with fields corresponding to each of the components/properties defined in the fig file (see attached screenshot).
Examples:
compareFigFiles('C:\Yair',pwd); % compares corresponding fig files in 2 folders
compareFigFiles('C:\Yair'); % (same as above)

compareFigFiles('myApp', 'hisApp'); % compare 2 FIG files
compareFigFiles('myApp.fig','hisApp.fig'); % (same as above)

compareFigFiles('C:\Yair\myApp'); % compare C:\Yair\myApp.fig to (pwd)\myApp.fig
compareFigFiles('C:\Yair\myApp',pwd); % (same as above)
compareFigFiles(pwd,'C:\Yair\myApp'); % (same as above)

Technical Description:
http://undocumentedmatlab.com/blog/fig-files-format/

Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)

Comments and Ratings (2)

Erik Roberts

A really useful function. I'm currently using it with unit testing of plotting functions. However, it currently doesn't work with the 'compact' mode of `savefig`.

Erik Roberts

Updates

1.02

Fixed certain edge-cases; added support for savefig(...,'compact') mode

MATLAB Release
MATLAB 7.11 (R2010b)
Acknowledgements

Inspired by: ObjDiff - Generic object comparator

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

» Watch video