如何使用 MATLAB 计算曲线下的部分面积?
How do I calculate the partial area under a curve with MATLAB?
我是 matlab 的新手,我试图找到一部分图而不是整个图的曲线下面积 (AUC)。我有兴趣从 2 个区域计算单独的 AUC;一个从 -350 到 -100,另一个从 -100 到 +150 出现在 x 轴上。如何计算图表的这些部分(不是整个 x 轴)的 AUC?没有足够的声誉来提供这个数字。如果社区有人可以提供matlab代码。
数据集中的每对值都对应于 x,y 坐标。如果绘制,这些点会生成单独的 (x,y) 曲线,其中 x 是从 -750 到 +750 的固定列。
y 数据有 N 行,类似于
x = [-750:25:750];
y1 = [1.52,0.47,0.59,0.62,1.88,...];
y2 = [1.5,0.79,0.74,1.46,0.6,...];
y3 = [1.6,0.11,0.79,0.77,1.33,...];
yn = [0.061,0.0609,0.05948,0.0624,0.067,0.073347639,...];
...未提供完整数据集。
我想计算 x 轴上 -350 到 -100 区域和 -100 到 +150 区域的 AUC,对于 (x,y) 的每个组合,比如 (x,y1),(x ,y2)..
尝试这样的事情(使用 trapz
):
startingIndex = find(x==-350);
endingIndex = find(x==-100);
desiredX = x(startingIndex:endingIndex);
desiredY = y1(startingIndex:endingIndex);
area = trapz(desiredX,desiredY);
发现于 http://www.mathworks.com/matlabcentral/newsreader/view_thread/278102
基本上它会在 x
数组中找到端点的索引,然后根据相应的截断 y
向量计算曲线下的面积。
我是 matlab 的新手,我试图找到一部分图而不是整个图的曲线下面积 (AUC)。我有兴趣从 2 个区域计算单独的 AUC;一个从 -350 到 -100,另一个从 -100 到 +150 出现在 x 轴上。如何计算图表的这些部分(不是整个 x 轴)的 AUC?没有足够的声誉来提供这个数字。如果社区有人可以提供matlab代码。
数据集中的每对值都对应于 x,y 坐标。如果绘制,这些点会生成单独的 (x,y) 曲线,其中 x 是从 -750 到 +750 的固定列。
y 数据有 N 行,类似于
x = [-750:25:750];
y1 = [1.52,0.47,0.59,0.62,1.88,...];
y2 = [1.5,0.79,0.74,1.46,0.6,...];
y3 = [1.6,0.11,0.79,0.77,1.33,...];
yn = [0.061,0.0609,0.05948,0.0624,0.067,0.073347639,...];
...未提供完整数据集。
我想计算 x 轴上 -350 到 -100 区域和 -100 到 +150 区域的 AUC,对于 (x,y) 的每个组合,比如 (x,y1),(x ,y2)..
尝试这样的事情(使用 trapz
):
startingIndex = find(x==-350);
endingIndex = find(x==-100);
desiredX = x(startingIndex:endingIndex);
desiredY = y1(startingIndex:endingIndex);
area = trapz(desiredX,desiredY);
发现于 http://www.mathworks.com/matlabcentral/newsreader/view_thread/278102
基本上它会在 x
数组中找到端点的索引,然后根据相应的截断 y
向量计算曲线下的面积。