Threaded

Threaded[list]

Plusのようなリスト可能な演算で使われた際にその要素が配列の最低レベルに自動的に縫い込まれるオブジェクトである.

a+Threaded[b]

配列 b の要素を配列 a の可能な限り下のレベルの要素に加える.

a+Threaded[b,alev]

a のレベル alev の要素を加える.

a+Threaded[b,blevalev]

a のレベル alev の要素を b のレベル blev に加える.

f[a,Threaded[b,]]

属性Listableを持つ関数 f について要素を組み合せる.

詳細

  • a+Threaded[b]では,a の最低レベルの次元が b の次元と一致しなければならない.
  • Listableな関数 f では,f[a,b]は,事実上,最も上位のレベルから下に向けて配列 ab の要素に f を適用する.Threadedを使うと a の中での要素の結合方法が制御できる.
  • a の次元が{adim1,,adimj}b の次元が{bdim1,,bdimi}なら,次元に対応するレベルは以下のようになる.
  • f[a,Threaded[b]]なら,abArrayDepth[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}] に等しい.
  • f[Threaded[a,alev], Threaded[b,blev]]は,alevblev の符号が等しければ,頭部がThreadedの結果を与える.

例題

すべて開くすべて閉じる

  (1)

ペアのリストの各要素にペア{x,y}を加える:

Threadedがないと,ペアのリストにスカラーのリストを加えると各ペアにスカラーの値が加えられる:

スコープ  (7)

次元{2,3,4}でランク3の配列を作成する:

3×4行列を配列内の2つの行列それぞれに加える:

次元{2,3,4,2}でランク4の配列を作成する:

3×4行列を最も深い縫込みレベルに加えると3×4と4×2は等しくないので失敗する:

この行列は次元が一致するレベル2に加えることはできる:

最も深い配列のランクは4であるから,これはレベル-3の縫込みと等しい:

スカラーとThreaded引数を組み合せるとThreadedの結果が与えられる:

結合性は維持されている:

すべての引数がThreadedオブジェクトなら,結果は単一のThreadedオブジェクトになる:

深さ4の配列について異なる正のレベルでThreadedを使って比較する:

深さ4の配列の異なる負のレベルでThreadedを使って比較する:

Threadedをリスト可能な任意の関数で使う:

縫い込まれた引数は任意順で現れる:

SparseArrayオブジェクトでThreadedを使う:

アプリケーション  (2)

行列の各行にベクトルを加える:

行列の各列にベクトルを加える:

画像データの赤のチャンネルをゼロにして青のチャンネルを2倍にする:

同じ構造を2D画像データに使うことができる:

特性と関係  (8)

Threaded[y,]は,内部に属性Listableを有する包み込みの頭部がない場合は未評価のままになる:

この操作が実行できなければ,メッセージが出てThreadedは未評価のままになる:

リスト可能関数 f の配列 a および b についてのデフォルトの縫込み動作はThreaded[b,1]に相当する:

b の最初のレベルを a の最初のレベルに縫い込む:

デフォルトで,Threaded[b]a の深さを変えない可能な最低レベルの b を縫い込む:

この2つの縫込み動作は異なる:

最も下のレベルに縫い込まれた配列は,操作に十分深い配列を作成するために全体が複製される:

最も高いレベルに縫い込まれた場合は,配列を埋めるために個々の項目が複製される:

Threaded[b]Threaded[b,-1-1]に等しい:

これはThreaded[b,1-ArrayDepth[b]]として表すことができる:

リスト可能な関数 f,配列 a,ベクトル v については,Threadedの使用はInnerで再現できる:

デフォルト以外の縫込みレベルについては転置の必要がある:

Threadedと明示的なTableを使って a の最初のレベルにおける b の最初のレベルへの縫込みを比較する:

デフォルト以外のレベルでの縫込みは2つの転置を使って行うこともできる:

この置換によって 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.

テキスト

Wolfram Research (2022), Threaded, Wolfram言語関数, 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_2024_threaded, author="Wolfram Research", title="{Threaded}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/Threaded.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

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