Filter löschen
Filter löschen

Is element-wise multiplication or element-wise squaring faster?

4 Ansichten (letzte 30 Tage)
I have a matrix A for which I need its individual elements squared. Which of the following is faster?
% This... >> B = A .* A;
% Or this? >> B = A .^ 2;
Anyone know which of these is faster? Some initial tests suggest the direct squaring is marginally faster... but I'd like to know why.
Thanks!

Akzeptierte Antwort

Kelly Kearney
Kelly Kearney am 25 Sep. 2013
A slightly more robust timing test, using timeit:
n = 1:100:1000;
t = zeros(length(n),2);
for ii = 1:length(n)
a = rand(n(ii));
t(ii,1) = timeit(@() a.*a);
t(ii,2) = timeit(@() a.^2);
end
plot(n, t, 'marker', '.');
legend('*', '^');
Playing around with the values of n give me different results. For small matrices (n ~ 1-10), times is faster. For larger matrices (n ~ 100-4500), power is faster. After this point, the two converge to nearly identical run times.
Not sure on the why, since both function are built-ins. But running similar tests to the above should give you a good idea of how your computer will respond for the matrix sizes relevant to your problem.

Weitere Antworten (0)

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by