File Exchange

image thumbnail

GUI Examples using Nested Functions

version 1.0 (3.55 KB) by

These two examples demonstrate how to use nested functions to reduce parameter passing in GUIs.

15 Ratings



View License

Editor's Note: This file was a File Exchange Pick of the Week

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.

Comments and Ratings (16)


Ashwini (view profile)

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.


sayed saad


Jake Bromage

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.

kazim abbas


Quintin Coetzee

heson chang

Schreier Manfred

Sinoy Xavier

Some error in both programms

Sanith Varkey - CTS

error in the programm

Mark Wolschon

Easy to follow.

rohit singh

navid barati

Brett Shoelson

Very nice illustration of nested functions.

MATLAB Release
MATLAB 7 (R14)

Inspired: Simple Examples How Create gui-applications

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

» Watch video