vector confusion

2 views (last 30 days)
Leor Greenberger
Leor Greenberger on 22 Sep 2011
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 Comments
the cyclist
the cyclist on 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 on 22 Sep 2011
A = [1 2 4 5 2 4 6 7 2 ....] <-- 2 occurs 10 times.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 22 Sep 2011
Especially if you are starting with an all-zero array, use
P = accumarray(A(:),1);
  1 Comment
Leor Greenberger
Leor Greenberger on 22 Sep 2011
excellent!!! I can't believe there is a function for this!

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!