matlab怎么引用用户自定义的数值 simulink设置系统全局状态量?

[更新]
·
·
分类:互联网
1528 阅读

matlab怎么引用用户自定义的数值

simulink设置系统全局状态量?

simulink设置系统全局状态量?

simulink中设置一个全局变量,在自定义的matlab function中可以直接调用,无需定义输入输出。具体如下:
整个系统为350HZ,自定义的matla function 在一秒中执行350次,后一次执行时要调用前一次的输出。
需要设置全局变量 rate_target_ang_vel 完成每次的输出和输入。
1、在模型的workspace里建立一个 :
进入model explorer
选中model workspace ,右侧窗口中增加变量:
增加rate_target_ang_vel, 设置属性:这里变量是三维向量,初值为[0;0;0]
2、双击matlab function,在matlab function中需要使用到该变量的地方标明global:
3、在matlab function 的编辑界面选择 edit data:
增加一个数据rate_target_ang_vel,注意相关的scope选择data store memory
全局变量设置完成!

matlabgui如何调用写好的程序?

matlabgui调用写好的程序方法:
1、首先打开matlab软件主页面。
2、接着在编辑器窗口,单击绿色三角运行图标。
3、运行后,可得到整个程序运行后的结果。
4、若想运行部分程序,即选中需要运行的代码,右击选择执行所选内容。
5、最后单击执行所选内容后,在工作区可以看到只运行了所选中的代码,其它代码不运行。

matlab对于返回句柄的应用?

1.函数句柄的创建
函数句柄(function handle)是MATLAB中的一类特殊的数据结构,它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C ),或者函数引用(Perl)。作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递。
MATLAB中的函数句柄在调用时和普通函数没有任何区别,下面展示几种创建函数句柄的方式,最后通过函数句柄调用sin(pi)。
% 函数句柄的创建% 方式1 : 直接加@% 语法:@函数名fun1 @sin;% 方式2 : str2func函数% 语法:str2fun(函数名)fun2 str2func(cos);% 方式3 : 匿名函数% 语法:@(参数列表)单行表达式fun3 @(x, y)x.^2 y.^2; % 函数句柄的调用fun1(pi);
2.将函数句柄作为函数参数
函数对象的经典应用情境之一就是排序(Sorting),即为一列未知类型的数组提供自定义的排序规则。下面我将实现一个函数super_sort,接收两个参数,第一个参数为待排序的数组,第二个参数是一个对原始数据的变换函数。super_sort能够对原始数据按照变换后的结果进行排序,并返回排好序的原始数据。
%文件名:super_ sorted super_sort(arr, fh)transformed fh(arr);% 对原始数组进行变换[~, index] sort(transformed); % 获得排序后的原数组位置索引sorted arr(index); % 返回排序后的原数组end
测试脚本:
arr round(randn(8, 1) * 10);super_sort(arr, @abs)
% 将arr按照其绝对值大小排序super_sort(arr, @sin)
% 将arr按照sin(x)的结果排序
注意,与Perl或Python不同,这里提供的函数句柄并不用于元素间的比较,而是用于将数组内各个元素进行映射成待比较的值。
3.利用函数句柄进行画图
借助函数句柄,可以方便地画出各类函数的图像,这类绘图函数往往以ez开头,下面我将演示ezplot, ezsurf两个函数。
% ezplot画sin函数在[0, 2 * pi]内的曲线ezplot(@sin, [0, 2 * pi]);
% ezplot利用x和y上的参数方程画心形线xfun @(t)3*(2*cos(t)-cos(2*t));yfun @(t)3*(2*sin(t)-sin(2*t));ezplot(xfun, yfun);
% ezsurf画二次曲面fun3 @(x,y)x.^2 y.^2;ezsurf(fun3, [-2, 2, -2, 2]);
4.利用函数句柄进行图像的滤波
MATLAB提供了colfilt这一函数,该函数能将图像分成独立的子块(局部处理),或者相互交叠的窗口(可实现二维卷积及中值滤波),并利用传入的函数句柄对各个子块进行处理。
函数原型为B colfilt(A,[M N],BLOCK_TYPE,FUN),其中B是输出图像,A是输入图像,[M N]是图像块或窗口的长宽,BLOCK_TYPE参数决定是进行块处理还是窗口滑动处理,FUN就是处理用的函数句柄,它只接收一个矩阵参数,这个矩阵的每一列都是拉长为列向量的子图像,FUN一次可能要处理多个子图像。