ArrayQ
詳細
- 完全配列では,特定のレベルにあるすべての要素は同じ長さのリストでなければならないが、異なる要素は異なるリスト表現を使用しても構わない.
- 完全配列は,矩形配列としても知られている.
- 以下は,使用可能な配列の表現である. »
-
{…}またはList[…], {{…},{…},…}等 通常の(ネストしている可能性がある)リスト SparseArray[…] 疎な配列 TabularColumn[…], PermutationMatrix[…], QuantityArray[…], SymmetrizedArray[…]等 構造化配列 {a1,a2,…},ただしArrayQ[ai]はTrue 通常の配列,疎な配列,および/または構造化配列のリスト » - ArrayQ[expr,1|2]は expr がベクトルであるか行列であるかを調べる. »
- 空リスト{}は長さが0のベクトルである. »
- 数値配列で使用するArrayQ[expr,patt,test]の test の一般的な値には以下がある.
-
NumberQ expr が明示的な数の配列かどうかテストする NumericQ expr が数式の配列かどうかテストする Positive expr が正の数の配列かどうかテストする RealValuedNumberQ expr が頭部がInteger,RationalあるいはRealの数の配列かどうかテストする RealValuedNumericQ expr が実数の数式の配列かどうかテストする - よく使われる構造化テストには以下がある.
-
IntegerQ expr が整数配列かどうかテストする PolynomialQ[#,x]& expr が x の多項式かどうかテストする QuantityQ expr が数量の配列かどうかテストする StringQ expr が文字列の配列かどうかテストする
例題
すべて開く すべて閉じる例 (2)
スコープ (11)
ArrayQ[SparseArray[{{1, 3} -> a, {5, 1} -> b}]]ArrayQ[TabularColumn[{1, 2, 3}, "Integer8"]]ArrayQ[SymmetrizedArray[{1, 2, 3} -> 1, {3, 3, 3}, Antisymmetric[All]]]ArrayQ[{1, 2, 3, 4}, 1]ArrayQ[{{1, 2}, {3, 4}}, 1]ArrayQ[{1, 2, 3, 4}, 2]ArrayQ[{{1, 2}, {3, 4}}, 2]ArrayQ[{1, 2, 3, 4}, 1 | 2]ArrayQ[{{1, 2}, {3, 4}}, 1 | 2]mat = {{1, 2, 3}, SparseArray[Automatic, {3}, 0, {1, {{0, 1}, {{3}}}, {a}}], TabularColumn[{4, 5, 6}, "Integer64"]};
ArrayQ[mat]ArrayQ[mat, 2]arr = {mat, SymmetrizedArray[{{1, 2} -> b, {3, 3} -> d}, {3, 3}, Symmetric[{1, 2}]]}ArrayQ[arr, 3]arr//MatrixFormArrayQ[{1, 2, 3, x}, 1, NumericQ]ArrayQ[{{{E, 1}, {Pi, 2}}, {{Sin[1], Cos[2]}, {Sinh[1], Cosh[1]}}}, _, NumericQ]ArrayQ[{{{E, 1}, {Pi, 2}}, {{Sin[1], Cos[2]}, {Sinh[1], Cosh[1]}}}, _, NumberQ]ArrayQ[{1, Pi, Sin[1], Sqrt[2]}, 1, RealValuedNumericQ]ArrayQ[{1, Pi, Sin[1], 3 / 4}, 1, RealValuedNumberQ]小数第2位に丸めたときに整数となる数を含む,奇数の深さを持つ配列ついて調べる:
ArrayQ[{1, 1.005, 1.997}, _ ? OddQ, Abs[# - Round[#]] < 0.005&]ArrayQ[{{"a", "b"}, {"c", "d"}}, 2, StringQ]ArrayQ[{{"a", "b"}, {c, d}}, 2, StringQ]ArrayQ[{1, x, 1 + x, x ^ 2 + 2x + 1}, 1 | 2, PolynomialQ[#, x]&]ArrayQ[{1, x, Sin[x], Exp[x]}, 1 | 2, PolynomialQ[#, x]&]アプリケーション (1)
iptp[a_ ? ArrayQ, x_] := Module[{n, at = a},
n = ArrayDepth[a];
Do[
at = Transpose[at, RotateRight[Range[ArrayDepth[at]]]];
at = Map[InterpolatingPolynomial[#, Subscript[x, i]]&, at, {n - i}],
{i, n}];
at]次は,整数座標を仮定して多項式を補間するテンソル積を構築する:
data = {{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}, {{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}};
poly = iptp[data, x]pos = Position[data, _ ? NumberQ];
poly /. Map[Thread[{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]} -> #]&, pos]% === Extract[data, pos]特性と関係 (5)
ArrayQ[{}, 1]VectorQ[expr]はArrayQ[expr,1]に等しい:
v = {1, 2., E, Pi + I};{VectorQ[v], ArrayQ[v, 1]}VectorQ[expr,test]はArrayQ[expr,1,test]に等しい:
{VectorQ[v, NumericQ], ArrayQ[v, 1, NumericQ]}{VectorQ[v, Im[#] == 0&], ArrayQ[v, 1, Im[#] == 0&]}MatrixQ[expr]はArrayQ[expr,2]に等しい:
m = RandomReal[1, {2, 2}]{ArrayQ[m, 2], MatrixQ[m]}MatrixQ[expr]はArrayQ[expr,2]に等しい:
{ArrayQ[m, 2, MachineNumberQ], MatrixQ[m, MachineNumberQ]}{ArrayQ[m, 2, IntegerQ], MatrixQ[m, IntegerQ]}深さ3の配列 arr について,VectorQ[arr,MatrixQ]とMatrixQ[arr,VectorQ]はTrueを返す:
arr = Array[a, {2, 3, 4}];
{ArrayQ[arr, 3], VectorQ[arr, MatrixQ], MatrixQ[arr, VectorQ]}この命題の逆はFalseである:
narr = {Array[a, {3, 4}], Array[a, {3, 5}]};
{ArrayQ[narr, 4], VectorQ[narr, MatrixQ], MatrixQ[narr, VectorQ]}ArrayQは,事実上,AllowedHeads"ListLike"を使う:
mat = {SparseArray[{1, 2}], QuantityArray[{1, 2}, "Meters"]};
expr = f[f[1, 2], f[3, 4]];{ArrayQ[mat], ArrayQ[expr]}{ArrayDepth[mat, AllowedHeads -> "ListLike"], ArrayDepth[expr, AllowedHeads -> "ListLike"]}{Dimensions[mat, AllowedHeads -> "ListLike"], Dimensions[expr, AllowedHeads -> "ListLike"]}テクニカルノート
-
▪
- パターン適用範囲の制限 ▪
- ネストしたリスト ▪
- テンソル
関連するガイド
-
▪
- テンソル ▪
- 判定式 ▪
- GPU計算 ▪
- リストの要素 ▪
- NVIDIAを使ったGPU計算 ▪
- Appleを使ったGPU計算
履歴
2003 で導入 (5.0) | 2012 で更新 (9.0)
テキスト
Wolfram Research (2003), ArrayQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/ArrayQ.html (2012年に更新).
CMS
Wolfram Language. 2003. "ArrayQ." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2012. https://reference.wolfram.com/language/ref/ArrayQ.html.
APA
Wolfram Language. (2003). ArrayQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ArrayQ.html
BibTeX
@misc{reference.wolfram_2026_arrayq, author="Wolfram Research", title="{ArrayQ}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/ArrayQ.html}", note=[Accessed: 16-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_arrayq, organization={Wolfram Research}, title={ArrayQ}, year={2012}, url={https://reference.wolfram.com/language/ref/ArrayQ.html}, note=[Accessed: 16-August-2026]}