匿名函数、内联函数与独立子函数,哪一个运行效率更高?

8e4c8f5689fb6e493f628db6ae113f5b.png

函数在matlab编程中占据着重要的角色,matlab为大家提供各种不同类型的函数,不同类型的函数有各自不同的优缺点。今天以匿名函数、内联函数与独立子函数为测试对象,看看这三种在运行效率上谁更具优势,为了大家高效编程提供数据支撑。(注:程序的运行效率除了与代码算法本身有关外,还与计算硬件息息相关,所有测试结果只是小编电脑的数据,大家根据自身条件酌情使用)

为了使计算结果根据合理性,每次统计调用函数一万次,共统计二十次。请看下方示例:

% 匿名函数
afun = @(x) x.^2 + cos(x) + rand;


% 内联函数
ifun = inline('x.^2 + cos(x) + rand','x');


n = 10000;
m = 20;
y = zeros(1,n);
ya = zeros(1,n);
yi = zeros(1,n);
tf = zeros(1,m);
ta = zeros(1,m);
ti = zeros(1,m);
%% 子函数测试段
for g = 1:m
    tic;
    for k = 1:n
        y(k) = fun(k);
    end
    tf(g) = toc;
end
%% 匿名函数测试段
for g = 1:m
    tic;
    for k = 1:n
        ya(k) = afun(k);
    end
    ta(g) = toc;
end
%% 内联函数测试段
for g = 1:m
    tic;
    for k = 1:n
        yi(k) = ifun(k);
    end
    ti(g) = toc;
end

经过20次统计,独立子函数的平均运行时间为0.000918,匿名函数的平均运行时间为0.0013,内联函数的平均运行时间为1.0005。对比可以看出,独立子函数的运行效率最高,内联函数运行效率最低,因此不建议大家在平时的编程过程中少用内联函数。

如有问题或建议,请在公众号或本推文下方留言!

感谢您的阅读!

参考资料:

[1] https://ww2.mathworks.cn/help/matlab/ref/inline.html

[2] https://ww2.mathworks.cn/help/matlab/matlab_prog/creating-a-function-handle.html

封面图片:由 Herbert Aust 在Pixabay上发布

打造一款属于自己matlab版屏幕取色器

带你玩转matlab单位换算

如何用女神的名字来画女神?

基于量子理论的真随机数产生器 (MATLAB版)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值