使用matlab分析器跟踪matlab代码执行时间

本文针对各大matlab版本均有效!可以通过往程序中嵌入语句,以达到使用matlab分析器跟踪matlab代码执行时间的目的。matlab中最好用的帮助命令莫过于doc啦! doc profile 即可找到matlab自带的好的例程,然后就能搞出事情啦!
1.代码

function InlineSubAnonymousNestedDemo
    %% 用inline解决
    tic;
    k=linspace(0,5);
    y1=zeros(size(k));
    for i=1:length(k)
        kk=k(i);
        fun=inline(['sin(',num2str(kk),'*x).*x.^2 ']);
        y1(i)=quadl(fun,0,5);
    end
    time=toc;
    disp(['用inline方法的时间是:',num2str(time),'秒!' ])
    %% 用anonymousfunction 解决
    tic;
    f=@(k)quadl(@(x)sin(k.*x).*x.^2,0,5);
    kk=linspace(0,5);
    y2=zeros(size(kk));
    for ii=1:length(kk)
       y2(ii)=f(kk(ii));
    end

    time=toc;
    disp(['用anonymousfunction方法的时间是:',num2str(time),'秒! '])
    %% 用nestedfunction解决
    function y=ParaInteg(k)
        y=quadl(@(x)sin(k.*x).*x.^2 ,0,5);
    end
    tic;
    kk=linspace(0,5);
    y3=zeros(size(kk));
    for ii=1:length(kk)
        y3(ii)=ParaInteg(kk(ii));
    end
    time=toc;
    disp(['用nestedfunction方法的时间是:',num2str(time),'秒! '])
    %% 用arrayfun+anonymousfunction 解决
    tic;
    y4=arrayfun(@(k)quadl(@(x)sin(k.*x).*x.^2,0,5),linspace(0,5));
    time=toc;
    disp(['用arrayfun+anonymousfunction方法的时间是:',num2str(time),'秒!' ])
    plot(kk,y2);
    xlabel('k');
    ylabel('f(k)')
end

%% 关键代码添加看这里
profile on
InlineSubAnonymousNestedDemo   %测试使用的函数
profile viewer
profsave  %将代码运行的结果以HTML形式返回展示

2.效果
2.1.原始代吗效果
在这里插入图片描述
2.2.代码运行时间跟踪结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jp_zhou256/article/details/85263747
今日推荐