新的单文件样式有一些优点。它允许并鼓励您编写很多小的方法,我认为这会导致更好的代码。创建一个新文件,保存它,并将其添加到源代码控制(我们都使用源代码控制,对吗?)的麻烦是很小的,但加起来几十个小的方法就足够了,它通常会阻止我从因子分解类更精细的功能。编辑整个课程便于浏览,搜索和替换,而不必打开十几个单独的编辑器选项卡,然后可以用于组织不同类的源代码。

对于较大的代码库,单文件样式可能具有性能优势。在源代码树上迭代的源代码控制和部署系统对于stat和diff操作都有一个每文件的成本。对于更大的代码库,比如数千种方法,尤其是在网络驱动器上,这可能是重要的。我怀疑使用Matlab编译器部署的应用程序也有一个性能效果。启动时间随着部署代码库的大小而增加。每个文件的一部分是文件操作的成本,因为文件(我认为)是单独加密的。我怀疑,但没有实验测试,使用单个文件类定义将降低编译Matlab应用程序的启动成本。

但是,我使用旧的多文件组织来代替我的大部分代码。部分原因是我们的代码库在新风格通常可用前几年才启动。但部分是为了表演。新的单一文件组织仅适用于新型MCOS Matlab类,并且由于更高的方法调度开销,它们比旧式的Matlab类更慢。例如。这是一个显示do-nothing nop()方法的执行时间的基准片段。

Calling each function/method 100000 times

nop() function: 0.02715 sec 0.27 usec per call

nop(obj) method: 0.24629 sec 2.46 usec per call

classdef nop(obj): 0.98572 sec 9.86 usec per call

classdef obj.nop(): 1.81307 sec 18.13 usec per call

另一个原因是,Matlab的自动压缩将在类定义中缩小每个部分和每个方法,因此所有可执行代码的基准是两个制表位,浪费了8列屏幕空间。

总的来说,不是因为OO性能考虑,我可能会用单个文件,我正在编写新的非性能关键类。

更新:它也看起来像一个有用的文档生成器contentrpt()不适用于在classdef文件中定义的函数;只有那些在单独的功能文件。

matlab 类 方法,最好的组织MATLAB类的方法?相关推荐

  1. 组织人事类主数据业务梳理以及流程编排

    主数据是描述企业核心业务实体的数据,是企业核心业务的主要构成部分,各个订单.合同以及业务的主体,在企业内部被重复.共享应用的数据,主数据跨越企业各个业务部门以及各类业务系统,是应用系统之间数据交互的基 ...

  2. 基于MATLAB的面向对象编程(1)——类,属性,方法

    这里写目录标题 1 入门 1.1 如何把面条抽象成Class 1.2 文件类 2 基于MATLAB的面向对象编程入门 2.1 如何定义一个类(Class) 2.2 创建一个对象 2.3 类的属性 2. ...

  3. 未知参数休哈特matlab,一种确定某类工作的人的极限工作时间的方法

    一种确定某类工作的人的极限工作时间的方法 [技术领域] [0001] 本发明涉及安全人机工程领域,特别是涉及确定某类工作的人的极限工作时间. [背景技术] [0002] 我国是一个劳动力大国,在高度机 ...

  4. 基于MATLAB的面向对象编程(4)——类文件

    文章目录 5 MATLAB的类文件的组织结构 5.1 如何使用其他文件夹中类的定义 5.2 类的定义和成员方法分开 5.3 类的局部函数 5.4 使用package文件夹管理类 5.5 类方法和函数重 ...

  5. matlab在电气信息类专业中的应用,MATLAB在电气信息类专业中的应用(高等学校应用型特色规划...

    第1章 matlab语言总览 1.1 matlab简介 1.1.1 matlab概况 1.1.2 matlab基本工作界面 1.2 matlab的工作环境 1.3 matlab入门 1.4 matla ...

  6. matlab解析单片机发送数据的一种简单方法

    matlab解析单片机发送数据的一种简单方法 经常使用单片机的同学,应该会经常面对这样一种情况,那就是对单片机采回的某些数据绘图.再处理等应用.大家经常用的两款软件,比如匿名的地面站,它通过固定的数据 ...

  7. matlab一元二次回归分析法,matlab回归分析方法综述.doc

    matlab回归分析方法综述 第八章 回归分析方法 当人们对研究对象的内在特性和各因素间的关系有比较充分的认识时,一般用机理分析方法建立数学模型.如果由于客观事物内部规律的复杂性及人们认识程度的限制, ...

  8. 【转】matlab函数编译成dll供Cpp调用的方法

    转自:https://www.cnblogs.com/vincenzo/archive/2009/09/09/1563467.html 以前做过matlab7与c++的混合编程:将m函数编译成dll给 ...

  9. 7.1.3 Python进阶 《函数》定义、调用,参数,返回值《面向对象》概念,类,实例,对象,属性,方法《模块、包》导入,自定义,常用内置:datatime,time,random,os,sys

    目录 ======== 第四部分 Python进阶 ======== 第一节 函数 4.1.1 函数定义及调用 4.1.2 函数的参数 4.1.3 函数的返回值 第二节 面向对象 4.2.1 面向对象 ...

最新文章

  1. Tomcat Server 配置
  2. fiddler使用_fiddler基础使用
  3. IPC——线程信号问题
  4. .net 将html写成的table 转换成excel_如何使用Pandas将二维表(DataFrame)反转为一维列表?...
  5. 2020河南工业大学计算机考研科目,你知道2020年河南工业大学硕士研究生考研有哪些复试科目...
  6. shell执行docker命令卡挂住_Docker官方文档翻译4
  7. 你真的懂线程同步么?
  8. 报错--Problem executing scripts APT::Update
  9. 三年的总结(技术篇)
  10. GCC为什么不将a * a * a * a * a * a优化为(a * a * a)*(a * a * a)?
  11. linux修改文件的权限和修改文件所有者和所属组
  12. java分支讵_Java实现简体字向繁体字的转换
  13. Mybatis(狂神老师上课笔记)
  14. 教你用GoldWave进行基础的混音准备
  15. 如何自己制作图标文件
  16. RTP传输JPEG图片到VLC实时播放(代码)
  17. XtraReport中改变文字方向
  18. php substr 中文_PHP mb_substr():截取中文字符串
  19. 海康大华宇视等等安防监控摄像头转成WebRTC流实现Web浏览器超低延迟无插件直播新方案...
  20. 分享实录|区块链技术如何快速落地

热门文章

  1. C#中base64编码与解码
  2. crackMe的逆向分析
  3. 【Docker】ADD COPY no such file or directory
  4. 去掉字符串左右的空格
  5. 求最小生成树-Prim(普里姆算法)
  6. python进程监控并重启
  7. RabbitMQ订阅者模式
  8. jQuery的单引号双引号
  9. Model层的两种写法
  10. tp5 if 如果有html判断,tp5条件判断,in,notin,between,if等