matlab中如何实现递归,Matlab中递归函数调用详解
利用单独的M文件并递归地调用该文件,既可以避免多个M文件的复杂性,又可以利用函数的优点。使用开关 switches或if elseif语句,可将回调函数装入调用函数内。
通常这样一种函数调用的结构为
function guifunc(switch)。
其中switch确定执行哪一个函数开关的参量,它可以是字符串 ' startup ' , ' close ' , ' sectolor ' 等等,也可以是代码或数字。如switch是字符串,则可如下面所示的M文件片段那样将开关编程。
if nargin < 1, switch = ' startup ' ; end;
if ~isstr(switch), error( ' Invalid argument ' ), end;
if strcmp(switch, ' startup ' ),
elseif strcmp(switch, ' setcolor ' ),
elseif strcmp(switch, ' close ' ),
end
如果是代码或字符串,开关也可以相同方式编程。
if nargin < 1, switch = 0; end;
if isstr(switch), error( ' Invalid argument ' ), end;
if switch = = 0,
elseif switch = =1,
elseif switch ==2,
end
下面的例子说明了方位角滑标如何可作为单独的函数M文件来实现:
function setview(switch)
if nargin < 1, switch = ' startup ' ; end;
if ~isstr(switch), error( ' Invalid argument. ' ); end;
vw = get(gca, ' view ' ); % This information is needed in both sections
if strcmp(switch, ' startup ' ) % Define the controls and tag them
Hc_az = uicontrol(gcf, ' Style ' , ' slider ' ,...
' Position ' ,[10 5 140 20],...
' Min ' ,-90, ' Max ' ,90, ' Value ' vw(1),...
' Tag ' , ' AZslider ' ,...
' Callback ' , ' setview( ' set ' ) ' );
Hc_min=uicontrol(gcf, ' Style ' , ' text ' ,...
' Position ' ,[10 25 40 20],...
' String ' ,num2str(get(Hc_az, ' Min ' )));
Hc_max = uicontrol(gcf, ' Style ' , ' text ' ,...
' Position ' ,[110 25 40 20],...
' String ' ,num2str(get(Hc_az, ' Max ' )));
Hc_cur =uicontrol(gcf, ' Style ' , ' text ' ,...
' Position ' ,[60 25 40 20],...
' Tag ' , ' AZcur ' ,...
' string ' ,num2str(get(Hc_az, ' Value ' )));
elseif strcmp(switch, ' set ' ) % Execute the Callback
Hc_az=findobj(gcf, ' Tag ' , ' AZslider ' );
Hc_cur-findobj(gcf, ' Tag ' , ' AZcur ' );
str = num2str(get(Hc_az, ' Value ' ));
newview - [get(Hc_az, ' Value ' ) vw(2)];
set(Hc_cur, ' String ' , str)
set(gca, ' View ' ,newview)
end
上述的两个例子均设置了 ' tag ' 属性,利用该属性和函数findobj寻找回调函数所需对象的句柄。
matlab中如何实现递归,Matlab中递归函数调用详解相关推荐
- C#中的递归APS和CPS模式详解(转载)
这篇文章主要介绍了C#中的递归APS和CPS模式详解,本文讲解了累加器传递模式.CPS函数.CPS变换.CPS尾递归.尾递归与Continuation等内容,需要的朋友可以参考下 累加器传递模式(Ac ...
- JAVA中的类和对象之this的详解
系列文章目录 第一章 JAVA中的类和对象之this的详解 目录 前言 一.为什么要有this引用 二.this的三种用法 1.this.成员变量 2.this.成员方法 3.this()调用其它的构 ...
- 对python3中pathlib库的Path类的使用详解
原文连接 https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...
- java中属性文件读取案例_java相关:Spring中属性文件properties的读取与使用详解
java相关:Spring中属性文件properties的读取与使用详解 发布于 2020-6-3| 复制链接 摘记: Spring中属性文件properties的读取与使用详解实际项目中,通常将一些 ...
- JAVA中希尔排序去的讲解_java 中基本算法之希尔排序的实例详解
java 中基本算法之希尔排序的实例详解 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shel ...
- python3库_对python3中pathlib库的Path类的使用详解
用了很久的os.path,今天发现竟然还有这么好用的库,记录下来以便使用. 1.调用库 from pathlib import 2.创建Path对象 p = Path('D:/python/1.py' ...
- python中requests库的用途-python中requests库session对象的妙用详解
在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...
- Java中print、printf、println的区别 详解
Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...
- ASP中利用OWC控件实现图表功能详解[zz]
ASP中利用OWC控件实现图表功能详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图, ...
- python random randint_python中random.randint和random.randrange的区别详解
在python中,通过导入random库,就能使用randint 和 randrange 这两个方法来产生随机整数.那这两个方法的区别在于什么地方呢?让我们一起来看看! 区别: randint 产生的 ...
最新文章
- 机器学习-斯坦福:学习笔记6-朴素贝叶斯
- C#中保存Gif文件设置透明无效果
- c++ template笔记(2)模板类
- SSH框架应用中常用Jar包用途介绍
- 计算机应用与维修专业主修,计算机应用与维修专业个人简历制作
- JS难点之hoist
- 关于禁止ViewPager预加载问题【转】
- 传奇外网架设教程带图文解说——Gom引擎
- 计算机网络中期论文,计算机 毕业论文(设计)中期报告
- oracle某字段所在的表,在oracle中怎么通过字段名查询其所在的表
- Open Wifi SSID Broadcast vulnerability
- win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境
- 这位程序员桌面很干净
- 一道笔试题(求质数乘积)
- 安卓开发之 在应用中使用数据库
- Cisco Packet Tracer交换机间相同VLAN通信
- c语言实现动态字符串,C语言怎么实现可变长度字符串
- kubernetes pod infra container网络原理
- pycoin学习笔记(4) 生成交易,使用jsonrpc签名并广播
- Ublox F9P通过NTRIP实现实时RTK定位
热门文章
- android 自动获取短信,安卓app怎样获取短信验证码自动输入
- 【Java】操作doc文件
- 阿里云ECS服务器即将到期,怎么将原服务器系统环境迁移到新的服务器?
- 【Exploring and Thinking】——闵帆老师论文写作课程学习心得
- SOLIDWORKS 2016官方正版功能介绍
- 《中国垒球》:跨界互动·全明星赛
- Connected to the target VM, address 'localhost8601', transport 'socket'
- java 网页排版乱_HTML、DIV+CSS网页制作中排版混乱的几种常见的情况
- 一个扑街自媒体人的自白:我曾经月入15000,却是昙花一现
- Q3流媒体付费用户超1亿,迪士尼迈过“鼠年关”有戏?