ネストしたリスト

{list1,list2,...}リストのリスト
Table[expr,{i,m},{j,n},...]expr の値の m×n×...表
Array[f,{m,n,...}]m×n×...配列
Normal[SparseArray[{{i1,j1,...}->v1,...},{m,n,...}]]
要素 である m×n×...配列
Outer[f,list1,list2,...]f で要素を結合した一般化された外積
Tuples[list,{m,n,...}]list の要素の可能なすべての m×n×...配列

ネストしたリストの構築方法

これは2×3のネストしたリストに対応する表を生成する.
In[1]:=
Click for copyable input
Out[1]=
これは上記と同じネストしたリストに対応する配列を生成する.
In[2]:=
Click for copyable input
Out[2]=
疎な配列において明示的に指定されていない要素はであると解釈される.
In[3]:=
Click for copyable input
Out[3]=
最終リストの各要素は各入力リストからの1要素を含む.
In[4]:=
Click for copyable input
Out[4]=

ArraySparseArrayOuter等の関数は常に「完全配列」を生成する.完全配列では,特定レベルのすべてのサブリストがすべて同じ長さになる.

Dimensions[list]完全配列の次元
ArrayQ[list]指定されたレベルのすべてのサブリストが同じ長さかどうかテストする
ArrayDepth[list]すべてのサブリストが同じ長さである深度

完全配列の関数

Mathematica は任意のネストしたリストを扱うことができる.リストが完全配列である必要はない.Tableを使って簡単に不調和配列を生成することができる.

これは三角配列を生成する.
In[5]:=
Click for copyable input
Out[5]=
Flatten[list]list の全レベルを平坦化する
Flatten[list,n]最上層から n 番目までのレベルを平坦化する
ArrayFlatten[list,rank]配列の配列から平坦化した配列を作成する

サブリストと部分配列の平坦化

これは2×3の配列を生成する.
In[6]:=
Click for copyable input
Out[6]=
Flattenは事実上要素をその指標によって辞書式順序に並べる.
In[7]:=
Click for copyable input
Out[7]=
これでブロック行列から行列が作られる.
In[8]:=
Click for copyable input
Out[8]=
Transpose[list]list の最上層の2レベルを置き換える
Transpose[list,{n1,n2,...}]list のレベル k 番目のレベルを置く

ネストしたリストにおけるレベルの置き換え

2×2×2配列を生成する.
In[9]:=
Click for copyable input
Out[9]=
レベル3がレベル1に現れるようにレベルを置換する.
In[10]:=
Click for copyable input
Out[10]=
これで最初の配列を回復する.
In[11]:=
Click for copyable input
Out[11]=
Map[f,list,{n}]レベル n にある要素に f を写像する
Apply[f,list,{n}]レベル n にある要素に f を適用する
MapIndexed[f,list,{n}]レベル n の部分とその指標に f を写像する

ネストしたリストに関数を適用する

これはネストしたリストである.
In[12]:=
Click for copyable input
レベル2に関数を写像する.
In[13]:=
Click for copyable input
Out[13]=
レベル2に関数を適用する.
In[14]:=
Click for copyable input
Out[14]=
を部分とその指標の両方に適用する.
In[15]:=
Click for copyable input
Out[15]=
Partition[list,{n1,n2,...}]××...個のブロックに分割する
PadLeft[list,{n1,n2,...}]××...の配列を作るために左側に充填する
PadRight[list,{n1,n2,...}]××...の配列を作るために右側に充填する
RotateLeft[list,{n1,n2,...}]レベル k で左側に位置 分循環させる
RotateRight[list,{n1,n2,...}]レベル k で右側に位置 分循環させる

ネストしたリストの操作

これは,ネストしたリストである.
In[16]:=
Click for copyable input
各レベルで異なった量を循環させる.
In[17]:=
Click for copyable input
Out[17]=
2×3×3配列を作るためにゼロで充填する.
In[18]:=
Click for copyable input
Out[18]=
New to Mathematica? Find your learning path »
Have a question? Ask support »