How to sum all instances of a value across a variable?

1 Ansicht (letzte 30 Tage)
Louisa Thomas
Louisa Thomas am 15 Jan. 2018
Kommentiert: Louisa Thomas am 15 Jan. 2018
My variable follows this format
a = [1 2 2 1]
etc.
So all of the values are either 1, or 2.
How do I sum all of the instances of the number 1 across this variable?
  1 Kommentar
Jan
Jan am 15 Jan. 2018
Is this a homework question? If so, what have you tried so far? Do you want to solve it with a loop or with the efficient builtin method unique and histcounts?
As usual I could offer a method based on RunLength. After I have suggested it a hundred of times in the forum already, I think about changing my nick name to "JanLength".

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jan
Jan am 15 Jan. 2018
Bearbeitet: Jan am 15 Jan. 2018
a = [1 2 2 1]
k = 1;
sumOf1 = sum(a(a == k))
or
sumOf1 = k * sum(a == k)
But maybe you want to get the result for all elements of a? Then please explain this. unique and histcounts will be useful.
  1 Kommentar
Louisa Thomas
Louisa Thomas am 15 Jan. 2018
The first part was great thank you. It worked perfectly! It's part of a data extraction script, so I just worked with that format, and it worked :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by