匿名函数,向量化和预分配,函数的函数,P码文件

匿名函数:

匿名函数是不存储在程序文件中、但与数据类型是 function_handle 的变量相关的函数。匿名函数可以接受输入并返回输出,就像标准函数一样。但是,它们可能只包含一个可执行语句。

例如,创建用于计算平方数的匿名函数的句柄:

sqr = @(x) x.^2;

向量化和预分配(提高程序执行速度):

  1. 向量化:要使得matlab更高速工作,把.m文件算法向量化,其他语言使用for循环,Matlab可用向量或矩阵运算。

例:原算法:

x=0.01;

for k=1:1001

    y(k)=log10(x);

    x=x+0.01;

end

向量化:

x=0.01:0.01:1001;

y=log10(x);
  1. 预分配:代码无法向量化,通过通过预分配加快for循环

例:

r=zeros(1,32);

for n=1:32

    r(n)=rank(magic(r));

end

函数的函数:

一种以标量为变量的非线性函数,以函数名为自变量的函数,1?以函数名为自变量的函数。求零点,最优化,求积分和常微分方程。

例(简单实现hump函数功能):

MATLAB中有一个内置函数是humps,该函数是下列函数的特例:

当q=0.3,r=0.9和s=6的时候就是humps函数。

a=0:0.002:1;

b=humps(a);

plot(a,b)
function b=humps

b=1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6;

end

结果图形为:

命令行窗口执行:

>> p=fminsearch(@humps,0.5)          %求局部最小以及此时x的值

%第一个参数为函数句柄,第二个参数为.近似值

p =

0.6370

在函数中调用了函数
>> humps(p)                         
%求出最小值

ans =

11.2528

P码文件:

一个.m文件被首次调用,matlab会对该文件进行语法分析,并生成相应的内部伪代码(Psecode P码)文件存放在内存中

当该文件被再次调用时,只调用P码文件,不对原.m文件进行语法分析。并且matlab会将该文件连同该文件调用的所有函数文件一起转变为P码文件

P码文件与.m文件有相同的文件名扩展名.p,p码文件运行速度高于原码文件。

如果存在同名的p码文件和.m文件,matlab会先调用p码文件。

P码文件相关命令:

inmem:罗列所有P码文件文件名

clear FunName:清除内存中名为FunName.p的p码文件

clear functions:清除所有P码文件

原文地址:https://www.cnblogs.com/asahiLikka/p/11577649.html

时间: 2024-10-13 23:02:08

匿名函数,向量化和预分配,函数的函数,P码文件的相关文章

【函数】02、匿名函数、生成器、高阶函数

一.匿名函数 1.定义 语法格式: lambda args:expression args:以逗号分隔的参数列表 expression:用到args中各参数的表达式 lambda定义的代码必须是合法的表达式,不能出现多条件语句(可使用if的三元表达式)和非表达式,如for和while等 lambda的首要用途是指定短小的回调函数 lambda将返回一个函数而不是将函数赋值给某变量名 In [77]: lambda x: x+1 Out[77]: <function __main__.<lamb

Python之路Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

Python之路Python作用域.匿名函数.函数式编程.map函数.filter函数.reduce函数 一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") return test1 res = test() print(res) 输出结果 test <function test1 at 0x021F5C90> 分析:这里print(res)输出的是te

numpy数组符号化与函数向量化

计算净额成交量 Key_Function: np.sign(数组): 返回数组中每个元素的正负符号 np.piecewise(数组, 条件列表, 返回值列表): 通过条件列表中的元素, 判断数组中的元素在条件列表中的索引, 取返回值列表对应的索引, 当做返回值, 用这些返回值组成一个新的数组 Code: import numpy as np import matplotlib.pyplot as plt c, v = np.loadtxt('BHP.csv', delimiter=',', us

基础-函数3(IIFE立即执行函数)

参考链接: http://benalman.com/news/2010/11/immediately-invoked-function-expression/#iife http://segmentfault.com/a/1190000003985390 IIFE是在后面进入模块编程看到的,对于它长成那个样子,原来也是和闭包那块经常一块出在面试题里的,让人容易脸盲||| 本文用于初识庐山面目,欢迎各路大侠吐槽~ IIFE-immediately invoked function expressi

第七篇 python基础之函数,递归,内置函数

阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做

python基础之函数,递归,内置函数

一 数学定义的函数与Python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域 例如y=2*x python中函数定义:函数是逻辑结构化和过程化的一种编程方法. python中函数定义方法: def test(x): "The function definitions" x+=1 return x def:定

python基础-函数_递归_内置函数

一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量与全局变量 六 前向引用之'函数即变量' 七 嵌套函数 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一.数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域

javascript 函数初探 (四)--- 回调函数

回调函数 既然函数与任何被赋值给变量的数据是相同的,那么她当然可以像其他数据那样被定义.删除.拷贝,以及当成参数传递给其它函数. 我们定义一个函数,这个函数有两个函数类型的参数,然后他会分别执行这两个参数所执行的函数. function her(){ return a() + b(); } function one(){ return 1; } fucntion two(){ return 2; } her(one, two) // 3 实际上,我们也可以直接用匿名函数(即函数表达式)来替代on

Python学习之路6?函数,递归,内置函数

一python中的函数 函数是逻辑结构化和过程化的一种编程方法. python中函数定义方法: def test(x): "The function definitions" x+=1 return x def:定义函数的关键字 test:函数名 ():内可定义形参 "":文档描述(非必要,但是强烈建议为你的函数添加描述信息) x+=1:泛指代码块或程序处理逻辑 return:定义返回值 调用运行:可以带参数也可以不带 函数名() 二 为何使用函数 背景提要 现在老