# Plot based on bins with binary data

1 view (last 30 days)

Show older comments

MiauMiau
on 24 Nov 2016

Commented: Alexandra Harkai
on 25 Nov 2016

Hello

I have two arrays, say array stimDuration - which contains the duration a subject has seen a stimulation - and array answers, which is binary (containing 1 or 0's) to indicate if subject could correctly identify the stimulus or not. The data could look something like that:

stimDuration = [1, 2, 3, 2, 4, 6, 8, 1, 11, 12, 9] answers = [0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0]

I want now to have n bins for the stimDuration (for instance 2 bins, one going from 1 to 6, the other from 7 to 12) as the x axis. The y axis would be the percentage of the correct answers for each bin. For instance for the bin from 1 to 6, we have a total of 7 answers, 5 of which are correct (hence the y value would be 5/7). Is there a straightforward way of doing that? Thanks

### Accepted Answer

Alexandra Harkai
on 24 Nov 2016

This would do the trick if you bin them from 0 to max(stimDuration):

n = 2; % number of bins

bar(splitapply(@(x) sum(x)/size(x,2), answers, ceil(stimDuration/(max(stimDuration)/n))));

If you have R2016b you could do:

bar(splitapply(@(x) sum(x)/size(x,2), answers, discretize(stimDuration, n)));

##### 10 Comments

Alexandra Harkai
on 25 Nov 2016

### More Answers (0)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!