if i have a vector A = [1 1 1 1 2 3 3 5 5 5 5 6 6 7]... its alreay been sortecand only increases.. i want to create a 2nd vector based off A say called B that would have the count of each unique values in the A vector... so, B = [3 1 2 3 2 1] .. because there are 3 1's and 1 2 and 2 3's, etc etc. i just cant seem to get the suntax correct... please help.

 採用された回答

Star Strider
Star Strider 2021 年 5 月 9 日

0 投票

Try this —
A = [1 1 1 1 2 3 3 5 5 5 5 6 6 7];
[Au,~,ix] = unique(A,'stable');
Count = accumarray(ix,1);
Result = table(Au(:), Count(:), 'VariableNames',{'Unique_Elements','Count'})
Result = 6×2 table
Unique_Elements Count _______________ _____ 1 4 2 1 3 2 5 4 6 2 7 1
.

4 件のコメント

James Baker
James Baker 2021 年 5 月 9 日
haha... my matlab skills are weak... im trying to decode ur answer ;-)
Star Strider
Star Strider 2021 年 5 月 9 日
Likely the only function that may be a bit mysterious is accumarray. Here, it looops through the elements of the vector and counts the occurrences of each one, assigned by the ‘ix’ index variable created by the unique function. (The accumarray function can do a number of other things, depending on how the fourth argument, that can be a number of different functions, accumulates and stores the results. The default fourth argument is simply to sum the occurrences, as it does here. It is worthwhile to experiment with accumarray to understand everything it can do.)
James Baker
James Baker 2021 年 5 月 9 日
ok.. perfect.. after looking at it for a few... just what i needed thanks
Star Strider
Star Strider 2021 年 5 月 9 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

製品

リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by