很多同学在研究和学习的过程中都会经常使用 MATLAB。很多时候当编好一个程序之后,我们发现程序运行的效率达不到预想的要求。盲目的去找程序的缺陷往往既花时间也没有什么太大效果。这里我想告诉大家 MATLAB 很重要的功能 – Profiler – 能够帮助你很快找到程序的问题,然后可以很快的提高程序的效率。

当你写完一个程序之后,首先要试着运行。试着运行的时候有两个目的,一个是验证是否正确(这个不在我们讨论的范围),另外就是要看一下效率是否满意。对于后者你要做的是从主界面选择Desktop – Profiler. (见下图)

然后从profiler 运行程序(运行的指令和你在这个主界面想运行程序的指令一样, 可以有参数也可以没参数)

Profiler运行的结果也会在主界面显示。其结果与正常的运行的都一样,但是它可以给你显示出运行中每一行所执行的次数和花费的时间(见下图)。

然后你需要重点做的是仔细研究那些花费时间很长的步骤。很多情况下,整个程序里的某一行或者某两行会占据绝大多数的计算时间,而通常那几行都是因为程序写的不好所以效率很低(通常容易出现的问题是,1)重复计算一些可以只计算一次的事情,比如每次循环计算同一个normcdf,而实际你可以事先算好储存在一个数组, 2) 使用太多层的for循环,而实际可以用矩阵计算来代替,3)可以把一些计算有序的结合起来,比如当计算某些乘法的顺序时候,应该刻意安排一些需要计算少的顺序)。在调试中,一般只需要focus在这几行比较花时间的地方,其他的行都可以忽略。

在真正执行大规模的运行之前(当然极为小的程序就无所谓了),我建议先保证占据超过20%计算时间的行的效率已经都达到最优了。(注意当你改完一行之后,可能那行的时间一下就变成接近于0了,然后你应该接着看新的最占据计算时间的行,直到最重要的行都已经最优化为止。)这样会事半功倍。

多数时候,当用MATLAB比较熟练以后,用profiler分析之后立刻就知道自己哪儿没写好(很多时候写的时候就知道,但是不知道会有多大影响,就先按照比较好写的方法写)。总的来说,这是一个非常实用的工具,这篇文章的目的就是希望没有使用过的同学能够知道,会大大提高你们使用MATLAB的效率。

注:虽然此文是针对MATLAB的Profiler,但对于其他科学计算语言(如Python),也有类似的功能,使用好类似的工具可以帮助大家很快的提升科学计算的程序水平。

qtableview与sqlite使用显示科学计算_使用MATLAB Profiler提升程序运行的效率相关推荐

  1. 基于python的风险管理方式属于_张家港高校邦_Python科学计算_网课答案

    张家港高校邦_Python科学计算_网课答案3rh4 张家港高校邦_Python科学计算_网课答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学习通,选修课,公务员,外 ...

  2. python除法运算定律_安康宁陕Python科学计算_高校邦_答案

    安康宁陕Python科学计算_高校邦_答案h779 安康宁陕Python科学计算_高校邦_答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学习通,选修课,公务员,外语类 ...

  3. matlab科学计算及分析,matlab科学计算

    spContent=当前,科学计算已经成为科学研究.技术创新的重要方法与手段,而作为实现工具的科学计算软件无疑具有至关重要的作用.MATLAB为众多领域的计算问题提供了全面的解决方案,代表了当今国际科 ...

  4. python科学计算_可视化图解Python科学计算包NumPy

    NumPy包是python生态系统中数据分析.机器学习和科学计算的主力. 它极大地简化了向量和矩阵的操作.Python的一些主要软件包依赖于NumPy作为其基础架构的基础部分(例如scikit-lea ...

  5. sqlite 查询 支持多用户同时_开源时代的后端程序员必须要了解的一个数据库SQLite...

    在过去工作的十年里,我主要使用了三大主流的数据库,SqlServer.MySql.Oracle.小型数据库还使用过Access.因为一直做后端开发的原因,很少使用SQLite数据库,因为我一直认为SQ ...

  6. matlab回归分析结果输出,科学网—回归分析的MATLAB和R程序实现 - 王福昌的博文...

    前面博客中已经讲过MATLAB中常用的命令拟合polyfit() , lsqcurvefit() ,nlinfit()  和 cftool等,这里简单介绍简单的回归分析的MATLAB和R语言实现. 例 ...

  7. 移动应用程序和网页应用程序_您的移动应用程序运行缓慢的主要原因以及如何修复它...

    移动应用程序和网页应用程序 by Rajput Mehul 通过拉杰普特·梅胡尔(Rajput Mehul) 您的移动应用程序运行缓慢的主要原因以及如何修复它 (Top Reasons Why You ...

  8. 『科学计算_理论』矩阵求导

    上篇原文链接 下篇原文链接 标量对矩阵求导 矩阵求导的技术,在统计学.控制论.机器学习等领域有广泛的应用.鉴于我看过的一些资料或言之不详.或繁乱无绪,本文来做个科普,分作两篇,上篇讲标量对矩阵的求导术 ...

  9. 在移动硬盘里移动视频文件到移动硬盘 另外一个文件夹 显示正在计算_古风玩数码 篇九十六:物超所值?移动固态硬盘到底值不值?阿斯加特移动硬盘AP2上手体验_固态硬盘...

    2020-11-02 19:55:571点赞6收藏0评论 想攒一台电竞主机.家用主机.酷炫主机无从下手?想省钱又怕性能不达标?值得买帮你打造定制化DIY装机工具,自助全网比价装机,提供最适合的搭配方案 ...

最新文章

  1. 12W人编程能力暴增!网友:服气!选择比天赋更重要!
  2. “口碑营销”产品模型推测与分析
  3. LeetCode Linked List Random Node(蓄水池采样算法)
  4. Apache开启GZIP压缩功能方法
  5. node JS獲取GPS_Node.js 14 正式发布:V8 引擎升级,新增异步本地存储 API
  6. 调整亮度_【紫墨手机摄影课堂】图片调整
  7. nginx.conf配置格式
  8. A little something to get you started
  9. 这届年轻人,连泡面也买不起了
  10. 计算机采用逻辑元件的发展顺序是,全国计算机等级考试一级选择题以及答案
  11. 退休后工资1700多元的人多吗?
  12. 保持ssh的连接不断开
  13. 优化云课堂直播间性能的一些思考与总结
  14. 一则 gfs2 集群文件系统无法挂载的解决案例
  15. IS-IS详解(七)——IS-IS LSP报文详解
  16. 关于python最大递归深度 - 998
  17. 计算机合成音乐及扩展名为,计算机合成声音
  18. lc滤波器是利用电感的感抗_由浅入深讲解滤波电路工作原理
  19. 怎么用计算机求数值等于log,怎么用计算器上的log?
  20. 字符串类型的数字的加减乘除运算

热门文章

  1. codeforces 85D. Sum of Medians
  2. Asp.net Mvc使用PagedList分页
  3. Linux下Birt、JTreeChart中文乱码问题解决办法
  4. SQL SERVER 2008 R2最大并发连接数修改为2后,SQL连接无法超过2个。
  5. 判断字符串是数字、字符、还是...
  6. --Symantec AntiVirus9.0--网上已很难寻的经典防病毒软件
  7. 模拟电子技术不挂科学习笔记1(半导体基础、二极管)
  8. python信号处理教程_PhysioNet生理信号处理(五)--WFDB for Python(DEMO)
  9. 使用Python开发会聊天的智能小机器人
  10. Python数据可视化案例二:动态更新数据