# How to use a loop to calculate m*n values for an mxn matrix?

7 views (last 30 days)

Show older comments

I have two matrices, both approximately 100x100, call them A and B. I am trying to multiply every element of matrix A by every element of matrix B and output these values to a third matrix. In reality, I am doing a little bit more than multiplication, but the operation itself isn't my problem. I am having trouble figuring out how to organize this within a loop.

Any suggestions are greatly appreciated!

##### 1 Comment

Jan
on 27 Sep 2013

### Accepted Answer

Jan
on 27 Sep 2013

Edited: Jan
on 27 Sep 2013

So you want to multiply 10'000 elements of A with all 10'000 elements of B such that you get 100'000'000 elements as result?

C = zeros(1, 100000000); % 1e8

iC = 0;

for iA = 1:10000

for iB = 1:10000

iC = iC + 1;

C(iC) = A(iA) * B(iB);

end

end

If this is what you are searching for, omitting the inner loop is most likely faster:

B = B(:);

C = zeros(10000, 10000); % 1e8 elements

for iA = 1:10000

C(:, iC) = A(iA) * B;

end

end

And then the relation to BSXFUN is more obvious, but this might be much more complicated in your real case:

C = bsxfun(@times, A(:).', B(:));

If you explain "a little bit more than multiplication" in detail, it would be clear if BSXFUN would be applicable. But perhaps you can use the example as pattern for the more complicated calculations already.

##### 0 Comments

### More Answers (1)

Ilham Hardy
on 27 Sep 2013

Edited: Ilham Hardy
on 27 Sep 2013

Is it something like this?

A = [1 2 3 4; 5 6 7 8; 9 10 11 12];

B = [2 2 2 2; 3 3 3 3; 4 4 4 4];

>> C = A.*B

C =

2 4 6 8

15 18 21 24

36 40 44 48

##### 2 Comments

Ilham Hardy
on 27 Sep 2013

Sorry, i didn't read your question carefully.

Could you elaborate more on the "a little bit more than multiplication" -part?

Perhaps a simple example of your matrix and the operation?

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!