short way to bar plot a discretize vector?

לק"י
Hello!
I want to take a vector A, and bar plot it using specific bins (defiend by 'edges' vector). I want the plot to show the sum of values that belong to each bin. Not the number of values like histogram does.
I started to write a code:
dsc=discretize(A, edges);
barpltcll=num2cell(edges);
for i=length(edges) %this part creates cell array that holds all the sum of values that fall in the bins.
barpltcll(2,i)=sum(A(dsc(i)))...
but I thought maybe there is shorter way to do it. I would love to know about it, like turn an option in the histogram() comamnd to show the sum of values that fell into the bin rather then the counts (number of values). :)
Thanks,
Amit.

 採用された回答

Jan
Jan 2023 年 2 月 7 日

0 投票

A = rand(1, 100);
edges = linspace(0, 1, 6);
dsc = discretize(A, edges);
result = accumarray(dsc(:), A(:)); % Default function: @sum
bar(edges(1:end-1), result)

5 件のコメント

Amit Ifrach
Amit Ifrach 2023 年 2 月 7 日
編集済み: Amit Ifrach 2023 年 2 月 7 日
לק"י
Hi Jan, thanks for the quick answer!
May I just ask another thing.. when using accumarray i got this:
Error using accumarray
First input SUBS must contain positive integer subscripts.
Any idea why do I got it?
I read a bit about it, something about 'unique' values which I belive I don't have and as far as I saw, there are only positive integers in the dsc variable, like here:
Thanks :)
Amit Ifrach
Amit Ifrach 2023 年 2 月 7 日
לק"י
Sorry, had to find the nan (max value).
Thank :)
Jan
Jan 2023 年 2 月 7 日
@Amit Ifrach: What does this mean: לק"י
Amit Ifrach
Amit Ifrach 2023 年 2 月 9 日
Hi @Jan,
It's Yemenite jews way to start a writing (translates somewhat to for the hope for g-d)
Amit :)
Jan
Jan 2023 年 2 月 9 日
@Amit Ifrach: Thanks for the explanation. I assume I guess correctly, what "g-d" is.

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

その他の回答 (0 件)

カテゴリ

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

質問済み:

2023 年 2 月 7 日

コメント済み:

Jan
2023 年 2 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by