These two examples, which were originally posted in the MATLAB newsgroup comp.soft-sys.matlab, demonstrate how to use the nested function capability of MATLAB 7.0 (R14) and later versions to reduce the number of parameters that need to be passed into and between callbacks inside a GUI M-file. Each nested function in one of these examples is contained in its own cell; if you enable cell mode in the MATLAB Editor and place the cursor in a given nested function, you will be able to see where each nested function begins and ends. Each example is extensively commented and indicates when variables from a parent function's workspace are being used by a nested function.
To execute these examples, simply unzip the ZIP file and place the contents in a directory on your MATLAB path, then execute "red_blue" or "red_blue_two" without the quotes at the MATLAB prompt.
For more information on nested functions, please check the Programming section of the MATLAB documentation.
NOTE: These examples will only function using MATLAB 7.0 (R14) and later. Versions of MATLAB prior to 7.0 did not have the ability to nest functions and you will receive an error about an undefined function or variable 'red' if you try to use it in earlier versions.
Good One .!
Fine example, Steven.
How can I pass a value to an argument out of the function red_blue?
For instance, I would like to be able to call the function as COLOR=red_blue() in another code, and get for COLOR whatever color I choose by clicking.
Ahh... another reason why I need to understand nested functions! I was slowly getting used to GUIDE's handles structure but was finding it to be very unsatisfying. This is much more elegant.
Steven: Thank you for taking the time. Nice job.
Some error in both programms
error in the programm
Easy to follow.
Very nice illustration of nested functions.