How to calculate area under the curve for bins

2 ビュー (過去 30 日間)
laura9510
laura9510 2017 年 3 月 14 日
編集済み: Jan 2017 年 3 月 14 日
Apologies for my wording; I am relatively new to MATLAB. My problem is:
I've used
AUC (:,i) = trapz(x, y);
and it obviously gives me the areas under the entire curve. I am trying to use a different 'y' (in that this y1 is divided into bins, and each bin is averaged to one value) to find the area under the curve of each bin. However, using trapz(x,y1) gives me the error LENGTH(X) must equal the length of Y in dim 1.. What other possibilities are there?

回答 (1 件)

Jan
Jan 2017 年 3 月 14 日
[N, edges, bin] = histcounts(y, y1);
Result = splitapply(@mean, x, bin);
The first command finds the bins of y according to the coarser grid y1. Only the bin output is required. The second line calculates the averages over the bins.
  2 件のコメント
laura9510
laura9510 2017 年 3 月 14 日
Thank you for replying, I am so sorry but I meant how to calculate the area under the curve for each bin...
Jan
Jan 2017 年 3 月 14 日
編集済み: Jan 2017 年 3 月 14 日
The area is the mean value multiplied by the width:
Result = splitapply(@mean, x, bin) .* diff(bin);
I cannot test this currently. Perhaps there is a problem with the dimensions.
If this does not match your question, perhaps a small example would be useful.

サインインしてコメントする。

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by