Azzera filtri
Azzera filtri

How to avoid adding same elements

2 visualizzazioni (ultimi 30 giorni)
MIch
MIch il 21 Set 2022
Modificato: Dyuman Joshi il 21 Set 2022
Hello,
I have one question.
I need to sum elements of an matrix 1x7, but I need to exclude same elements.
For example
a=[5 4 3 2 1 1 6]
I would like to get b=5+4+3+2+1+6, not 5+4+3+2+1+1+6.

Risposta accettata

Dyuman Joshi
Dyuman Joshi il 21 Set 2022
Modificato: Dyuman Joshi il 21 Set 2022
You can use unique to get the elements without repetition (subject to sum being less than 9007199254740992, as mentioned below)
%random data
a=[5 4 5 3 2 6 1 6 1 6];
b=unique(a,'stable')
b = 1×6
5 4 3 2 6 1
%using 'stable' to give an idea about the order
%you can use unique without 'stable' option as well
s=sum(b)
s = 21
Edit - In case you are dealing with fractional number, as @Walter Roberson commented,
sum(unique(a)) and sum(unique(a,'stable')) won't give the same answer.
  3 Commenti
Dyuman Joshi
Dyuman Joshi il 21 Set 2022
I am aware that one can use unique() without the 'stable' option, I just used stable option to give a hint.
Though you are right about fractions, I will edit my statement in my answer accordingly.
format long e
flintmax
ans =
9.007199254740992e+15
MIch
MIch il 21 Set 2022
Thank you very much for your help.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by