Matlab中arrayfun与for循环效率比较

本文通过测试发现,在Matlab 2018中,arrayfun在简单运算上相对于for循环并没有显著速度优势。尽管如此,随着计算机性能提升和底层代码优化,这种差异可能会继续减小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小编最近看到了一个帖子,因此在Matlab 2018中对其又进行了测试,发现arrayfun与for循环相比并没有明显的优势,但是这仅限于比较简单的运算!欢迎有大规模运算的代码共享对比。

三段代码如下所示:

% Code 1
clear;
tic;
Na=100;
Nb=100;
aa=repmat((1:Na)'.^2,1,Nb);
bb=repmat(1./(1:Nb),Na,1);
fun=@(a,b) @(x,y) a*x.^2+b*y.^2;
Q=@(a,b) integral2(fun(a,b),0,1,0,1,'AbsTol',1e-10);
q=arrayfun(@(a,b) Q(a,b),aa,bb);
toc;
% Code 2
clear;
tic;
Na=100;
Nb=100;
aa=repmat((1:Na)'.^2,1,Nb);
bb=repmat(1./(1:Nb),Na,1);
fun=@(a,b,x,y) a*x.^2+b*y.^2;
q=arrayfun(@(a,b) integral2(@(x,y) fun(a,b,x,y),0,1,0,1,'AbsTol',1e-10),aa,bb);
toc;
% Code 3
clear;
tic;
Na=100;
Nb=100;
a=(1:Na).^2;
b=1./(1:Nb);
q(1:Na,1:Nb)=0;
for i=1:N
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你可真搞笑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值