我有包含两列和 N 行的文件 data.txt
,如下所示:
0.009943796 0.4667975
0.009795735 0.46777886
0.009623984 0.46897832
0.009564759 0.46941447
0.009546991 0.4703958
0.009428543 0.47224948
0.009375241 0.47475737
0.009298249 0.4767201
[...]
文件中的每对值对应一个点坐标 (x,y)。 如果绘制,这些点会生成一条曲线。我想计算这条曲线的曲线下面积 (AUC)。
所以我加载数据:
data = load("data.txt");
X = data(:,1);
Y = data(:,2);
因此,X
包含点的所有 x 坐标,Y
包含所有 y 坐标。
如何计算曲线下面积 (AUC)?
最佳答案
最简单的方法是梯形规则函数trapz
.
如果已知您的数据是平滑的,您可以尝试使用 Simpson 规则,但 MATLAB 没有任何内置功能可以通过 Simpson 规则对数值数据进行积分。 (而且我不确定如何将它用于 x 不会稳定增加的 x/y 数据)
关于Matlab,如何计算AUC(曲线下面积)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660500/