当前位置: 首页 > 知识库问答 >
问题:

用trapz和MATLAB计算阈值上下曲线下的阴影面积

茅星雨
2023-03-14

我的代码:

%% Example 
x = 0:.01:4*pi;% x data
y = sin(x)+2;% y data
level = 2;% level
plot(x, y)
hold on
x_interest = 0:.01:x(length(y));
y_interest = sin(x_interest)+2;
xlim ([0 x(length(y))])

% Shaded area above level
area(x_interest, max(y_interest, level), level, ...
    'EdgeColor', 'none', 'FaceColor', [.6 .7 .8], ...
    'ShowBaseLine', 'off');

% Shaded area below level
area(x_interest, min(y_interest, level), level, ...
    'EdgeColor', 'none', 'FaceColor', [.5 .5 .5], ...
    'ShowBaseLine', 'off');

%%== This did not work ==%%
above = find(y_interest >= level);
below = find(y_interest <= level);
A_above = trapz(above)
A_below = trapz(below)

 %% Integrate
 plot(x, sin(x)+2)
 fun = @(x) sin(x)+2; 
 integral(fun, 0, x(length(y)))

 A = trapz(x,y)

共有1个答案

宰父熙云
2023-03-14

在一般意义上,函数trapz(x,y)(其中xy是相同长度的向量)估计曲线下的面积f(x)=y。这个区域被函数f(x)和x轴夹在中间。

对于a_support,需要估计曲线之间的面积F1(x_interest)=max(y_interest,level)F2(x_interest)=level。这与曲线F1(x_interest)下移级别下的区域相同。因此可以通过以下方法进行评估:

A_above =  trapz(x_interest, max(y_interest, level)-level)

类似地,对于a_bellow:

A_below = -trapz(x_interest, min(y_interest, level)-level)
 类似资料:
  • 问题内容: 我想使用matplotlib来说明两个区域之间的定积分:x_0和x_1。 给定以下图,如何在matplotlib中的曲线下的阴影区域从x = -1到x = 1着色 问题答案: 结帐。这是有关填充受约束区域的示例。

  • 在scikit learn中,您可以使用 我只对曲线中假阳性率小于0.1的部分感兴趣。 给定这样一个阈值假阳性率,如何仅计算阈值以上曲线部分的AUC? 以下是一个具有多条ROC曲线的示例,用于说明: scikit学习文档展示了如何使用roc_曲线 有没有一种简单的方法可以从这个到部分AUC? 似乎唯一的问题是如何计算fpr=0.1时的tpr值,因为roc_曲线不一定给出该值。

  • 我想确定红线和蓝线之间的区域,但只能确定y值4.559。我怎样才能做到这一点?

  • 在具有方向光源的作用下,物体会形成阴影投影效果。 平行光投影计算代码 Three.js物体投影模拟计算主要设置三部分,一个是设置产生投影的模型对象,一个是设置接收投影效果的模型,最后一个是光源对象本身的设置,光源如何产生投影。 var geometry = new THREE.BoxGeometry(40, 100, 40); var material = new THREE.MeshLamber

  • Desktop Unity computes shadow map sizes this way: Unity计算阴影贴图大小是这样的: First light's "coverage box" on the screen is computed. This is what rectangle on the screen the light possibly illuminates: 首先计算屏幕