File Exchange

image thumbnail

Manipulate: Interactive Parametrized Plotting

version 1.0 (3.87 KB) by

An interactive plotting tool similar to (with much fewer features) "manipulate" in Mathematica



View License

Many Mathematica users love the simple yet powerful command "manipulate". It allows user to interactively change the parameters and watch the graphical results updated in real time. However, to their disappointment, MATLAB does not have a similar function.

Now this m file, written in pure M-script, implements the SIMPLEST functionality of its Mathematica counterpart: The user could plot a parametrized curve, and manipulate as many parameters as he wants, and most importantly, the plot will be updated in REAL TIME as the user drags the slider.

This file makes use of a 'real time' slider. The idea was similar to a previous submission of a real time slider by Matt Jones, but my implementation was performed in a completely different way and no code from that submission was used in my file.

This is just the first installment, so the only thing that you can manipulate is a 2D curve. I plan to expand its functionality to support a greater variety of graphical objects. If you want any other new features added, please let me know.

The way to pass argument to manipulate.m is similar to that in Mathematica, but not quite the same. Please use

help manipulate

for the detailed usage. Or just type in


to watch a demonstration.

Have fun!

(Only partially tested with MATLAB R2012a and R2011a. Please report any bugs and/or inconvenience to help me improve this program.)

Comments and Ratings (5)

Yifei Wang

Fantastic! I m working with it for a long really helps.

Zhenyu Zhou


XJ (view profile)

Very useful to me, Thanks!
There are some bugs in this code.
you use persistent variable in 'slider_updater' function, which may cause the 'start(slider_timer(it))' unable to return, especially when mathfunc is complicated. It can be fixed by using a global variable to store last_slider_value.
Actually the last_slider_value is the current state of the parameters, I think there is no need to store the parameters in the line property 'UserData'.
Last, the x value, I think x wouldn't change during the function operation. So it's better to just use it in 'slider_updater' as a global variable rather than retrieving it from the line object.

Qianxi Yang

I have been using Mathematica to manipulate my parametrized plots and jump back to Matlab to continuing my work. This m file is really helpful and the coding is easy to understand. Definitely 5 star!


Hwang (view profile)

I saw the code @ilovematlab. Thank u so much.

MATLAB Release
MATLAB 7.14 (R2012a)

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

» Watch video

Win prizes and improve your MATLAB skills

Play today