matlab如何创建callback函数_Matlab模型静态检查 - 使用ModelAdvisor自定义建模规范2

b0c52dfa286c7a2ff1a80500ddca003f.png

上一篇:

Lily:Matlab模型静态检查 - 自定义建模规范1​zhuanlan.zhihu.com
0a443a4721e51c1002847a95eea355e0.png

本文主要介绍3个主函数的撰写内容与含义。

defineModelAdvisorChecks函数的撰写

% register custom checks 

defineModelAdvisorChecks函数内包含的就是静态检查的项目,也叫check,即新建check。包含了check的id, title, check的检查callback和执行callback。

下面就以Matlab示例中自带的3个check进行详细的解释说明。

Check0

function 

上面语句的主要作用就是新建ID为com.mathworks.sample.Check0的check, 并且详细配置该Check。具体check哪些内容,以及action如何动作,分别在SampleNewCheckStyleCallback和sampleActionCB0这两个函数中。每条语句的注释和界面的对应关系已经在图1中标注出,可参照编号查看。如果Check没有被publish, 那么该check会被隐藏,见图2。

622b1146e5c6da355feffb7672a6e117.png
图1 check定义与窗口显示的关系

bf9346d4d76049c064a027a574e47ddf.png
图2 Check0没有publish的效果

Check1

% --- sample check 1

这个Check的callbackfcn里的style不一样,各种Style的界面风格如下图,Matlab的help推荐使用Detailed Style, 即Check0使用的风格。其实不同的style相对的返回参数是有区别的,建议熟练掌握后可灵活应用,入门是选择一个先掌握。Check1相对多的是增加了用户交互参数,使用ModelAdvisor.InputParameter进行了参数对话框的设置,详细语句解释见备注与图3。不同Style视觉效果见图4,后续若有人感兴趣可详细介绍其它区别。

0efbcfac5f604d3702ddeac94f9c2655.png
图3 InputParam的内容

db2700da8d33b019446fc922246b46e7.png
图4 不同的Style视觉效果

Check2

% --- sample check 2

Check2的定义主要是callbackfcn的style的Check0不一样,结构很好理解。关键就是具体的SampleStyleOneCallback和sampleActionCB2这两个函数。

Check3

% --- sample check 3

Check3的定义主要还是callbackfcn的style的Check0不一样,结构很好理解。关键也是回调函数,SampleStyleTwoCallback和sampleActionCB3。

到此,函数defineModelAdvisorChecks的解释基本完成,其主要功能就是建立基本的check,每个check的回调函数后续再详细解释。

defineModelAdvisorTasks函数的撰写

function 

上述语句用来在Model Advisor的根目录下新增任务组,具体实现见代码注释。defineModelAdvisorTasks这个函数是在By Task目录下新增任务组,复用的check项目都是之前定义过的,或者可以使用Model Advisor的自带check库。

defineTaskAdvisor函数的撰写

代码Part 1:

function 

首先实现的是在根目录新建用户自定义文件夹,具体实现代码见注释,实现效果见图5。

408479d9c55858c39d4f7a7dda916376.png
图5 自定义文件夹-Group

代码Part 2:

% Define procedures

然后是实现自定义procedure, procedure是会按顺序执行,一旦当前检查未通过,便不会继续执行下去,而代码Part1中的group则不会,即使当前检查项错误,也会继续检查其他项目。这里有如何在自定义文件夹下面添加子文件夹的方法,group也同理。

到此,整个ModelAdvisor的目录结构定义的基本语句和函数都覆盖了,接下来,就是解释如何具体实现静态检查。我们再返回到defineModelAdvisorChecks函数下面,每个check的check的setCallbackFcn和action的setCallbackFcn下面的函数。具体见下一篇文章。

Lily:Matlab模型静态检查 - 自定义建模规范3​zhuanlan.zhihu.com
0a443a4721e51c1002847a95eea355e0.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值