あなたは、あなたの元の行列へのインデックスに使用することができます添字にあなたの線形インデックスを変換するunravel_index
を使用し、その後numpy
配列にあなたの行列を変換することができます。あなたのような行列を平らにしたい場合は、以下のすべてのコマンドは、むしろ
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
inds = np.arange(5);
result = a[np.unravel_index(inds, a.shape, 'F')]
# array([1, 4, 7, 2, 5])
また、行優先順序(numpy
のデフォルト)よりも列優先順序(MATLABのデフォルト)を使用する'F'
入力を使用することに注意してくださいMATLABあなたにもそれを行うことができます。
a.flatten('F')
# array([1, 4, 7, 2, 5, 8, 3, 6, 9])
あなたのpythonにMATLABコードの束を変換する場合、それはnumpy
を使用して、ちびによって作成されthe documentation on notable differences
新しい段落を見てお勧めします強いです1つの段落の末尾と次の段落の間の空白行。 2つの結果が返されます – user2386276
MATLABの仕組みが正確ではありません。 'x(1:5)'は、列の主要な順序で最初の5つの要素を取ります。これは記述したように考えることができますが、MATLABは中間のステップを実行しません。 – Adriaan
まず、新しい段落を生成する方法を教えてくれてありがとう。 Matlabのプロシージャを考えると、私はMatlabが返すものを記述しようとし、Pythonで同じ作業をするための正しい記述についての答えを得ることを望みます。まだあなたの意見のためにthx。 –