# Element by Element Subtraction

67 views (last 30 days)
Sanim Rahman on 10 Dec 2017
Commented: anuforo peter on 7 Mar 2020
I am trying to do element by element subtraction like the following:
a= [1,2,3,4,5] b= [-1,-2,-3]
I would like my output to be "a" to be subtracted by the first element of "b" then by the second element and so on. The output "c" should look like: c=[2,3,4,5,6,3,4,5,6,7...]
I understand that if I simply do "c=a-b" will not work because the dimensions do not agree. Would something like this require a loop?

Image Analyst on 10 Dec 2017
Try this:
a= [1,2,3,4,5]
b= [-1,-2,-3]
c = a' - b;
c = c(:)'
You get
c =
2 3 4 5 6 3 4 5 6 7 4 5 6 7 8
in R2016b (I believe) or later that has automatic expansion capability.
##### 3 CommentsShow 1 older commentHide 1 older comment
anuforo peter on 7 Mar 2020
What about doing this on a mutidimensional array
anuforo peter on 7 Mar 2020

Kaushik Lakshminarasimhan on 10 Dec 2017
minus operator in Matlab can inherently handle this, so you don't need a loop. Checkout >> help minus. For your case, something like this will work.
a= [1,2,3,4,5]; b= [-1,-2,-3];
c = reshape(a'-b,1,numel(a)*numel(b));