Threaded
a+Threaded[b]
将数组 b 的元素与数组 a 的最低层的元素相加.
a+Threaded[b,alev]
与 a 的 alev 层上的元素相加.
a+Threaded[b,blevalev]
将 a 的 alev 层上的元素与 b 的 blev 上的元素相加.
f[a,Threaded[b,…]]
将函数 f 的元素与属性 Listable 组合在一起.
更多信息
- 在 a+Threaded[b] 中,a 的最低层的维度必须与 b 的维度匹配.
- 对于具有 Listable 属性的函数 f,f[a,b] 实际上从最上层开始向下将 f 应用于数组 a 和 b 的元素. 使用 Threaded 可以控制元素在 a 中组合的方式.
- 如果 a 的维度为 {adim1,…,adimj},b 的维度为 {bdim1,…,bdimi},则层与维度的对应关系如下所示:
- 在 f[a,Threaded[b]] 中,a 和 b 应为矩形数组,且 ArrayDepth[a]≥ArrayDepth[b].
- Threaded[b] 等价于 Threaded[b,1-ArrayDepth[b]] 或 Threaded[b,-1-1]. »
- Threaded[b,alev] 等价于 Threaded[b,1alev].
- alev<0 时,f[a,Threaded[b,alev]] 等价于 f[a,Threaded[b,ArrayDepth[a]+alev+1].
- alev<0时,f[a,Threaded[b,alev]] 等价于 Map[f[#,b]&,a,{alev-1}] .
- 如果 alev 和 blev 的正负号相同,则 f[Threaded[a,alev], Threaded[b,blev]] 给出标头为 Threaded 的结果.
范例
打开所有单元关闭所有单元基本范例 (1)
如果没有 Threaded,将标量列表与数据对列表相加将把标量与每个数据对的相加:
范围 (7)
属性和关系 (8)
Threaded[y,…] 保持不进行计算,除非是在具有 Listable 属性的封装标头内:
如果无法执行该操作,则会发出一条消息,并且 Threaded 将保持未计算的状态:
可逐项作用的函数 f 对数组 a 和 b 的默认 threading 行为对应于 Threaded[b,1]:
默认情况下,Threaded[b] 在可能的不改变 a 的深度的最低层上 thread b:
在最低层被 thread 的数组作为一个整体被复制,以便为计算创建一个足够深的数组:
如果在更高层上被 thread,则个别条目被复制以填充数组:
Threaded[b] 等价于 Threaded[b,-1-1]:
也可以表示为 Threaded[b,1-ArrayDepth[b]]:
对于可逐项作用的函数 f、数组 a 和向量 v,可用 Inner 重现 Threaded 的行为:
比较用 Threaded 和显式的 Table 在 a 的第一层 thread b 的第一层:
下面的置换将 a 的第 3 层和第 4 层移到第 1 层和第 2 层,而第 5 层保持不变:
如果 Quantity 具有 Listable 属性,则 QuantityArray[mags,units] 对应于 Quantity[mags,Threaded[units]]:
文本
Wolfram Research (2022),Threaded,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Threaded.html.
CMS
Wolfram 语言. 2022. "Threaded." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Threaded.html.
APA
Wolfram 语言. (2022). Threaded. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Threaded.html 年