zoukankan      html  css  js  c++  java
  • Matlab高效编程笔记

    1.matlab是按列顺序存储数据的,因此按列访问,遍历数值数组要比按行访问,遍历快

    2.简短的数学表达式函数可以选用匿名函数来实现;而复杂的,内部要做较多事情的函数可以选用子函数和嵌套函数来实现;

    其中,在变量共享以及传递方面,嵌套函数具有较大的优势,尤其是用子函数实现并且用到全局变量的场合,用嵌套函数可以避免用全局变量,并且实现起来方便容易。(?)

    3.就访问效率,double型数组和struct数组的访问效率相当,cell型数组最慢。struct占用内存大

    4.cell型的数组可以存放包括匿名函数在内的函数句柄。这样,通过cell数组,可以存储多个函数,并且可以批量执行函数。

    epl:求各个函数在x=2处的函数值

    fun=cell(3,1);

    fun{1}=@(x)x^2+sin(x);

    fun{2}=@(x)x^3-5;

    fun{3}=@(x)sin(1/sqrt(x));

    val=cellfun(@(x)x(2),fun)

    5.彼此没有嵌套关系的嵌套函数间是不能简单得共享变量的。如果非要共享,只能通过它们所在的主函数来进行

    epl:有嵌套关系

    function r=NestedFunctionVarScopeDemo(a)

    b=a+1;

      function Nested1

      c=b+1;

        function Nested11

        d=c+a;

        end

        Nested11;

      end

    Nested1

    r=d;

    end

    保存后在命令窗口输入:r=NestedFunctionVarScopeDemo(1)

    r=

      4

    epl:没有嵌套关系

    function r=NestedFunctionVarScopeDemo2(a)

    b=a+1;

      function Nested1

      c=b+1;

      c1=10;

      Nested2;

      c2=d^2;

      end

      function Nested2

      d=2*b;

      end

    Nested1

    r=c2

    end

    运行结果:r=NestedFunctionVarScopeDemo2(1)

    ???Undefined function or variable 'd'.

    Error in==>NestedFunctionVarScopeDemo2>Nested1 at 7

        c2=d^2;

    Error in==>NestedFunctionVarScopeDemo2 at 12

    Nested1

    6.父函数和嵌套函数之间的变量共享需要通过调用来实现,父函数可以调用嵌套在其中的第一重嵌套函数,而不能调用第二重或者更深重的嵌套函数。

    嵌套函数可以调用父函数。

  • 相关阅读:
    uip源码剖析【三】——【网络层】ICMP解读
    uip源码剖析【五】——【传输层】TCP解读
    WebGame方案汇总
    终于,我生命中第一次编译并运行了手机程序
    使用R7版NDK搭建Android开发环境[不使用Cgywin]
    拷问Unity:开发U3D游戏要思考的问题
    浏览器缓存导致FLASH资源更新问题的解决方案
    山寨版的《KingdomRush(皇城突袭)》
    在Unity3D的网络游戏中实现资源动态加载
    Unity3d之无缝地形场景切换–解决方法和代码
  • 原文地址:https://www.cnblogs.com/duoduo--up/p/6425340.html
Copyright © 2011-2022 走看看