在Matlab中使用diff函数时结果不正确

时间:2013-08-15 14:28:43

标签: matlab

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

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

1 个答案:

答案 0 :(得分: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