matlab m 调用mdl,[分享]MATLAB m语言中调用simulink的程序
[分享]MATLAB m语言中调用simulink的程序
与前一篇出自同一朋友的博客
MATLAB m语言中调用simulink的程序
1.打开simulink模型的几种方式
% 打开文件对话框
[FileName, PathName, FilterIndex] = uigetfile({'*.mdl','Model-files (*.mdl)'}, '打开');
if FileName ~= 0
% 加载模型
load_system([PathName, FileName]);
end
% 新建一个模型
new_system('untitled', 'Model');
% 打开一个仿真模型
open_system([PathName, FileName]);
2.获取当前simulink的文件信息并显示
% 获取当前模型名称
set(handles.ModelNameEdit, 'String', get_param(gcs, 'Name'));
% 获取当前模型文件名称即文件路径
set(handles.SourceFileEdit, 'String', get_param(gcs, 'FileName'));
% 获取当前模型创建的时间
set(handles.CreatedOnEdit, 'String', get_param(gcs, 'Created'));
% 获取当前模型最近一次修改的时间
set(handles.LastSaveOnEdit, 'String', get_param(gcs, 'LastModifiedDate'));
% 获取当前simulink的版本
set(handles.VersionEdit, 'String', get_param(gcs, 'Version'));
%获取当前模型的版本
set(handles.ModelVersionEdit, 'String', get_param(gcs, 'ModelVersion'));
3.查找当前模型的所有block及对应的所有对话框参数
% 查找当前模型中的所有模块,为了方便,首先显示顶层模块,再显示其他层
BlocksTop = find_system(get(handles.ModelNameEdit, 'String'), 'SearchDepth', 1, 'Type', 'block');
BlocksAll = find_system(get(handles.ModelNameEdit, 'String'), 'Type', 'block');
AllBlocks = [BlocksTop; setdiff(BlocksAll, BlocksTop)];
% 显示所有参数,参数名称以struct的数据结构显示
ParameterStruct = get_param(Block,'DialogParameters');
% 参数struct结构体的域,得到参数的名称,以cell的数据结构显示
Parameters = fieldnames(ParameterStruct);
% 获取第一个参数的值
ParameterValue = get_param(Block, Parameters{1});
% 获取参数值类型
ValueStruct = ParameterStruct.(Parameters{1}) ;
ParameterType = ValueStruct.Type;
% 参数值的提示信息
ParameterPrompt = ValueStruct.Prompt;
ParameterEnum = ValueStruct.Enum;
ParameterAttributes = ValueStruct.Attributes;
4.修改某个参数的值
% 获取编辑框中的修改值
ChangedValue = get(handles.ParameterValueEdit, 'String');
try
% 尝试保存修改
set_param(Block, Parameter, ChangedValue);
catch
% 修改失败,弹出提示信息
errordlg([{['无法将', Block, ' 的 ', Parameter, '参数值修改为 ', ChangedValue]}; {'输入的参数值有误,请重新输入!'}], '错误', 'on');
% 恢复原来的值
set(handles.ParameterValueEdit, 'String', get_param(Block, Parameter));
end
5.查询模型中某些特点类型的block
% 查找当前模块中的subsystem
SubSystems = find_system(gcs, 'Type', 'block');
% 查找所有的Scope
AllScope = find_system(gcs, 'BlockType', 'Scope');
% 查找所有的ToFile
AllToFile = find_system(gcs, 'BlockType', 'ToFile');
% 查找所有的ToWorkSpace
AllToWorkSpace = find_system(gcs, 'BlockType', 'ToWorkspace');
matlab m 调用mdl,[分享]MATLAB m语言中调用simulink的程序相关推荐
- Matlab函数打包为.jar后在java中调用出现错误:Exception:com.mathworks.toolbox.javabuilder.MWException: An error occur
Matlab函数打包为.jar后在java中调用出现错误:Exception:com.mathworks.toolbox.javabuilder.MWException: An error occur ...
- MSScriptControl详解(可实现在C#等语言中调用JAVASCRIPT代码)
ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object ...
- f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...
- powershell执行c语言文件,c语言中调用shell脚本
[转]c语言中调用shell脚本 关于在c语言中调用shell脚本,先是在百度上百度了一下 下面的这个应该是说的比较详细的 dreamerkxz.blog.163.com/blog/static/82 ...
- 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...
作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...
- gnuplot用C语言程序画图,c语言中调用gnuplot
this.p={ m:2, b:2, loftPermalink:'', id:'fks_080064087085082068082081082095083086088068085081080068' ...
- C语言中打开一个应用程序可以调用或运行命令
C语言中打开一个应用程序可以调用或运行命令system(),也可以调用操作系统的API函数,比如Windows系统可以调用CreateProcess().ShellExecuteEx()等函数来打开一 ...
- c语言代码存放的区域 堆栈,C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)...
BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据 ...
- c语言常见错误分析和程序调试,C语言中常见错误分析及程序调试
总结分析了C语言中常见错误及程序调试的相关技巧,以提高初学者的编程能力. 2 8 2月 0年l 0 电脑学习 第6 期 C语言中常见错误分析及程序调试 陈伟' 陈东淼 摘要:总结分析了 C语言中常见错 ...
- r语言 c语言调用函数返回值,r语言中怎样查看函数源代码
在R中,代码可以分为如下几个级别: 首先,是你输入了函数对象名称,你可以直接看到代码的,如要获得函数对象fivenum的代码,就只需要在Console中键入函数对象名称fivenum就可以得到结果, ...
最新文章
- 计算机为什么找不到c盘d盘,电脑不显示是什么盘?是C盘还是D盘?怎么才能显示出来呢?...
- crontab执行不了php的解决方法
- 数据蒋堂 | 怎样看待存储过程的移植困难
- java date不要秒_java – 比较日期忽略Joda中DateTime的秒和毫秒时刻
- ------------ 异常笔记
- redux异步action_react-redux--异步Action
- 集成UG和ANSYS之二----upupdate之x_t
- live555 windows下编译以及修订
- 支付宝AI大幅提升细粒度图像分类识别精度,一眼看穿万物细微差异
- Angular学习笔记(五) - 自定义表单控件
- MyBatis3:SQL映射
- 25.212---复用和信道编码
- 练习:去除df某列里面字符串里面的空格, .str.strip(); series.str.replace(); df.replace()
- java 聊天室 私聊_Java聊天室——实现多人聊天、私聊、群聊
- 使用echarts-gl 绘制3D地球配置详解
- 微信恋爱话术表白漫画脸头像制作生成小程序源码
- 【Cocos Creator 实战】01 - 如何做一款简单的拼图游戏
- 计算机电子科学技术产品,关于电子信息科学技术发展现状的思考
- 二维Poisson方程五点差分格式及简单求解方法Python实现
- 验证身份证是否真实有效
热门文章
- java第一个helloworld_Java第一个程序--HelloWorld
- Drools规则引擎简介
- 粒子群优化算法及其应用
- Linux系统 / Ubuntu16.04系统下安装QQ/TIM软件
- python语言程序设计课后答案王恺_超星学习通Python程序设计基础(山东联盟)答案汇总...
- sqlyog证书秘钥(注册码)
- Qt开发 之 Windows资源管理器模仿 并 小超越
- 【Linux系统编程】| 【01】系统编程基本概念
- windows如何更改字体
- python 实时取色器3.0(升级版)【内附源码】