Element by Element Subtraction

107 Ansichten (letzte 30 Tage)
Sanim Rahman
Sanim Rahman am 10 Dez. 2017
Kommentiert: anuforo peter am 7 Mär. 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?

Akzeptierte Antwort

Image Analyst
Image Analyst am 10 Dez. 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 Kommentare
anuforo peter
anuforo peter am 7 Mär. 2020
What about doing this on a mutidimensional array
anuforo peter
anuforo peter am 7 Mär. 2020
Please help! Thank you ?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan am 10 Dez. 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));

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by