File Exchange

image thumbnail

compare .fig files, or folders containing .fig files

version 1.0 (5.46 KB) by

compareFigFiles compares GUI (*.FIG) files, reporting components/properties that are different

3 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

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