diff関数,複数の差分,行列の列間の差分について
41 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
佳奈子 浜口
le 3 Sep 2021
Réponse apportée : Atsushi Ueno
le 3 Sep 2021
複数の差分
ベクトルを作成し、要素間の 2 階差分を計算します.
2 階差分とはどういう意味でしょうか?
2つ横の要素との差ではないようですので
どう理解すればよいのか,把握しかねております.
X = [0 5 15 30 50 75 105];
Y = diff(X,2)
Y = 1×5
5 5 5 5 5
行列の列間の差分について
下記の説明が記載されておりますが
(X,1,2)の1,2は何を指定しているのでしょうか?
こちらは単純に1つ隣の数,方向性の指定ということで良いのでしょうか?
「列間の 1 次差分を計算します。」
X = [1 3 5;7 11 13;17 19 23];
Y = diff(X,1,2)
Y = 3×2
2 2
4 2
2 4
https://jp.mathworks.com/help/matlab/ref/diff.html?searchHighlight=diff&s_tid=srchtitle#btwmxq8-10
0 commentaires
Réponse acceptée
Hernia Baby
le 3 Sep 2021
■1つ目の質問
2階差分は簡単に言うとお隣さんの差を取る作業を何回やりますかって話です。
以下例で見てみましょう。
X = [0 5 15 30 50 75 105];
Y_1 = diff(X,1)
Xの差をとったY_1にもう一度diff関数で差を取ります。
Y_2 = diff(Y_1,1)
この動作が以下の diff(X,2) に相当します。
Y = diff(X,2)
■2つ目の質問
diff(X, 1, dim)の引数dimは引く方向になります。
これはXがベクトルではなく、行列の場合で使用します。
縦と横、どっちのお隣さんの差を取りますかって話です。
以下、例を見てみましょう。
X = [1 3 5;7 11 13;17 19 23]
これを横方向の差と縦方向の差それぞれ出してみます
上下の差について
Y = diff(X,1,1)
左右の差について
Y = diff(X,1,2)
0 commentaires
Plus de réponses (1)
Atsushi Ueno
le 3 Sep 2021
> 2 階差分とはどういう意味でしょうか?
→2段階(2連続)差分、差分の差分、という意味です。ドキュメントにも「Y = diff(X,n) は、diff(X) 演算子を再帰的に n 回適用することで n 階差分を計算します」と説明があります。
X = [0 5 15 30 50 75 105];
Y = diff(X,2)
Y = diff(diff(X))
>(X,1,2)の1,2は何を指定しているのでしょうか?こちらは単純に1つ隣の数,方向性の指定ということで良いのでしょうか?
→仰る通りで、2番目の引数1は差分の次数、3番目の引数2は次元(方向性)の指定です。
MATLAB関数を説明するドキュメントにおいて、引数の数と順番に着目し、引数の意味を説明する文書に辿り着けます。例えば下図のように辿っていけます。
0 commentaires
Voir également
Catégories
En savoir plus sur ソルバー出力と反復表示 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!