I want to perform certain matrix substraction using vectorization

1 view (last 30 days)
I have a mtrix say A = [2,5,7]' and another matrix B = [2,7,9]', now i want to subtract B from A in such a way like each element of B will get subtracted from all elements of A, like c = A - B then c should be like (Expected outcome) = [0 3 5, -5 -2 0, -7 -4 -2]
Its like each element of B will get deducted from all elements of A and result will be stored in row wise in new matrix row wise.I dont want to use any loops but only vectorization.
  1 Comment
MSDataSpl1
MSDataSpl1 on 9 Aug 2017
When i am using this for larger dataset it is causing memory error:
Error using bsxfun Out of memory. Type HELP MEMORY for your options.
Where,
StartTime = currTime(1:LenRxDiv-1);
Data1 = StartTime.';
Data1_s = bsxfun(@minus ,ActTimeStop,Data1);
Value of LenRxDiv is 359574
ActTimeStop is 114020 * 1

Sign in to comment.

Accepted Answer

Jan
Jan on 2 Aug 2017
Edited: Jan on 2 Aug 2017
A = [2,5,7] % Row vector
B = [2,7,9].' % Column vector
C = A - B % Since R2016b
C = bsxfun(@minus, A, B) % <= 2016a

More Answers (0)

Community Treasure Hunt

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

Start Hunting!