how to partially multiply two diffferent dimention matrix

A[1,2500] and B[500,1]. how can i multiply 500 form A with B and then Skip 250 positions from A And multiply with B. e.g.., A[1 to 500]*B => store then A[250 to 750] * B=> store ,like wise

2 Comments

Interesting. I wonder why two different people are asking the same question?
this is the key technical part of our home work

Sign in to comment.

 Accepted Answer

This works:
A = randi(9, 1, 2500); % Create Data
B = randi(9, 500, 1); % Create Data
for k1 = 1:2
Result{k1} = bsxfun(@times, A(1, (1:500)+(k1-1)*250), B);
end
It produces (500x500) matrices. If you what a different result, I need to know what output you want. It will be easy to change my code to produce it.

2 Comments

Thank you for quick reply but I need 1x1 matrix
If you want the dot product (or inner product), change the ‘Result’ assignment to:
Result(k1) = A(1, (1:500)+(k1-1)*250) * B;
That will produce your (1x1) scalar result, as desired.

Sign in to comment.

More Answers (1)

>> A = rand(1250,1);
>> B = rand(1,500);
>> C = A(1:500,1).*B';
>> D = A(251:750,1).*B';

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!