File Exchange

image thumbnail


version (7.84 KB) by Damith Senaratne
Implements a controller panel to provide a primitive MATHEMATICA-'Manipulate'-like facility.

1 Download

Updated 26 Dec 2012

View Version History

View License

This class adds a panel containing slider/checkbox/popupmenu controllers to provide a primitive MATHEMATICA-'Manipulate'-like facility.

A function handle that accepts aribtrary number of parameters is passed in with respective controller specification. Each parameter gets associated with a controller and becomes a 'controlled parameter'. The controllers can be used to adjust the parameters, and thereby manipulate the function (and the graphics).

For example, the attached figure was generated using:
>> x = 0:.001:1;
>> ipanel(@(a,b)plot(x,sin(2*pi*a*x)+cos(2*pi*b*x)),{'slider','Frequency 1',{0,10,1}},{'slider','Frequency 2',{0,10,5}},'MinControlWidth',250,'LabelWidth',100)

For details please check:
>> help ipanel.ipanel

Public methods: Try 'help ipanel.funcname' for help on each 'funcname'
- ipanel (constructor; adds ipanel and controllers)
- remove (removes ipanel and the controllers from a figure)
- getControllers (provides handles to the ipanel's internals)
- getData (returns the values of controlled parameters)
- display (display current values of the controlled parameters)

Author : Damith Senaratne, (
Released date : 19th December 2012

Cite As

Damith Senaratne (2021). ipanel (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (3)


This is great! I agree with Jesus. It would be awesome if this update in real time, but maybe that is very difficult to do.

Damith Senaratne

Just found that 'ipanel' crashes when trying to resize or use ipanel while panning a zoomed figure. This is because a child object of type 'uicontextmenu' is created under Figure and 'ipanel' tries to access its Units.
Replacing line 643: "hCh = get(this.hFigure,'Children');" with "hCh = findobj(this.hFigure,'type','axes');" would fix the bug.
I would include the bug fix in the next version of 'ipanel'.

Jesús Lucio

Perfect! Great code, similar in functionality to Mathematica's "Manipulate", as the author asserts. Only one question: could it be possible for MALTAB to draw while the user is touching the slider? (something like 'drawnow')
Very good, and thanks a lot, Damith.

MATLAB Release Compatibility
Created with R2011a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!