# How to count the given data range and calculate cumulative sum of given data and plot it?

1 view (last 30 days)
sam moor on 1 Mar 2017
Commented: John Chilleri on 2 Mar 2017
I have excel data as attached below. I want to have sf(data.xls) range as 0-0.05,0.05-0.1, 0.1-0.15,0.15-0.2....and so on. Now, 2nd column of data represents number that have corresponding sf (num). I want to start counting the num(data.xls) that falls within sf range (0-0.05, 0.05-0.1,...) using count=1, and do cumulative of sf range and would like to put in array. Finally, I want to plot sf(0,0.05,0.1,0.15...) vs cumulative sum. Let me know your suggestion. I used count function but giving me error. Thank you.

John Chilleri on 1 Mar 2017
Edited: John Chilleri on 1 Mar 2017
Hello,
If I understand your question correctly, then this might help:
sf = (0:.5:2.5)';
cumsum_sf = zeros(length(sf),1);
for i = 1:length(sf)
cumsum_sf(i) = numel(find(data(:,1)<=sf(i)))-sum(cumsum_sf);
end
plot(sf, cumsum_sf)
This is just an idea of how to go about it, you can always set up a loop and count if it's greater than blah and less than blah+.05.
Hope this helps!
sam moor on 1 Mar 2017
This works great. Is there any function in matlab to put sf and cumsum_sf in two column side by side(creating new name) so that i can see how many number pass sf value?
John Chilleri on 2 Mar 2017
Yes, you can do so by placing the columns side by side into a matrix as follows:
sf_and_cumsumsf = [sf cumsum_sf];
Hope this helps!