您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 向量化 >

怎样用 Matlab 写出优雅的代码

发布时间:2019-07-25 11:09 来源:未知 编辑:admin

  Matlab向量化的技巧网上文章很多,此处不表。矩阵操作和循环操作混杂的时候,考虑用structfun, arrayfun, bsxfun, cellfun等等,例如从N幅图像中减去均值:

  用Matlab的方式组织自己的数据结构。比如,有时应该把struct当做dictionary用,比Python里的dict还方便。例如:

  理解Matlab传递参数时的逗号语义,以及相关的用cell实现变长参数的传递。例如:

  理解Matlab为面向过程编程、函数式编程提供了哪些语言层面上的支持。可变参数和返回值用varargin, varargout,Nested function相当于其它动态语言里面的闭包,函数和类名也是first-class type,能方便的被当做参数传递(加@)。

  Matlab对并行编程提供语言层面的支持,如parfor, spmd等关键字,你可以用类似openmp或者cuda C那样的思维写并行代码。

  在写行业相关代码时,函数参数和函数名可以用长名,别人调用时比较清晰。本地变量用短名,做这行的一看变知含义,自己也方便。例如 e = m * c^2等等。

  写面向过程Matlab代码时,不要把所有的算法流程都塞到一个几百行上千行的函数里。把功能拆分成若干小函数。一个典型m文件的layout

  代码规模较大时,做好名字空间管理。如果有大量互相独立的短函数,用静态方法实现名字空间的管理。

  如果函数多,每个函数也比较大(比如一个函数就是一个几百行的文件,里面还有sub function, nested function),用pakage管理。例如新建一个叫 +xxu的文件夹(xxu前面一个加号),文件夹里面有函数文件fun_1.m和fun_2.m,调用时就可以用名字空间xxu:

  理解Matlab为面向对象编程提供了哪些支持。class的传值,handle class的传引用。继承。定义接口的Abstract Class。将行业的算法库封成class是比较推荐的做法,近期的官方toolbox基本都开始转向这种风格了。当然怎么用OO的思维编程就是“功夫在Matlab外”了。

http://chinoamobi.com/xianglianghua/331.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有