0

我正在使用diffMatlab 函数来获取两个连续值之间的差异。并且如此处所示在此链接中的此向量 nz 中所示 nz 列 261 和 260 之间的差异为 -1342 但是当我使用此脚本时,此列之间差异的结果不会出现在结果 dnz 中。那么,如果有人可以建议为什么这不起作用?这是我的尝试:

load('nz.mat');
dnz = diff(nz);
4

1 回答 1

4

如果您键入class(nz),您会看到您的数据是unit16. 并且 MATLAB 在处理整数值时会使结果饱和,即由于0 - 1342小于零( 中的最小值uint16)它返回零:

>> dnz=diff(nz);
>> dnz(260)

ans =

      0

-1342如果您将其转换为可以像int16您一样容纳的课程

>> dnz = diff(int16(nz));
>> dnz(260)

ans =

  -1342
于 2013-08-15T14:36:50.457 回答