図の行列を埋める必要があります。私の方法は東にはないループを使うことです。ディメンションが大きい場合は効率的ではありません。 (?ベクトル化や、私が知らないいくつかの機能を使用して言う) は、簡単に読んで、おそらくより速くできるようにする任意の方法は、ここで対角ベクトルの右に3つの要素を塗りつぶすより直感的な方法
# The code is in python, but I am open to R as well.
S=6
p=[0.1,0.3,0.6] # the pi in the figure
# The reason I use loop for p is that it handles a flexible dimension of p
mat = np.zeros((S, S))
p = np.array(p)
for i in range(S):
for j, x in enumerate(p):
if i + j < S-1:
mat[i+j][i] = x
elif i + j == S-1:
mat[S-1][i] = p[j:].sum()
else:
pass
mat.T
を与える[この](http://stackoverflow.com/questions/5852495/how-do-i-find-the:いくつかは
scipy.sparse.diags
を使用してさらに別の方法を、明らかにしたグーグル-scalar-product-of-a-numpy-matrix)が役に立ちます。また、 'for'を使うと、' for'の後の黄色部分の値を変更します。 'for'の中で' if'を使う必要はありません。これは2回の変更だけで面倒です。 –