probability of occurence of a specific value

Hi all! I have a question concerning the probability of occurence of a specific value. I have a set of precipitation data and would like to find the frequency histogram for precipitation values equal to zero. is there someone here who is able to solve this easy problem? :) thank you

답변 (3개)

Image Analyst
Image Analyst 2015년 3월 10일

0 개 추천

Have you looked into the histogram functions?
Or fitting routines like polyfit() or more sophisticated tools in the Curve Fitting Toolbox?

댓글 수: 1

yes but I don't know how to say to the hisotgram function to plot only values equal to zero...because usually it asks me to define a range of values in which I want the plot

댓글을 달려면 로그인하십시오.

Guillaume
Guillaume 2015년 3월 10일

0 개 추천

You must have at least two bins for the histogram functions, you could just set the threshold of the second bin to something very small:
h = histc(data, [0 0.00001]);
But if you really just want the number of values equal to 0:
num0 = sum(data == 0);
%or num0 = sum(abs(data < 0.00001)) if you want to include values very close to 0

댓글 수: 5

thank you! actually what i would like to obtain on my hisotgrams are classes like this: - precipitation values =0 -precipitations between 1 and 3 mm - precipitations between 3 and 10 -prcipitations >10 mm Is there a way to do it?
I would do it like this:
precipitation = [0 0 0 0 0 0.2 0.3 1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 10.1 11.11 12.12]; %for example
filteredprecipitation = precipitation(precipitation == 0 | precipitation >= 1); %get rid of values >0 and <1
precipitationhistogram = histc(filteredprecipitation, [0 1 3 10 Inf]);
precipitationhistogram = precipitationhistogram(1:end-1)
Basically, remove the values > 0 and <= 1 so that the first bin [0 1[ only includes the 0 values. The second bin is the values in the range [1 3[, the third in the range [3 10[, the 4th in the range [10 Inf[ and the last, just the Inf values (so I get rid of that one).
I would like the first bar to be only with 0 values, the second one with values between 0.1 and 1 and the third one with values between 1 and 3...the rest is the same
You just have to change the filter and the bins:
filteredprecipitation = precipitation(precipitation == 0 | precipitation >= 0.1); %get rid of values >0 and <0.1
precipitationhistogram = histc(filteredprecipitation, [0 0.1 1 3 10 Inf]);
precipitationhistogram = precipitationhistogram(1:end-1)
moreover I would like to plot a relative frequency histogram instead of the normal one
I assume that's what you want:
precipitationhistogram = precipitationhistogram / sum(precipitationhistogram);
Or use the new histcounts:
precipitationhistogram = histcounts(filteredprecipitation, [0 0.1 1 3 10 Inf], 'Normalization', 'probability');
really thank you for youranswer! I solved the problem:)

댓글을 달려면 로그인하십시오.

Camilla Santicoli
Camilla Santicoli 2015년 3월 10일

0 개 추천

ok I understood it! but the plot doesn't work...

댓글 수: 5

Is this in response to my answer? If yes, please reply with Comment on this Answer as you did the first time rather than starting a new answer.
The reason I'm confused is that there's no plot in my answer.
bar(precipitationhistogram)
would be how I'd plot it, and that works fine with my example.
You said you wanted just the precipitation == 0 in your first bin and [1 3[ in the second bin. That's exactly what my code does.
ok sorry if I started a new answer...I am still quite new with this forum. Actually I did a little mistake in my explanation. I would like the first bar to be only with 0 values, the second one with values between 0.1 and 1 and the third one with values between 1 and 3...the rest is the same!
moreover I would like to plot a relative frequency histogram instead of the normal one
I'm replying in a comment to my original answer
yes that's perfect! thank you very much! do you also know how to plot it with relative frequency?

댓글을 달려면 로그인하십시오.

질문:

2015년 3월 10일

댓글:

2015년 3월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by