如果我们有两个矩阵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')
