0

次の行を使用して、125 バンドの a スペクトルの導関数を取得しようとしています。

dW=diff(wavelength);
dR=diff(data);
df=dR./dW;

問題は次のステップにあります。元のスペクトルと数値的に、またプロットして視覚的に比較したいのですが、df のサイズは 124 ですが、元の波長は 125 です。質問は、最初または最後のバンドを削除する必要がありますか? ただし、一部のスペクトル解析ソフトウェアの出力はサイズを変更していません。バンドの平均を取ることも機能せず、グラフがクレイジーな動作を示します。

4

1 に答える 1

1

diff 基本的には:

Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]

つまり、入力よりも 1 つ短くする必要があります (何もないところから何かを引くことはできませんよね?)。

もちろん、何をしなければならないかは、何をしたいかによって異なりますが、「意味を変える」アプローチ (サンプリング時間に関して因果関係を維持するようなもの) を最小限に抑える方法は、dWandの前dRに単一の任意の値を追加することです。

ところで、ゼロがある場合、比率df=dR./dWには多くのNaNsがある可能性がありますdW(これは、2 つの連続するデータ値が同じになるとすぐに発生します)。

于 2015-02-06T19:46:16.653 に答える