MATLAB: GUIDE openingFnc called more than once

guide

Hi, Is there somewhere I can put GUIDE initialization code that is guarantied to be called exactly once? I've found that openingFnc is called every time the GUI gets focus, and I'm not happy with the "set a flag to indicate you've done this before" hack.

Best Answer

Using a flag is perfect, but if ~(exist('flag') == 1) would be a very poor implementation. Remember that this would search in the complete Matlab path for the files 'flag.m', 'flag.mexw64', variables, Java classes, folders etc. also. This is slow and might not reflect what you need.
But adding a flag to the figure's ApplicationData is fine and secure:
flagIsSet = isappdata(FigureHandle, 'MyFlag');
setappdata(FigureHandle, 'MyFlag', true);
if flagIsSet
% run your code, which should run once only
end