コマンド
a = magic(3);
b = pascal(3);
c = cat(4,a,b);
3行3行1行2列の配列を生成します。
3-3-1-2
寸法がの場合の結果はなぜ4
ですか?
コマンド
a = magic(3);
b = pascal(3);
c = cat(4,a,b);
3行3行1行2列の配列を生成します。
3-3-1-2
寸法がの場合の結果はなぜ4
ですか?
a
とは両方とも、b
サイズが3行3列の2次元行列です。それらを4次元に沿って連結すると、間にある3次元はシングルトン(つまり1)になります。だからc(:,:,1,1)
あなたの行列になり、あなたの行列a
にc(:,:,1,2)
なりますb
。
多次元配列の理解に役立つ可能性のあるいくつかのドキュメントへのリンクは次のとおりです。
編集:
おそらく、私たち人間がより簡単に関係することができるという観点から、これらの4つの次元を考えるのに役立つでしょう...
例の4つの次元が、空間内の3つの次元(、、、および)と4番目の次元の時間を表すと仮定x
しy
ますz
。一度に空間内のいくつかのポイントで空気中の温度をサンプリングしていると想像してください。x
3つの位置、3つのy
位置、および1つの位置のすべての組み合わせで構成されるグリッドで気温をサンプリングできますz
。それは私に3×3×1のグリッドを与えます。通常、データは3行3列のグリッドにあり、末尾のシングルトンディメンションは無視されます。
ただし、後でこれらの時点で別のサンプルセットを取得するとします。したがって、2番目の時点で別の3 x 3x1グリッドを取得します。これらのデータセットを時間ディメンションに沿って連結すると、3 x 3 x 1x2の行列が得られます。z
1つの値でのみサンプリングしたため、3番目の次元はシングルトンです。
したがって、この例c=cat(4,a,b)
では、4次元に沿って2つの行列を連結しています。2つの行列は3行3列で、3次元は暗黙的にシングルトンであると想定されます。ただし、4次元に沿って連結する場合、サイズを1としてリストすることにより、3次元がまだ存在することを明示的に示す必要があります。