如果我们有两个矩阵X和Y,两个都是二维的,现在在数学上我们可以说:sum(X-Y)= sum(X)-sum(Y). 哪个在Matlab中更有效?哪个更快? 在我的机器上,对于小型数组,sum(x-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')