Effacer les filtres
Effacer les filtres

Bin X data, sum corresponding Y data and then plot.

4 vues (au cours des 30 derniers jours)
aneps
aneps le 3 Août 2015
Modifié(e) : aneps le 4 Août 2015
I have X data ranging from 0 to 999 and corresponding Y data. I want to bin the X data from 0 to 2000 with a bin size of 10. Then accumulate corresponding Y data in the respective bins. For example, X data from 0.1 to 10 should be taken as 10; 10.01 till 20 should be taken as 20 etc. The Y data in the same interval should be summed up and put in the corresponding bins. At the end, I want to plot X,Y . Please help me to code this... thank you.

Réponse acceptée

Walter Roberson
Walter Roberson le 4 Août 2015
binnum = ceil(X/10);
binsum = accumarray(binnum(:), Y(:));
plot((1:size(binsum,1))*10, binsum);

Plus de réponses (1)

Jan
Jan le 3 Août 2015
edges = [0.1, 10, 20]; % However you define this...
[N, edges, bin] = histcounts(X, edges);
Result = accumarray(bin, Y);
I cannot check this currently. Perhaps you have to transpose an input of accumarray.
  1 commentaire
aneps
aneps le 4 Août 2015
Modifié(e) : aneps le 4 Août 2015
I tried with this code but it is giving error:
Error:
[N, edges, bin] = histcounts(X, edges);
My code:
A = load('/Users/Myfolder/Documents/MATLAB/Data.txt');
X = A(:,1);
Y = A(:,2);
edges = [0.1, 10, 20];
[N, edges, bin] = histcounts(X, edges);
Result = accumarray(bin, Y);
Also, could you please explain me how the 'edges' is defined. It should be between max value and min value of X?

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by