WOLFRAM

Enable JavaScript to interact with content and submit forms on Wolfram websites. Learn how
Wolfram Language & System Documentation Center

Threaded [list]

is an object whose elements will automatically be threaded into the lowest level of an array when used in a listable operation such as Plus .

a+Threaded[b]

adds elements of an array b to elements of an array a at the lowest possible level.

a+Threaded[b,alev]

adds elements at level alev of a.

a+Threaded[b,blevalev]

adds elements at level alev in a to level blev in b.

f[a,Threaded[b,]]

combines elements for a function f with the attribute Listable .

Details
Details and Options Details and Options
Examples  
Basic Examples  
Scope  
Applications  
Properties & Relations  
See Also
Related Guides
History
Cite this Page

Threaded [list]

is an object whose elements will automatically be threaded into the lowest level of an array when used in a listable operation such as Plus .

a+Threaded[b]

adds elements of an array b to elements of an array a at the lowest possible level.

a+Threaded[b,alev]

adds elements at level alev of a.

a+Threaded[b,blevalev]

adds elements at level alev in a to level blev in b.

f[a,Threaded[b,]]

combines elements for a function f with the attribute Listable .

Details

  • In a+Threaded[b], the lowest-level dimensions of a must match the dimensions of b.
  • For a function f with the Listable attribute, f[a,b] effectively applies f to the elements in arrays a and b, working from the uppermost level down. Using Threaded gives control over how the elements are combined in a.
  • If a has dimensions {adim1,,adimj} and b has dimensions {bdim1,,bdimi}, then the levels correspond to dimensions as follows:
  • In f[a,Threaded[b]], a and b should be rectangular arrays with ArrayDepth [a]ArrayDepth [b].
  • Threaded [b] is equivalent to Threaded [b,1-ArrayDepth [b]] or to Threaded [b,-1-1]. »
  • Threaded [b,alev] is equivalent to Threaded [b,1alev].
  • f[a,Threaded[b,alev]] with alev<0 is equivalent to f[a,Threaded[b,ArrayDepth [a]+alev+1].
  • f[a,Threaded[b,alev]] with alev>0 is equivalent to Map [f[#,b]&,a,{alev-1}] .
  • f[Threaded[a,alev], Threaded[b,blev]] gives a result with head Threaded if alev and blev have the same sign.

Examples

open all close all

Basic Examples  (1)

Add the pair {x,y} to each element in a list of pairs:

Without Threaded , adding a list of scalars to the list of pairs would add a scalar value to each pair:

Scope  (7)

Create a rank-three array with dimensions {2,3,4}:

Add a 3×4 matrix to each of the two matrices in the array:

Create a rank-four array with dimensions {2,3,4,2}:

Adding a 3×4 matrix at the deepest threading level will fail because 3×4 differs from 4×2:

The matrix can be added at level 2 because the dimensions match:

Since the deepest array has rank 4, this is the same as threading at level -3:

Combining a scalar with a Threaded argument gives a Threaded result:

This preserves associativity:

When all of the arguments are Threaded objects, then the result is a single Threaded object:

Compare using Threaded with different positive levels for an array with depth 4:

Compare using Threaded with different negative levels for an array with depth 4:

Use Threaded with an arbitrary listable function:

Threaded arguments can appear in any order:

Use Threaded with SparseArray objects:

Applications  (2)

Add a vector to each row of a matrix:

Add a vector to each column of a matrix:

Zero the red channel and double the blue channel in 3D image data:

The same construct works for 2D image data:

Properties & Relations  (8)

Threaded [y,] stays unevaluated unless inside a wrapping head with the Listable attribute:

If the operation cannot be performed, a message will be emitted and Threaded will stay unevaluated:

Default threading behavior of a listable function f with arrays a and b corresponds to Threaded [b,1]:

Thread the first level of b at the first level of a:

By default, Threaded [b] threads b at the lowest possible level that does not change the depth of a:

These two threading behaviors are different:

An array threaded at the lowest level is duplicated as a whole to create a sufficiently deep array for an operation:

When it is threaded at a higher level, individual entries are duplicated to fill out the array:

Threaded [b] is equivalent to Threaded [b,-1-1]:

This can also be expressed as Threaded [b,1-ArrayDepth [b]]:

For a listable function f, an array a and a vector v, the use of Threaded can be reproduced with Inner :

A transposition is needed for nondefault threading level:

Compare threading the first level of b at the first level of a, using both Threaded and an explicit Table :

Threading at nondefault levels can be also achieved by using two transpositions:

This permutation moves levels 3 and 4 of a to levels 1 and 2, leaving level 5 unchanged:

QuantityArray [mags,units] would correspond to Quantity [mags,Threaded[units]] if Quantity had the Listable attribute:

See Also

Thread   MapThread   Inner   ArrayReduce

Wolfram Research (2022), Threaded, Wolfram Language function, https://reference.wolfram.com/language/ref/Threaded.html.

Text

Wolfram Research (2022), Threaded, Wolfram Language function, https://reference.wolfram.com/language/ref/Threaded.html.

CMS

Wolfram Language. 2022. "Threaded." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Threaded.html.

APA

Wolfram Language. (2022). Threaded. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Threaded.html

BibTeX

@misc{reference.wolfram_2025_threaded, author="Wolfram Research", title="{Threaded}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/Threaded.html}", note=[Accessed: 17-November-2025]}

BibLaTeX

@online{reference.wolfram_2025_threaded, organization={Wolfram Research}, title={Threaded}, year={2022}, url={https://reference.wolfram.com/language/ref/Threaded.html}, note=[Accessed: 17-November-2025]}

Top [フレーム]

AltStyle によって変換されたページ (->オリジナル) /