# What is the fastest way to do repeated element wise matrix multiplication?

8 views (last 30 days)

Show older comments

Aravind Varma Dantuluri
on 19 Feb 2024

Commented: Aravind Varma Dantuluri
on 19 Feb 2024

Given a matrix `A`, I need to multiply with another constant vector `B`, N times (N > 1 million). The size of `A` is `9000x1` and `B` is `9000x1000`.

The code is currently evaluated in the following way (random values taken for example):

B = rand(9000,1000); % B is fixed, does not depend on i

N = 1000000;

for i=1:N

rand('seed',i);

A = rand(9000,1); % A is 9000x1 matrix which varies with i

% prod = A.*B; % prod is 9000 x 1000 matrix

% sum_temp = sum(product); % sum_temp is 1 x 1000 matrix

% Edit

sum_temp = A.' * B;

% do multiple pperations with sum_temp

% result(i) = some_constant;

end

I used Profiler to see which line is taking the most time and it is the 2nd line (prod = A.*R;). The problem is that N is very large and the code is taking over several days to complete.

I am about to try the parallel computing toolbox (GPU computing), but are there any suggestions on what I can do in the basic version?

How can I reduce the run-time of such codes in MATLAB?

##### 0 Comments

### Accepted Answer

Stephen23
on 19 Feb 2024

Moved: Stephen23
on 19 Feb 2024

##### 5 Comments

Stephen23
on 19 Feb 2024

Edited: Stephen23
on 19 Feb 2024

@Aravind Varma Dantuluri: did that make enough difference to the speed?

Another possibilty would be to look at some kind of parallel processing:

### More Answers (0)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!