How to split data set into multiple bins and perform condition statement on bins

조회 수: 7 (최근 30일)
I have a logical data set and I am trying to divide it into 31 bins but my data points are not evenly distributing and I need it to be divided into 31 bins so that I can then run an if statement that counts the total number of ones in each bin and compares it to a condition.

답변 (1개)

Matt J
Matt J 2022년 3월 24일
편집: Matt J 2022년 3월 24일
Use the discretize() command.
to assign bin labels to each of your data points.
  댓글 수: 11
Keaton Looper
Keaton Looper 2022년 3월 25일
With my example I want the data to be distributed into 3 subsets of data. I then want it to count the total amount of ones in the set and if it is great than 1 count that event as a one and then take the total count of events. So my example should give me a count of 3.
Matt J
Matt J 2022년 3월 25일
편집: Matt J 2022년 3월 25일
So my example should give me a count of 3.
No, that would depnd on how the data is split into subsets. Even without randomization, a subset may contain no ones, like in the following, where the subsets are sequential.
Data = [0 0 0 1 0 1 1 0 1 1 1 0];
binLabels=[1 1 1 2 2 2 2 3 3 3 3 3];
numOnes=accumarray(binLabels',Data')
numOnes = 3×1
0 3 3
overallCount = sum(numOnes>=1)
overallCount = 2
Once again, because you haven't specified the details of the processing with enough care and detail, we get a result you don't expect. Perhaps you meant for the subsets to be interleaved. That does give your expected result:
binLabels=[1 2 3 1 2 3 1 2 3 1 2 3];
numOnes=accumarray(binLabels',Data')
numOnes = 3×1
3 1 2
overallCount = sum(numOnes>=1)
overallCount = 3

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

카테고리

Help CenterFile Exchange에서 Curve Fitting Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by