ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

diff

構文

  • Y = diff(X)
  • Y = diff(X,n)
  • Y = diff(X,n,dim)

説明

Y = diff(X) は、サイズが 1 ではない最初の配列の次元に対して X の隣接する要素間の差分を計算します。

  • X が、長さ m のベクトルの場合、Y = diff(X) は長さが m-1 のベクトルを返します。Y の要素は、X の隣接する要素間の差分です。

    Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]

  • X が空ではなく p 行 m 列の非ベクトル行列である場合、Y = diff(X) はサイズが (p-1) 行 m 列の行列を返します。この行列の要素は X の行間の差分になります。

    Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
  • X が 0 行 0 列の空の行列である場合、Y = diff(X) は 0 行 0 列の空の行列を返します。

Y = diff(X,n) は、diff(X) 演算子を再帰的に n 回適用することで n 階差分を計算します。実際、これは diff(X,2)diff(diff(X)) と同じであることを示します。

Y = diff(X,n,dim) は、dim で指定された次元に対して計算された n 階差分です。dim 入力は、正の整数のスカラーです。

すべて折りたたむ

ベクトルを作成し、要素間の差分を計算します。

X = [1 1 2 3 5 8 13 21];
Y = diff(X)
Y =

     0     1     1     2     3     5     8

Y の要素の数が X よりも 1 つ少なくなることに注意してください。

3 行 3 列の行列を作成し、行間の 1 階差分を計算します。

X = [1 1 1; 5 5 5; 25 25 25];
Y = diff(X)
Y =

     4     4     4
    20    20    20

Y は 2 行 3 列の行列です。

ベクトルを作成し、要素間の 2 階差分を計算します。

X = [0 5 15 30 50 75 105];
Y = diff(X,2)
Y =

     5     5     5     5     5

3 行 3 列の行列を作成し、列間の 1 次差分を計算します。

X = [1 3 5;7 11 13;17 19 23];
Y = diff(X,1,2)
Y =

     2     2
     4     2
     2     4

Y は 3 行 2 列の行列です。

関数 diff で構文 Y = diff(f)/h を使用して偏導関数を近似します。f は、領域 X で評価される関数値のベクトルで、h は適切なステップ サイズです。

たとえば、x に対する sin(x) の 1 次導関数は cos(x) で、x に対する 2 次導関数は -sin(x) となります。diff を使用して、これらの導関数を近似できます。

h = 0.001;       % step size
X = -pi:h:pi;    % domain
f = sin(X);      % range
Y = diff(f)/h;   % first derivative
Z = diff(Y)/h;   % second derivative
plot(X(:,1:length(Y)),Y,'r',X,f,'b', X(:,1:length(Z)),Z,'k')

このプロットでは、青いラインは元の関数 sin を表します。赤のラインは計算された 1 次導関数 cos を表し、黒のラインは計算された 2 次導関数 -sin を表します。

等間隔の datetime 値のシーケンスを作成し、それらの時間差を求めます。

t1 = datetime('now');
t2 = t1 + minutes(5);
t = t1:minutes(1.5):t2
t = 

Columns 1 through 3

   29-Jan-2016 10:21:21   29-Jan-2016 10:22:51   29-Jan-2016 10:24:21

Column 4

   29-Jan-2016 10:25:51

dt = diff(t)
dt = 

   00:01:30   00:01:30   00:01:30

diffduration 配列を返します。

入力引数

すべて折りたたむ

入力配列。ベクトル、行列または多次元配列として指定します。X には数値配列、論理配列、datetime 配列または duration 配列を使用できます。

複素数のサポート: はい

微分の次数。正の整数スカラーまたは [] として指定します。n の既定値は 1 です。

dim を単一 (size(X,dim) = 1) 次元に縮小することができる十分な大きさの n を指定できます。この場合、diff はサイズが 1 ではない次の配列の次元に対して計算を続行します。このプロセスは 0 行 0 列の空の行列が返されるまで続きます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

動作する対象の次元。正の整数のスカラーとして指定します。値を指定しない場合、既定値は、サイズが 1 ではない最初の配列の次元です。

2 次元の p 行 m 列の入力配列 A について考えます。

  • diff(A,1,1) は、A の列の連続する要素に対して有効で、(p-1) 行 m 列の差分行列を返します。

  • diff(A,1,2) は、A の行の連続する要素に対して有効で、p 行 (m-1) 列の差分行列を返します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

差分配列。スカラー、ベクトル、行列または多次元配列として返されます。X が空ではない配列の場合、diff により動作する X の次元は、出力で n だけサイズが縮小します。

参考

| | |

R2006a より前に導入

この情報は役に立ちましたか?