ArrayFlatten[{{m11,m12,…},{m21,m22,…},…}]
行列 mi jの行列から単一の平坦化された行列を作成する.
ArrayFlatten[a,r]
配列 a 中の r 組のペアになったレベルを平坦化する.
ArrayFlatten
ArrayFlatten[{{m11,m12,…},{m21,m22,…},…}]
行列 mi jの行列から単一の平坦化された行列を作成する.
ArrayFlatten[a,r]
配列 a 中の r 組のペアになったレベルを平坦化する.
詳細
- ArrayFlattenが平坦化するブロックは整合性がなければならない.
- ArrayFlattenは,ブロックの配列からブロック行列を形成するのに使うことができる.
- 行列の行列の場合,ArrayFlatten[a]は要素の並び順がMatrixForm[a]と同じ行列を返す.
- ArrayFlatten[a]は一般にFlatten[a,{{1,3},{2,4}}]と等しい. »
- ArrayFlatten[a,r]は一般にFlatten[a,{{1,r+1},{2,r+2},…,{r,2r}}]と等しい.
- 階数2r のテンソルの場合,ArrayFlatten[a,r]は階数 r のテンソルを返す.
- ArrayFlatten[{{m11,m12,…},{m21,m22,…},…}]では,同じ行内のすべての行列 mi jが同一の最初の次元でなければならず,同じ列内の行列 mi jは同一の2番目の次元でなければならない.
- 一般に,ArrayFlatten[a,r]において,a[[i1,i2,…,
]]のすべての k
番目の次元は ik のそれぞれの可能な値について等しくなければならない. - 配列の深さが r より小さいレベル r の要素はスカラーとして扱われ,適切な次元の階数 r の配列を埋めるのに繰り返される.
- ArrayFlattenはSparseArrayオブジェクトに使うことができる. »
例題
すべて開く すべて閉じる例 (2)
スコープ (4)
ArrayFlatten[Array[a, {1, 2, 3, 4}]]//DimensionsArrayFlatten[Array[a, {1, 2, 3, 4, 5, 6}]]//DimensionsArrayFlatten[Array[a, {1, 2, 3, 4, 5, 6}], 3]//DimensionsArrayFlattenはSparseArrayオブジェクトに使うことができる:
s = SparseArray[{i_, i_, j_, k_} -> i / (j + k - 1), {3, 3, 2, 2}]m = ArrayFlatten[s]MatrixForm[m]SparseArrayオブジェクトのブロック行列から疎行列を作る:
s1 = SparseArray[{i_, i_} -> i, {2, 2}];
s2 = SparseArray[{i_, j_} /; Abs[i - j] == 1 -> i - j, {3, 3}]m = ArrayFlatten[{{0, s1}, {-s2, 0}}]MatrixForm[m]アプリケーション (5)
ArrayPlot[ArrayFlatten[Table[{{2, 0, 0, 1}, {1, 0, 2, 1}, {0, 1, 2, 2}}, {10}, {10}]]]NestList[ArrayFlatten[# /. 1 -> {{1, 0}, {1, 1}}]&, {{1}}, 3]ArrayPlot[#, ImageSize -> Tiny]& /@ %NestList[ArrayFlatten[# /. 1 -> {{{1, 0}, {0, 0}}, {{1, 0}, {1, 1}}}, 3]&, {{{1}}}, 3];Graphics3D[Cuboid /@ Position[#, 1], ImageSize -> Tiny]& /@ %involutoryMatrix[A_ ? MatrixQ, B_] := Block[{n, k}, {n, k} = Dimensions[A];ArrayFlatten[| | |
| ----------------------- | ----------------------- |
| IdentityMatrix[k] - B.A | B |
| 2 A - A.B.A | A.B - IdentityMatrix[n] |] /; Dimensions[B] == {k, n}]L = involutoryMatrix[RandomInteger[{-5, 5}, {3, 2}], RandomInteger[{-5, 5}, {2, 3}]]L.L//MatrixForm n 個の空間点を持った波動方程式
のブロック行列の半離散化を行う:
n = 100;h = 1. / n;dm = SparseArray[{{i_, i_} -> -2 / h ^ 2, {i_, j_} /; Abs[i - j] == 1 -> 1 / h ^ 2, {n, 1} -> 1 / h ^ 2, {1, n} -> 1 / h ^ 2}, {n, n}, 0.]im = IdentityMatrix[n, SparseArray, WorkingPrecision -> MachinePrecision]a = ArrayFlatten[{{0., im}, {dm, 0.}}]im2 = IdentityMatrix[2 n, SparseArray, WorkingPrecision -> MachinePrecision]ic = Join[Table[Exp[-100(i h - .5) ^ 2], {i, n}], ConstantArray[0., n]];時間ステップ k の後退オイラー法を使って
における解を近似する:
k = h / 100;lsf = LinearSolve[im2 - k a];solt = ic;Do[solt = lsf[solt], {Round[0.25 / k]}];ListPlot[{Take[solt, n], Take[solt, -n]}, DataRange -> {0, 1}, PlotRange -> All]特性と関係 (3)
MatrixFormは行列の行列をArrayFlattenと同じ順序で表示する:
m = {{1, 2}, {3, 4}}; b = {{m, m, m}, {m, m, m}};MatrixForm[b]MatrixForm[ArrayFlatten[b]]ArrayFlattenはFlattenの特殊ケースである:
m = {{1, 2}, {3, 4}}; b = {{m, 2m}, {3m, 4m}};MatrixForm[b]Flatten[b, {{1, 3}, {2, 4}}] == ArrayFlatten[b]KroneckerProductはOuter積のArrayFlattenとして定義される:
m1 = Array[a, {2, 2}]; m2 = Array[b, {2, 2}];KroneckerProduct[m1, m2] == ArrayFlatten[Outer[Times, m1, m2]]テクニカルノート
-
▪
- 多次元リストの並べ替え ▪
- リストの結合 ▪
- 構造操作 ▪
- ベクトルと行列 ▪
- テンソル
関連するガイド
-
▪
- リストの並べ替えと再構築 ▪
- 行列の構成 ▪
- 構造化行列とたたみ込みカーネル ▪
- 計算系 ▪
- 画像のフィルタリングと近傍処理 ▪
- データの配列の操作 ▪
- 基本的な画像の操作 ▪
- 反復写像とフラクタル
テキスト
Wolfram Research (2007), ArrayFlatten, Wolfram言語関数, https://reference.wolfram.com/language/ref/ArrayFlatten.html.
CMS
Wolfram Language. 2007. "ArrayFlatten." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ArrayFlatten.html.
APA
Wolfram Language. (2007). ArrayFlatten. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ArrayFlatten.html
BibTeX
@misc{reference.wolfram_2026_arrayflatten, author="Wolfram Research", title="{ArrayFlatten}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/ArrayFlatten.html}", note=[Accessed: 14-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_arrayflatten, organization={Wolfram Research}, title={ArrayFlatten}, year={2007}, url={https://reference.wolfram.com/language/ref/ArrayFlatten.html}, note=[Accessed: 14-August-2026]}