文件交换

图像缩略图

动力系统查看器

version 1.2.0.0 (15.3 KB) by 亨利·哈里森
图形用户界面,绘制动态系统流场(和更多)与滑块调整参数。
5.0
1评级

6下载

更新2013年3月15日

视图版本历史

查看许可协议

SysViewer动态系统图形界面。
h = sysviewer(opar,cpar,fcn,in)构建一个gui来查看
参数变化对单维动态的影响
系统。

oPar和cPar是定义顺序的两列单元格数组
参数和控制参数。第一列
包含参数名称(乳胶中要排版的字符串)。第二
列包含参数范围的1x2个向量。这个向量定义
图轴限制的顺序参数和滑块限制
控制参数。

系统由函数句柄fcn定义。对于一维
对于系统,这应该是一个有两个输入和一个输出的函数。的
第一个输入是系统状态,它将是1 -中的一个标量
尺寸系统。第二个输入是控制参数的向量
值。fcn的输出可以是顺序的变化率
参数(在这种情况下FCN是流程方程)或系统
电位(在这种情况下,FCN是电位函数)。哪个函数
可以由最后一个输入类型指示,其中一个字符串
'流动'或“潜力”。如果典型为空或省略,则'flow'是
违约。

对于用流定义的二维系统,fcn应该是一个单元格
数组,包含两个函数句柄,每个句柄输出的速率为
沿着一个维度改变。每个功能应该采取三个输入;这
前两个是顺序参数的标量值,第三个是a
控制参数矢量。用于定义的二维系统
潜在的FCN应使用上述输入并输出标量。

的输出h是一个包含图形对象句柄的结构体
GUI。仅用于高级调整或故障排除。

sysviewer(...,defs)初始化默认的参数滑块
矢量defs中的值。

sysViewer(…,'vectorize') speeds up computation for functions that
不能用向量求值。事实上,任何数量的尾随
参数将被传递给Chebfun。有关更多选项,请参阅chebfun
(Chebfun2和Chebfun2V用于二维选项)。

--------
例子:
------
一维
---
sysviewer({'\ phi' [-pi pi]},...
{' b / a ' [0 1];' Delta '[-2]},…
@ (x, c) c (2) * x-cos (x) - c (1) * cos (2 * x)……
“潜在的”);

sysviewer({'\ phi' [-pi pi]},...
{' b / a ' [0 1];' Delta '[-2]},…
@ (x, c) c (2) sin (x) 2 * c(1) *罪(2 * x)……
“流”);

sysviewer({'\ phi' [-pi pi]},...
{' b / a ' [0 1];2 ' \δω\ [2];“c”[0。5];'d'[0 .5]},…
@ (x, c) c (2) * x-cos (x) - c (1) * cos (2 * x) + c (3) * sin (x) + c(4) *罪(2 * x)……
“潜在的”);

sysviewer({'\ phi' [-pi pi]},...
{' b / a ' [0 1];2 ' \δω\ [2];“c”[0。5];'d'[0 .5]},…
@ (x, c) c (2) sin (x) 2 * c(1) *罪(2 * x) + c (3) * cos (x) + 2 * c (4) * cos (2 * x)……
“流”);
------
二维
---
sysViewer (' x ' 5 [5];'\dot{x}'[-5]},…
[{'\α';'\ beta';'\ delta'} Repmat({[ - 5 5]},3,1)],...
{@(x,dx,r)dx,@(x,dx,r)-r(1)。* x。^ 3 - r(2)。* x - r(3)。* dx}。.
“流”)

--------
依赖项(如果缺失,将提示用户下载和安装):
GUI布局工具箱
sliderPanel
UIBUTTON.
Chebfun:
- 稳定版本(仅限一维系统)
- Alpha版本(需要查看二维系统)
(截至2013年3月14日)

引用作为

亨利哈里森(2021年)。动力系统查看器(//www.tatmou.com/matlabcentral/fileexchange/40812-dynamical-system-viewer), MATLAB中央文件交换。检索

评论和评级(3.

亨利·哈里森

亚当,谢谢你的反馈。

是的,正是通过Strogatz(以及我教授糟糕的Matlab可视化)的工作激发了我写这篇文章。

我在一个角落删除了工具栏,但由于某种原因,我将它们添加回来。不记得我的原因是什么,如果我能记得我需要的工具,也许我会删除其余的但是假设。

我肯定会在下次oop,特别是在学习Python的OOP设计原则之后。Matlab Guis绝对看起来更容易。

感谢addlistener技巧!这一直困扰着我。

亚当Filion

很酷的工具,希望我在读研究生的时候有这个当我在研究Strogatz的非线性动力学和混沌。我有一些建议。

-就我个人而言,我发现在MATLAB中作为句柄类构建和维护应用程序要比通过纯函数式编程容易得多。你可以在这里找到一篇介绍这个想法和为什么应该使用它的文章:
//www.tatmou.com/company/newsletters/articles/writing-apps-in-matlab.html

- 删除您不希望用户玩的任何菜单或工具栏按钮。没有理由使用如此应用程序使用类似3D旋转工具的东西。例如,您可以使用以下方式删除它们:
菜单= findall(gcf,'类型','uimenu');
删除(菜单)
工具栏= findall (gcf、“类型”、“uitoolbar”);
删除(工具栏)

-尝试使用addlistener来创建连续的反馈,当拖动滑块时,像下面的东西对我来说工作得很好。
myslider = uicontrol('Style', 'slider', 'Callback', @sliderCB);
addlistener (myslider, ContinuousValueChange @sliderCB);

- 两个尺寸示例中有一个小字母,缺少一个{

亨利·哈里森

我愿意为有用的功能提供建议。

Matlab释放兼容性
创建R2012b
兼容任何释放
平台的兼容性
视窗 苹果系统 Linux

社区宝藏狩猎

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!