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