Dimensions[expr]
式 expr の次元のリストを返す.
Dimensions[expr,n]
式 expr のレベル n までの次元のリストを返す.
Dimensions
Dimensions[expr]
式 expr の次元のリストを返す.
Dimensions[expr,n]
式 expr のレベル n までの次元のリストを返す.
詳細とオプション
- 式 expr は「完全な配列」であることが要求される.すなわち,expr のあるレベルにあるすべての部分が同じ長さである必要がある.(つまり,式 expr の成分が超矩形領域を埋め尽くしているということである.)
- Dimensionsは,SparseArray,NumericArray,QuantityArrayのような特別な配列オブジェクトについては対応する通常のリストの次元を返す.
- 次は使用可能なオプションである.
-
AllowedHeads Automatic 配列の各レベルで何という頭部が使用できるか - 以下は,AllowedHeadsオプションの可能な設定である.
-
Automatic デフォルト設定 Inherited 任意のレベルでHead[expr]のみ使用可 h 任意のレベルで頭部 h のみ使用可 {h1,…} 異なるレベルで h1,…の任意のものが使用可 h1|h2|… 同じレベルあるいは異なるレベルで hiが使用可 All 異なるレベルで任意の頭部が使用可 "ListLike" Listおよび関連する頭部が使用可 Full 任意のレベルで任意の頭部が使用可 - AllowedHeads"ListLike"と設定すると,ArrayQが認識するすべての頭部が使えるようになる.これには,List,SparseArray,および,QuantityArrayやSymmetrizedArrayの構造配列の頭部が含まれる.
- デフォルト設定のAllowedHeads->Automaticのとき,expr の連続するレベルは同じ頭部を持たなければならない. 例外として,通常のリスト,疎な配列,構造配列が挙げられる.これらの構造は同じ頭部を持つと見なされる.
例題
すべて開く すべて閉じるスコープ (5)
Dimensionsは式が「ぎざぎざ」ではない次元だけを数える:
Dimensions[{{a, b, c}, {d, e}, {f}}]Dimensionsは,任意の深さの配列に使うことができる:
Dimensions[{{{{a, b}}}}]Dimensions[{{{{a, b}}}}, 2]DimensionsはSparseArrayオブジェクトに使うことができる:
SparseArray[{{{a, b}}}]Dimensions[%]SymmetrizedArrayオブジェクト:
SymmetrizedArray[{{1, 2} -> a, {2, 3} -> b}, {4, 4}, Symmetric[{1, 2}]]Dimensions[%]NumericArrayオブジェクト:
NumericArray[{{{1}, {2}}, {{3}, {4}}, {{5}, {6}}}, "UnsignedInteger8"]Dimensions[%]Listと別の特別な配列の頭部の混合である行列の次元を求める:
Dimensions[{{1, 2}, SparseArray[{3, 4}], QuantityArray[{5, 6}, "Meters"]}]DimensionsはListだけでなくどのような頭部にも使うことができる:
Dimensions[f[f[x, y], f[a, b], f[s, t]]]オプション (4)
AllowedHeads (4)
頭部がListのネストした式についてだけ考える:
Dimensions[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> List]デフォルトで,任意の頭部を持つ矩形のネストした式は配列であるとみなされる:
Dimensions[f[f[1, 2, 3], f[4, 5, 6]]]Dimensions[{NumericArray[{1, 2, 3}, "Integer8"], NumericArray[{4, 5, 6}, "Integer8"]}, AllowedHeads -> {List, NumericArray}]Dimensions[{{1, 2, 3}, NumericArray[{4, 5, 6}, "Integer8"]}, AllowedHeads -> {List, NumericArray}]Dimensions[{{1, 2, 3}, NumericArray[{4, 5, 6}, "Integer8"]}, AllowedHeads -> List | NumericArray]Listおよびその他の一般的な配列表現が使える:
Dimensions[{SparseArray[{1, 2, 3}], SymmetrizedArray[{4, 5, 6}]}, AllowedHeads -> "ListLike"]頭部Listだけしか使えない:
Dimensions[{SparseArray[{1, 2, 3}], SymmetrizedArray[{4, 5, 6}]}, AllowedHeads -> List]Dimensions[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> "ListLike"]Dimensions[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> List]Dimensions[f[g[1, 2, 3], g[4, 5, 6]], AllowedHeads -> All]Dimensions[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> All]Dimensions[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> Full]アプリケーション (2)
MatrixQのリストの行列のみを受容するのバージョンを作成する:
matrixQ[m_] := Length[Dimensions[m, AllowedHeads -> List]] === 2listMat = {{a, b}, {b, c}};
symmetrizedMat = SymmetrizedArray[listMat];
vector = {a, b};
scalar = Sin[x];関数matrixQは,頭部がListの行列であるlistMatに対してのみTrueを返す:
matrixQ /@ {listMat, symmetrizedMat, vector, scalar}MatrixQは既知の任意の配列タイプである行列に対してTrueを返す:
MatrixQ /@ {listMat, symmetrizedMat, vector, scalar}セルオートマトンの10ステップの進化によって埋められた範囲の次元を求める:
Table[Dimensions[CellularAutomaton[n, {{1}, 0}, 10]], {n, 20}]特性と関係 (7)
Dimensionsは常にリストを返す:
Dimensions[1]Dimensions[{1, 2}]Dimensions[{{1, 2}}]オプションAllowedHeadsのデフォルト値では,リスト,疎な配列,構造配列を混在させることができる:
listArray = {{1, 2}, SparseArray[{3, 4}], QuantityArray[{5, 6}, "Meters"]};
Dimensions[listArray]この場合は,連続するレベルの任意の単一の頭部も使うことができる:
fArray = f[f[1, 2], f[3, 4], f[5, 6]];
Dimensions[fArray]AllowedHeads"ListLike"を使って任意のリスト様の配列は使えるがその他の頭部は使えないようにする:
Dimensions[listArray, AllowedHeads -> "ListLike"]Dimensions[fArray, AllowedHeads -> "ListLike"]VectorQ,MatrixQ,ArrayQは,事実上,AllowedHeads"ListLike"を使う:
sparse = SparseArray[{1, 2}];quant = QuantityArray[{1, 2}, "Meters"];{VectorQ[sparse], Dimensions[sparse, AllowedHeads -> "ListLike"]}{ArrayQ[quant], Dimensions[quant, AllowedHeads -> "ListLike"]}{MatrixQ[{sparse, quant}], Dimensions[{sparse, quant}, AllowedHeads -> "ListLike"]}AllowedHeads"ListLike"の設定にはByteArrayとNumericArrayは含まれない:
list = {ByteArray[{1, 2, 3}], NumericArray[{1., 2., 3.}, "Real64"]};Dimensions[list, AllowedHeads -> "ListLike"]"ListLike"を追加的な頭部と組み合せて組合せられるようにする:
Dimensions[list, AllowedHeads -> "ListLike" | ByteArray | NumericArray]Length[Dimensions[expr]]はArrayDepth[expr]に等しい:
Length[Dimensions[{{a, b}, {c, d}}]] == ArrayDepth[{{a, b}, {c, d}}]Dimensions[Array[h,dims]]は dims を与える:
Dimensions[Array[a, {2, 1, 4, 3}]]Dimensions[expr]が非空であれば,その最初の要素はLength[expr]と同じである:
mat = {{1, 2, 3}, {4, 5, 6}}First[Dimensions[mat]] == Length[mat]考えられる問題 (1)
数式はFullFormの構造に基づいて次元を報告する:
FullForm[Sqrt[2]]Dimensions[Sqrt[2]]すべての数式をスカラーとして扱いたければAllowedHeadsの設定にListまたは"ListLike"を使うとよい:
Dimensions[Sqrt[2], AllowedHeads -> List]関連項目
テクニカルノート
-
▪
- ベクトルと行列 ▪
- スカラー,ベクトルおよび行列 ▪
- ネストしたリスト ▪
- テンソル
関連するガイド
-
▪
- 行列の部分 ▪
- テンソル ▪
- 行列と線形代数 ▪
- データの配列の操作 ▪
- リストの要素 ▪
- 規則的な配列と座標の配列 ▪
- GPU計算 ▪
- NVIDIAを使ったGPU計算 ▪
- Appleを使ったGPU計算
履歴
1988 で導入 (1.0) | 2003 で更新 (5.0) ▪ 2012 (9.0) ▪ 2019 (12.0) ▪ 2020 (12.1)
テキスト
Wolfram Research (1988), Dimensions, Wolfram言語関数, https://reference.wolfram.com/language/ref/Dimensions.html (2020年に更新).
CMS
Wolfram Language. 1988. "Dimensions." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/Dimensions.html.
APA
Wolfram Language. (1988). Dimensions. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Dimensions.html
BibTeX
@misc{reference.wolfram_2026_dimensions, author="Wolfram Research", title="{Dimensions}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/Dimensions.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_dimensions, organization={Wolfram Research}, title={Dimensions}, year={2020}, url={https://reference.wolfram.com/language/ref/Dimensions.html}, note=[Accessed: 13-September-2026]}