ArrayDepth
ArrayDepth[expr]
给出 expr 为全数组的深度,其中特定层的所有部分具有相同长度.
更多信息和选项
- ArrayDepth[list] 等价于 Length[Dimensions[list]].
- 对于特殊的数组对象(如 SparseArray、NumericArray 和 QuantityArray),ArrayDepth 生成相应普通列表的深度.
- 可以给出以下选项:
-
AllowedHeads Automatic 在数组的每一层上允许哪些标头 - AllowedHeads 选项的设置包括:
-
Automatic 默认设置 Inherited 仅允许 Head[expr] 在任何层 h 仅允许 h 在任何层 {h1,…} 允许任何一个 h1,… 在不同层 h1h2… 允许 hi 在相同层或不同层 "ListLike" 允许 List 和相关的标头 All 允许任何标头在不同层 Full 允许任何标头在任何层 - 设置 AllowedHeads"ListLike" 允许所有被 ArrayQ 识别的标头,包括 List、SparseArray 以及结构化的数组标头,如 QuantityArray 和 SymmetrizedArray.
- 在默认设置 AllowedHeads->Automatic 下,expr 中的连续层必须具有相同的标头,除了普通列表、稀疏数组和结构化数组被视为相同的标头之外.
范例
打开所有单元关闭所有单元范围 (4)
ArrayDepth 仅对不“参差不齐”的表达式计算维度:
ArrayDepth 适用于特殊的数组类型,包括 SparseArray 对象:
SymmetrizedArray 对象:
NumericArray 对象:
求由 List 和其他特殊数组标头混合而成的矩阵的深度:
ArrayDepth 适用于任何标头,而不仅限于 List:
选项 (4)
属性和关系 (8)
Length[Dimensions[expr]] 等于 ArrayDepth[expr]:
ArrayDepth 总是返回一个非负整数:
选项 AllowedHeads 的默认值允许列表、稀疏和结构化数组的混合:
AllowedHeads 的下列设置模仿关于列表式数组的默认行为:
VectorQ、MatrixQ 和 ArrayQ 有效利用 AllowedHeads"ListLike":
设置 AllowedHeads"ListLike" 不包括 ByteArray 和 NumericArray:
ArrayDepth[Array[h,dims]] 给出 Length[dims]:
ArrayDepth 仅考虑表达式完全为矩形的层:
Depth 考虑表达式的最深部分:
对于完全矩形表达式,ArrayDepth 给出的结果比 Depth 小1:
可能存在的问题 (1)
数值表达式根据其 FullForm 的结构报告数组深度:
要将所有数值表达式都视为标量,需要对 AllowedHeads 使用设置 List 或 "ListLike":
文本
Wolfram Research (2003),ArrayDepth,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ArrayDepth.html (更新于 2020 年).
CMS
Wolfram 语言. 2003. "ArrayDepth." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/ArrayDepth.html.
APA
Wolfram 语言. (2003). ArrayDepth. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ArrayDepth.html 年