7

data.txt次のような2列とN行のファイルがあります。

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
[...]

ファイル内のすべての値は、1 つの点座標 (x,y) に対応しています。プロットすると、この点は曲線を生成します。この曲線の曲線下面積 (AUC) を計算したいと思います。

だから私はデータをロードします:

data = load("data.txt");
X = data(:,1);
Y = data(:,2);

したがって、Xポイントのすべての x 座標とYすべての y 座標が含まれます。

曲線下面積 (AUC) を計算するにはどうすればよいですか?

4

6 に答える 6

4

最も簡単な方法は、台形公式関数trapzです。

データが滑らかであることがわかっている場合は、シンプソンの法則を使用してみることができますが、シンプソンの法則を介して数値データを統合するためのMATLABには何も組み込まれていません。(&xが着実に増加しないx / yデータに使用する方法がわかりません)

于 2011-12-28T19:49:59.193 に答える
4

AUC = trapz(X,Y) をプログラムに追加するだけで、曲線の下の面積が得られます

于 2012-03-01T18:46:55.903 に答える
1

あなたはそのようなことをすることができます:

AUC = sum((Y(1:end-1)+Y(2:end))/2.*...
  (X(2:end)-X(1:end-1)));
于 2012-01-02T13:27:15.200 に答える
0

trapz自分でコーディングを行う準備ができている人には、いくつかのオプションがあります。このリンクは、シンプソンのルールの実装を示しており、python コードが含まれています。シンプソンズ ルールのファイル交換もあります。

于 2014-06-19T05:56:17.280 に答える