当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – matlab sum(X-Y)vs sum(X) – sum(Y)

来源:互联网 收集:自由互联 发布时间:2021-06-22
如果我们有两个矩阵X和Y,两个都是二维的,现在在数学上我们可以说:sum(X-Y)= sum(X)-sum(Y). 哪个在Matlab中更有效?哪个更快? 在我的机器上,对于小型数组,sum(x-y)稍微快一点,但对于较大的
如果我们有两个矩阵X和Y,两个都是二维的,现在在数学上我们可以说:sum(X-Y)= sum(X)-sum(Y).

哪个在Matlab中更有效?哪个更快?

在我的机器上,对于小型数组,sum(x-y)稍微快一点,但对于较大的数组,sum(x)-sum(y)要快得多.为了进行基准测试,我在具有32GB内存的 Windows 7机器上使用MATLAB R2015a.

n = ceil(logspace(0,4,25));

for i = 1:numel(n)
    x = rand(n(i));
    y = rand(n(i));
    t1(i) = timeit(@()sum(x-y));
    t2(i) = timeit(@()sum(x)-sum(y));
    clear x y
end

figure; hold on
plot(n, t1)
plot(n, t2)
legend({'sum(x-y)', 'sum(x)-sum(y)'})
xlabel('n'); ylabel('time')
set(gca, 'XScale', 'log', 'YScale', 'log')
网友评论