【小技巧】在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函数来精确统计一段程序的运行时间。

tic;  
  
% 你的程序代码段  
  
toc;  
execution_time = toc;

具体距离实现过程如下:

clc;
clear;
close all;

tic;
t=0;
for i= 1:1000
    t=t+1; 
end
times = toc;
times

运行之后,我们可以看到

times =

   7.9960e-04

即运行时间为7.9960e-04s

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

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

clc;
clear;
close all;

tic;
t=0;
for i= 1:1000000
    t=t+1; 
end
times = toc;
times

运行之后,我们可以看到

times =

    0.0025

即运行时间为0.0025s

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

clc;
clear;
close all;


idx=0;
for j = 10000000:10000000:100000000
    idx=idx+1;
    tic;
    t=0;
    for i= 1:j
        t=t+1; 
    end
    times(idx,1) = toc;
end
times
figure;
semilogx([10000000:10000000:100000000],times,'b-o');
xlabel('循环次数');
ylabel('运行时间s');

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


times =

    0.0136
    0.0175
    0.0262
    0.0350
    0.0438
    0.0517
    0.0607
    0.0694
    0.0780
    0.0866

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

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

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值