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!

 Réponse acceptée

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

Plus de réponses (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 commentaire

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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Oceanography and Hydrology dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by