I am trying to create a histogram from a data set in excel by importing it to matlab.
I can't get the histogram function to work with a table or data array after import.
I need to use the data set to make a histogram with a bin width of 50 and then subtract one entry per bin.
how do I reference the array or table in the histogram function? how would I subtract one entry per bin?
any help would be greatly appreciated.

3 Kommentare

Ameer Hamza
Ameer Hamza am 14 Mai 2020
Can you share a sample dataset? The correct solution depends on how your data is arranged.
daniel caltrider
daniel caltrider am 15 Mai 2020
I was able to figure out the histogram part by importing the intire .xlsx file with
[num,~,~]=xlsread('histogram2.xlsx');
d=num;
histogram(d,50)
histfit(d,50)
here is a small portion of the full data set:
1756
1055
4193
1156
7285
1095
845
3088
daniel caltrider
daniel caltrider am 15 Mai 2020
I still need help removing one entry per bin.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 15 Mai 2020
Bearbeitet: Ameer Hamza am 15 Mai 2020

0 Stimmen

To decrease, one entry per bin, try this
[num,~,~]=xlsread('histogram2.xlsx');
d=num;
h = histogram(d,50);
h.BinCounts = h.BinCounts-1

9 Kommentare

daniel caltrider
daniel caltrider am 15 Mai 2020
Bearbeitet: daniel caltrider am 15 Mai 2020
That did not work but lead me in a new direction. I got an error "unable to resolve the name h.BinCounts."
daniel caltrider
daniel caltrider am 15 Mai 2020
Still unable to find a method to do what I want via code. Probably going to remove point from my original data and redo the histogram with the adjusted data set.
Ameer Hamza
Ameer Hamza am 15 Mai 2020
Which MATLAB release are you using? Can you paste your lines of code here?
daniel caltrider
daniel caltrider am 15 Mai 2020
[num,~,~]=xlsread('histogram2.xlsx');
d=num;
histogram(d,50)
I am using R2020a.
This is all the code I have for the histogram I need.
Ameer Hamza
Ameer Hamza am 15 Mai 2020
No, I meant to attach the code which gives error about BinCounts. Can you change your code according to my answer, run it and then paste the code and error message?
daniel caltrider
daniel caltrider am 15 Mai 2020
>> [num,~,~]=xlsread('histogram2.xlsx');
d=num;
h = histogram(d,50);
h.BinCounts = h.BinCounts-1
Error using matlab.graphics.chart.primitive.Histogram/set.BinCounts
Expected input to be nonnegative.
Here you go. Sorry for the misunderstanding.
Ok. The error is caused because if the height of the histogram for some bins is zero, then subtracting 1 will make it negative (which does not make any sense). Therefore try the following line. It leaves the bins with zero height
h.BinCounts(h.BinCounts>0) = h.BinCounts(h.BinCounts>0)-1
daniel caltrider
daniel caltrider am 15 Mai 2020
It worked! thank you!
Ameer Hamza
Ameer Hamza am 15 Mai 2020
I am glad to be of help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by