Install the app into MATLAB and use. Requires basic knowledge of dynamical systems to use and interpret results.
Link to documentation: https://drive.google.com/drive/folders/1152DOOwuD15LD_EzwgH3XpRv08BDNzFc?usp=sharing
Chapter 2 provides a quick overview of the theoretical background.
Chapter 3 contains the user guide and description of features.
Chapter 4 provides some real life examples and phase portraits generated using the app.
The app works with limited functionality for versions preceding R2020b. For versions prior to R2020b, mouse click interactions with the plots (adding trajectories and guessing solutions) do not work. All other functionality is retained.
Shoutout to Ameer Hamza and John D'Errico for their witty answers on MATLAB Answers!
Do comment to share suggestions/bugs and feedback etc. Don't forget to give a positive rating if the app helped you out and would like the app to be discovered by other users!
Mohit Kumar (2021). Phase Portrait Plotter (https://www.mathworks.com/matlabcentral/fileexchange/81026-phase-portrait-plotter), MATLAB Central File Exchange. Retrieved .
Inspired by: Adaptive Robust Numerical Differentiation, copyUIAxes, Pplane
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Hi Shiyun Dong,
Thanks for your kind words :)
I will incorporate the feature of editing the final plot when I find some time, perhaps this weekend (7th-8th March 2020).
Hi, thanks for the amazing work!
I'm wondering if it is possible to change the variables names of 'x-y' to something else. If there is a way to do that, could you please let me know? Thank you very much!
Hi Ignacio,
Thanks for pointing out the bug. The error HAS BEEN FIXED. Please go ahead and download the latest version and let me know if the problem persists.
(The error was caused due to the Enable/Disable property of the ButtonGroup being introduced only in R2020b. Now, I have improved the robustness of the code in general to be better compatible with earlier versions of MATLAB too.)
Hi! It installed but it´s giving this error code. I´m using R2020a version.
Unrecognized property 'Enable' for class 'matlab.ui.container.ButtonGroup'.
Error in PhasePortraitPlotterApp_fixed/createComponents (line 763)
app.FakeMenu.Enable = 'off';
Error in PhasePortraitPlotterApp_fixed (line 1297)
createComponents(app)
Error in PhasePortraitPlotter_v1App/startApp (line 86)
obj.AppHandle = eval('PhasePortraitPlotterApp_fixed');
Error in PhasePortraitPlotter_v1App (line 48)
startApp(obj)
Error in appinstall.internal.runapp>execute (line 116)
out = evalin('caller', [script ';']);
Error in appinstall.internal.runapp>runapp13a (line 95)
outobj = execute(fullfile(appinstalldir, [wrapperfile 'App.m']));
Error in appinstall.internal.runapp>preamble18b (line 60)
appobj = runapp13a(appinstalldir);
Error in appinstall.internal.runapp (line 13)
out = preamble18b(appinstalldir);
Error in matlab.apputil.run (line 45)
appinstall.internal.runapp(appName, appLocation);
Hi Sanghdeep and Andrew,
Thank you very much for bringing the issues to my notice. The issue HAS BEEN FIXED and I have uploaded the new version here. Please go ahead and use the new version. Hope you find the app useful. Let me know if the issue persists.
(By the way, the bug causing the crash seems to be very weird. All I had to do to fix the issue was to rename the file.)
I'm getting the same error "Maximum Recursion Limit Reached 500" please help fixing this error.
how could you upload an app having errors that stops on starting itself?
Hi Andrew,
Is that the complete error message that you got?
Ensure that you don't have a function of toChar in your MATLAB path.
As such, those lines are not directly part of the code that I wrote (seems to be some default MATLAB code). I'm not very sure why this is happening. I'm not well-versed with how to deal with this error. If there's more information you can give, I'll try to do what I can. Apart from that, maybe MATLAB answers will be able to help out.
I am getting an error when I try to launch the app:
Maximum recursion limit of 500 reached.
Error in opaque/char (line 88)
chr = toChar(opaque_array(1));
Caused by:
Maximum recursion limit of 500 reached.
What does this mean and how do I get around this?