How do I create a histogram with y axis being count, and x-axis being 20 different possible values?

2 views (last 30 days)
Hello,
I have a 76x76 matrix that I would like to convert into a histogram. All the values in it range from -1 to 1, but I only want to use the top triangle values, triu(A,1).
so I would like 21 beams on X-axis ranging from -1,-0.9,-0.8...,0.8,0.9,1.0. The Y-axis will be the amount of entries in the matrix that fit in that particular beam, e.g. 0.62 and 0.60 would both be in the 0.6 beam.
Thank you very much.

Accepted Answer

Image Analyst
Image Analyst on 24 Aug 2016
I assume you tried the really obvious route -- the histogram() function. So you'll have to let us know why this isn't working for you.
upperTriangle = logical(triu(ones(size(A)), 1));
edges = -1 : 0.1 : 1;
histogram(A(upperTriangle), edges);
grid on;
xlabel('Value');
ylabel('Count');
Why doesn't this work? It seems simple enough, and seems like it should work.
  6 Comments
Image Analyst
Image Analyst on 25 Aug 2016
Plus, you can't call your function histogram(). There is already a function called histogram(), and you just destroyed it. So now your histogram() function calls itself recursively - NOT what you want.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!