I have a vector A whose values are indices for vector P.
Say A = 2 occurs 10 times.
If I do:
P(A) = P(A) + 1
P(2) = 1 % not 10
I believe I understand why this is happening. Is there a solution without going into FOR loops? A could be quite large.

2 Kommentare

the cyclist
the cyclist am 22 Sep. 2011
I do not understand what you mean by "A = 2 occurs 10 times". Can you write out code for what you mean?
Leor Greenberger
Leor Greenberger am 22 Sep. 2011
A = [1 2 4 5 2 4 6 7 2 ....] <-- 2 occurs 10 times.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 22 Sep. 2011

0 Stimmen

Especially if you are starting with an all-zero array, use
P = accumarray(A(:),1);

1 Kommentar

Leor Greenberger
Leor Greenberger am 22 Sep. 2011
excellent!!! I can't believe there is a function for this!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by