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)]

这意味着它必须比你的输入短一个(你不能从零中减去一些东西,对吧?)。

您必须做什么当然取决于您想要做什么,但最不“改变含义”的方法(保持采样时间的因果关系)是在您的dW和前面加上dR一个任意值。

顺便说一句,如果为零,您的比率df=dR./dW可能会有很多NaNs dW(只要两个连续的数据值相同,就会发生这种情况)。

于 2015-02-06T19:46:16.653 回答