曲線の陰影部分の面積を探しています。青はしきい値を上回り、下はグレーです。スクリプトでは、レベル値を調整して青とグレーの比率を変更できます。 levelが2(pic 1)に設定されている場合、面積は等しくなければなりません。レベルが1.6(pic 2)に設定されている場合、青色は灰色などよりも大きな面積を持つ必要があります...曲線の下の領域をしきい値以下で見つける方法について考えていますか?trapzとMATLABを使用して、上下の曲線下の陰影付き領域を計算します。
PIC 1:
PIC 2:
マイコード:一般的な意味で
%% 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)
それはすべてあなたの欠落がされているようだ 'A_above = trapz(x_interest(上記)、y_interest(上記))'と同様のため'A_below'。 – Florian
@ user7411032:ありがとうございました。私たちの多くは、あなたの例に従ってください。 :) – aksadv