how to partially multiply two diffferent dimention matrix
1 view (last 30 days)
Show older comments
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
John D'Errico
on 14 May 2017
Interesting. I wonder why two different people are asking the same question?
Accepted Answer
Star Strider
on 14 May 2017
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
Star Strider
on 14 May 2017
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.
More Answers (1)
Michael Saniuk
on 14 May 2017
>> A = rand(1250,1);
>> B = rand(1,500);
>> C = A(1:500,1).*B';
>> D = A(251:750,1).*B';
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices 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!