MATLAB Graphics Updater
Update your code to work with the MATLAB graphics changes in R2014b.
The MATLAB Graphics Updater app checks MATLAB files for code that requires updating in order to work with the MATLAB graphics changes introduced in R2014b. It produces an interactive HTML report with a list of possible issues, help dialogs with descriptions of the issues, and the recommended solutions. For some issues, the app can automatically replace the current code with the recommended solution.
Missing Graphics Finder
Analyze MATLAB figures for missing graphics objects.
The Missing Graphics Finder app detects when graphics objects are obscured behind uipanels within a figure. The app analyzes all open MATLAB figures and apps and generates a list of objects that are hidden behind panels. To fix them, set the uipanel as the parent of the hidden graphics object. This fix is compatible with previous versions of MATLAB.
Can we use this tool inside MATLAB R2016b on Linux (RHEL-7)?
Slightly more major issue this time. I am getting the error below when I try to run the graphics updater app in 15b.
Warning: The EraseMode property is no longer supported and will error in a future release. Use the ANIMATEDLINE function
for animating lines and points instead of EraseMode 'none'. Removing instances of EraseMode set to 'normal', 'xor', and
'background' has minimal impact.
> In waitbar>make_waitbarwin (line 233)
In waitbar (line 125)
In graphicsUpdater (line 89)
In MATLABGraphicsUpdaterApp/startApp (line 59)
In MATLABGraphicsUpdaterApp (line 38)
In appinstall.internal.runapp>execute (line 78)
In appinstall.internal.runapp>runapp13a (line 57)
In appinstall.internal.runapp>runcorrectversion (line 36)
In appinstall.internal.runapp (line 18)
Error using sprintf
Function is not defined for 'matlab.ui.Figure' inputs.
Error in waitbar>make_waitbarwin (line 247)
start(timer('TimerFcn', sprintf('try set(%g, ''Visible'', ''on''); catch end', ...
Error in waitbar (line 125)
Error in mtcodetools.ProgressBar/createWaitbar
Error in mtcodetools.ProgressBar
Error in runGraphicsUpdater
Error in graphicsUpdater (line 89)
Error in MATLABGraphicsUpdaterApp/startApp (line 59)
Error in MATLABGraphicsUpdaterApp (line 38)
Error in appinstall.internal.runapp>execute (line 78)
out = evalin('caller', [script ';']);
Error in appinstall.internal.runapp>runapp13a (line 57)
outobj = execute(fullfile(appinstalldir, [wrapperfile 'App.m']));
Error in appinstall.internal.runapp>runcorrectversion (line 36)
appobj = runapp13a(appinstalldir);
Error in appinstall.internal.runapp (line 18)
out = runcorrectversion(appmetadata, appentrypoint, addonmetadatadir);
Just a minor issue. The graphics updater app isn't removing itself from the path when I close it. Presumably because you're not returning a figure handle from the main function. Difficult one to catch I guess with that dialog window coming first and user also being able to hit cancel on that. Would be good to see a pattern for handling dialog apps cleanly.
Hi Peter, I'd be happy to help. Can you clarify whether your problem is with the updater tools or with updating your code.
I suggest that you send a support request to MathWorks and mention that you have contacted me through the File exchange. I can then help further.
Thanks for developing the tool. However, I couldn't get this to work with version 2015a. I still have missing graphics in my GUI that I developed with 2014a. Please help.
Many thanks for doing this. I just ran the graphicsUpdater & cleared most of the issues & now my gui app appears to be working nicely as before under R2014a. Saved me a ton of work.
OK, thank you for your help. The problem only was with some panels, and for the moment, I simply deleted them!
The Missing Graphics Finder should work while you are running your GUI application. The one exception that I can think of is when your GUI figure is modal, which blocks use of other GUIs. You may be able to get around this by CTRL-C when your GUI is running.
Do you have a problem with missing graphics in your GUI? If so, and the above trick doesn't work, I suggest you contact MathWorks Support and mention you have asked me via the File Exchange submission.
Thank you Ian,
It's clearer to me now -- you just point to the folder that holds the .m files you want to change.
For the Missing Graphics Finder, it doesn't seem like you can run it while a gui application is running, if the figures aren't independent of the gui, right? Is this a case for a bang application?
The MATLAB Graphics Updater overwrites your code when it makes changes so the location of your code will not change. A simple backup function is provided.
The starting folder is controlled by the MATLAB app system. I will investigate whether the starting folder can be changed although this is not something I can directly change.
Thanks for the utility. I'm a little confused, though: When you start it, it asks you to "Select folder to update for MATLAB graphics changes in 2014b", giving the default as "Downloads" (Windows 7). This is where the recommended changes will be stored? What about in the MATLAB folder? Thanks!! Doug
This utility works fine and is very quick even on a large dataset of M-files (tested on a server having more than 3000 M-files).
However a feature is missing : it would be great if we could export the HTML report in PDF or Word with "Show Details section" included. I could email the output report to software developers.
Thanks for this very handy tool!
Use mltbx format
Changing title of entry
Update ready for R2014b release
Create scripts with code, output, and formatted text in a single executable document.