• 【小技巧】在matlab中如何精确统计一段程序的运行时间


    欢迎订阅《FPGA/MATLAB/SIMULINK系列教程》

    Simulink教程目录

         

    目录

    1.MATLAB概述

    2.程序运算时间统计方法


    1.MATLAB概述

           MATLAB是一种高级编程语言和交互式环境,用于算法开发、数据可视化、数据分析、信号处理和建模。它是由美国MathWorks公司开发的,广泛用于工程领域、学术研究以及商业分析。

           MATLAB的特点在于其强大的矩阵计算和可视化功能。它可以进行复杂的数学计算、统计分析、优化问题求解以及信号处理等。此外,MATLAB还提供了丰富的数据分析工具,例如曲线拟合、傅里叶变换、主成分分析等。

           MATLAB的可视化功能非常强大,可以绘制2D和3D图形,以及可视化各种数据集。它提供了多种绘图工具,例如折线图、柱状图、散点图等,并支持自定义绘图样式和图形属性。

           在MATLAB中,可以轻松地进行矩阵运算。它提供了各种矩阵操作,例如矩阵求逆、矩阵乘法、矩阵转置等。此外,MATLAB还支持向量运算和动态数组操作。

           MATLAB具有强大的外部接口功能,可以与其他编程语言和工具集成。它可以与C、C++、Java和Fortran语言进行接口,使得在MATLAB中编写的程序可以轻松地与其他语言编写的程序进行交互。

           MATLAB的应用领域非常广泛,包括工程计算、控制设计、信号处理、图像处理、金融建模以及数据分析等领域。在学术研究中,MATLAB也得到了广泛应用,例如在物理学、化学、生物学、统计学等领域。

          总的来说,MATLAB是一种功能强大的数学计算软件,它提供了全面的数值计算、可视化和编程功能。它的应用范围广泛,适用于各种领域的研究和开发工作。

    2.程序运算时间统计方法

           同情况下,我们需要统计matlab中某个算法或者程序段的运行时间,用于分析程序段的复杂性。此时,我们可以使用time命令或者tictoc函数来精确统计一段程序的运行时间。

    1. tic;
    2. % 你的程序代码段
    3. toc;
    4. execution_time = toc;

    具体距离实现过程如下:

    1. clc;
    2. clear;
    3. close all;
    4. tic;
    5. t=0;
    6. for i= 1:1000
    7. t=t+1;
    8. end
    9. times = toc;
    10. times

    运行之后,我们可以看到

    times =

       7.9960e-04

    即运行时间为7.9960e-04s

           注意:为了得到更准确的结果,应该将代码段运行多次,并取平均运行时间。因为第一次运行可能会进行一些初始化操作,导致结果偏大。另外,MATLAB的运行环境也会影响结果的准确性,例如CPU的负载、内存的使用情况等。

    假设将上述程序的循环改为100万次,即:

    1. clc;
    2. clear;
    3. close all;
    4. tic;
    5. t=0;
    6. for i= 1:1000000
    7. t=t+1;
    8. end
    9. times = toc;
    10. times

    运行之后,我们可以看到

    times =

        0.0025

    即运行时间为0.0025s

    更进一步,我们可以通过这个方法统计不同循环次数所对应的程序运行时间,编写如下matlab:

    1. clc;
    2. clear;
    3. close all;
    4. idx=0;
    5. for j = 10000000:10000000:100000000
    6. idx=idx+1;
    7. tic;
    8. t=0;
    9. for i= 1:j
    10. t=t+1;
    11. end
    12. times(idx,1) = toc;
    13. end
    14. times
    15. figure;
    16. semilogx([10000000:10000000:100000000],times,'b-o');
    17. xlabel('循环次数');
    18. ylabel('运行时间s');

    运行后,可以看到其时间为:


    times =

        0.0136
        0.0175
        0.0262
        0.0350
        0.0438
        0.0517
        0.0607
        0.0694
        0.0780
        0.0866

    即不同循环次数所对应的运行时间,

    使用相似的方法,我们可以统计各种不同算法的复杂度。

  • 相关阅读:
    戏说领域驱动设计(二十)——值对象
    思科路由器地址转换配置
    2.15 OrCAD中怎么创建带图片的Title Block?【OrCAD原理图封装库50问解析】
    使用github托管博客后添加clouldflare,用CDN加速时配置DNS遇到的问题
    计算机网络自学笔记008_Real(应用层)
    【深度学习】Beam Search原理和实现、闲聊机器人优化
    python flask 接入 sentry
    实例介绍基于项目依赖包选择具体实现类
    【毕业设计源码】基于java的新闻网站设计与实现
    【故障公告】1个存储过程拖垮整个数据库
  • 原文地址:https://blog.csdn.net/ccsss22/article/details/128192617