首页 > 教育培训

matlab如何输入一个函数表达式 matlab如何画yx图像?

matlab如何画yx图像?

首先定义x:xlinspace的取值范围(起点,终点,分多少部分)

比如:xlinspac

matlab对于返回句柄的应用?

1.函数句柄的创建

matlab如何输入一个函数表达式 matlab如何画yx图像?

函数句柄是matlab中一种特殊的数据结构,其位置类似于其他计算机语言中的函数对象(javascript、python)、函数指针(c)或函数引用(perl)的位置。函数就是把一个函数封装成一个变量,这样就可以像其他变量一样在程序的不同部分传递。

matlab中的函数句柄和普通函数调用时没有区别。下面介绍几种创建函数句柄的方法,最后通过函数句柄调用sin(pi)。

创建%functionhandl:直接添加@%语法:@funnam:str2func函数%语法:str2fun(函数名)fun2str2func(cos);%mod:匿名函数%语法:@(参数列表)单行表达式fun3@(x,y)x.2y.2;调用%fun1(pi)的函数句柄;

2.将函数句柄作为函数参数。

排序是函数对象的经典应用场景之一,即为未知类型的数组列表提供自定义排序规则。接下来,我将实现一个函数super_sort,它接收两个参数。第一个参数是要排序的数组,第二个参数是原始数据的转换函数。super_sort可以根据转换后的结果对原始数据进行排序,并返回排序后的原始数据。

%文件名:super_sortedsuper_sort(arr,fh)转换的fh(arr);%transform原数组[~,index]排序(transformed);%获取排序后的原始数组位置索引sortedarr(index);%返回排序后的原始数组结尾

测试脚本:

arrround(randn(8,1)*10);超级排序(arr,@abs)

%根据绝对值super_sort(arr,@sin)对arr进行排序。

%根据sin(x)的结果对arr进行排序

注意,与perl或python不同,这里提供的函数句柄不用于元素。之间的比较,但用于将数组中的每个元素映射到要比较的值。

3.带功能手柄的绘图

在函数句柄的帮助下,可以方便的绘制各种函数的图像,这些函数往往以ez开头。下面我将演示两个函数,ezplot,ezsurf。

%ezplot[0,2*pi]ezplot中sin函数的曲线(@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)x2y2;ezsurf(fun3,[-2,2,-2,2]);

4.使用函数句柄过滤图像。

matlab提供了函数colfilt,可以将图像分成独立的子块(局部处理)或者重叠的窗口(可以实现二维卷积和中值滤波),利用传入的函数句柄对每个子块进行处理。

函数的原型是bcolfilt(a,[mn],block_type,fun),其中b是输出图像,a是输入图像,[mn]是图像块或窗口的长和宽,block_type参数决定是进行块处理还是窗口滑动处理,fun是进行处理的函数句柄,只接收一个矩阵参数,这个矩阵的每一列都是拉长成列向量的子图像。

函数句柄参数图像排序

原文标题:matlab如何输入一个函数表达式 matlab如何画yx图像?,如若转载,请注明出处:https://www.suhaipipe.com/tag/28498.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「蓝鲸百科」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。