处理大数据量的方法matlab(句柄)
来源:互联网 发布:java web工作内容 编辑:程序博客网 时间:2024/06/07 12:17
MATLAB函数句柄
函数句柄(Function handle)是MATLAB的一种数据类型。
包含了函数的路径、函数名、类型以及可能存在的重载方法;
引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,特别在反复调用情况下更显效率;提高软件重用性,扩大子函数和私用函数的可调用范围;迅速获得同名重载函数的位置、类型信息。
---------------------------------------------------------------------------------------------------------------------
MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便的调用,提高函数的可用性和独立性。
函数句柄实际上提供了一种间接调用函数的方法。
创建函数句柄需要用到操作符@
创建函数句柄的语法:
fhandle = @function_filename
调用函数时就可以调用该句柄,可以实现同样的功能。
例如fhandle = @sin就创建了sin的句柄,输入fhandle(x)其实就是sin(x)的功能。
如
% % ------------------------------------------------
fhandle=@sin
fhandle(pi)
sin(pi)
% % ------------------------------------------------
例如:
新建M文件f1.m
function y=f1(X)
x1=X(1);x2=X(2);
y=x1^2+x1*x2;
新建M文件ftest.m
function Y=ftest(f,X)
syms x1 x2;
F=f([x1,x2]);
v=[x1,x2];
grad=jacobian(F,v);
Y=subs(grad,v,X);
在MATLAB命令窗口输入Y=ftest(@f1,[2,1]),得到结果:
Y =
5 2
此处@f1即为函数f1的句柄,可以用class(@f1)判断变量的类型,得到ans = function_handle即函数句柄。函数ftest是求一个二维函数在指定点的梯度值。我们可以替换目标函数为f2或其他函数同样可以求得梯度。这样函数ftest就可以适用于任何二维函数而不必做改动了。
====================================================================
函数句柄的好处
①提高运行速度。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对你的速度会有提高的。
②使用可以与变量一样方便。比如说,我再这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的function handles中,已经包含了路径。
- 处理大数据量的方法matlab(句柄)
- 大数据量处理的方法探讨
- 大数据量的处理
- 大数据量的处理
- 大数据量,海量数据量处理方法
- 大数据量处理方法总结
- 大并发大数据量请求的处理方法
- 大并发大数据量请求的处理方法
- 大并发大数据量请求的处理方法
- 大数据量及海量数据的处理方法总结
- java导出dbf文件大数据量的处理方法
- 关于webgis中大数据量的处理方法
- java导出dbf文件大数据量的处理方法(转载)
- 大数据量处理的问题
- 数据库大数据量的处理
- 处理数据量大的问题
- 大数据量,海量数据 处理方法总结 (转)
- 大数据量,海量数据 处理方法总结
- JSP 中九大内置对象和四大作用域
- Xcode升到6.4插件失效不能用解决方法
- 贝塞尔曲线的计算方式与js计算
- Objective-C之数据持久化-属性列表
- linux下导入、导出mysql数据库命令
- 处理大数据量的方法matlab(句柄)
- 10125 - Sumsets(折半枚举+二分)
- Hadoop 求平均数
- Bezier曲线原理及实现代码(c++)
- 统计字符串中字符出现的个数
- 《Linux安装openoffice 服务》Install OpenOffice on Linux(CentOS)
- sd卡驱动(初识)
- JAVA基础之理解JNI原理
- 字符串匹配算法