Azzera filtri
Azzera filtri

Element by Element Subtraction

62 visualizzazioni (ultimi 30 giorni)
Sanim Rahman
Sanim Rahman il 10 Dic 2017
Commentato: anuforo peter il 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?

Risposta accettata

Image Analyst
Image Analyst il 10 Dic 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 Commenti
anuforo peter
anuforo peter il 7 Mar 2020
What about doing this on a mutidimensional array
anuforo peter
anuforo peter il 7 Mar 2020
Please help! Thank you ?

Accedi per commentare.

Più risposte (1)

Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan il 10 Dic 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));

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by