Binning CTD data into 10m intervals and corresponding data in separate columns

Hi everyone, first time posting here. I am trying to bin the following data that I have stored in a array (5026 X 6 double).
The 6 columns are the same length and contain data for: (1)time (2)pressure (3)temperature (4)salinity (5)density (6)frames/row.
I want to bin all the data into 10 meter intervals using pressure while retaining the 6 column structure. The 6th column I need to be binned into the 10m intervals as a sum.
Any suggestions would be greatly appreciated!
Thank you in advance!

 Accepted Answer

I think pairing histc with accumarray will help:
x = rand(100,6);
x(:,1) = 1:100;
x(:,2) = sort(x(:,2))*100; % Some fake data
xbin = 0:10:100;
[n, idx] = histc(x(:,2), xbin);
sz = [max(idx) 1];
a = accumarray(idx, x(:,6), sz); % Sums by default...
b = accumarray(idx, x(:,4), sz, @mean, NaN); % or choose a different function
c = accumarray(idx, x(:,5), sz, @(x) {x}); % or gather everything

More Answers (1)

I'm not sure if I understand your question. Do you need the data that are plotted by the hist function? If so,
[n,xout] = hist(...)
might be the ticket.

1 Comment

Hi Chad, I rephrased the question to better communicate what I am trying to do. Hopefully its more understandable.

Sign in to comment.

Categories

Find more on Oceanography and Hydrology in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!