0

Matlab 関数を使用して、diff連続する 2 つの値の差を取得しています。そして、ここに示すように、このリンクのこのベクトル 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 に答える