zoukankan      html  css  js  c++  java
  • Matlab匿名函数,向量化和预分配,函数的函数,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码文件

  • 相关阅读:
    css3实现背景图片颜色修改的多种方式
    KeyPress 和KeyDown 、KeUp之间的区别
    Web UI 自动化测试技术选型
    CSS3 动画性能优化
    prefetch_HTML5的页面资源预加载技术(Link prefetch)加速页面加载
    纯CSS3实现各种表情动画
    什么是css sprites(雪碧图),css sprites使用的优缺点
    Python爬虫连载7-cookie的保存与读取、SSL讲解
    Java连载82-Set、Collection、List、Map的UML演示
    HTML连载67-手风琴效果、2D转换模块
  • 原文地址:https://www.cnblogs.com/asahiLikka/p/11577649.html
Copyright © 2011-2022 走看看