2
 mat = nan (5,4)

mat =

   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN

fact = rand(5,4)

fact =

    0.3507    0.5870    0.8443    0.4357
    0.9390    0.2077    0.1948    0.3111
    0.8759    0.3012    0.2259    0.9234
    0.5502    0.4709    0.1707    0.4302
    0.6225    0.2305    0.2277    0.1848

cd =

     1
     5
     2
     3
     4

>> mat(cd, : ) = fact

mat =

    0.3507    0.5870    0.8443    0.4357
    0.8759    0.3012    0.2259    0.9234
    0.5502    0.4709    0.1707    0.4302
    0.6225    0.2305    0.2277    0.1848
    0.9390    0.2077    0.1948    0.3111

最後の行が基本的に行うことを行うpythonまたはnumpyに似たものはありますか。つまり、インデックスの列に入力すると、それを反復して行ごとに手動で行うのではなく、対応する行をnan行列に自動的に入力します.

また、cd は mat よりも多くの行を持つことができ、mat はそれに応じて独自に拡張できることに注意してください。少なくとも matlab はそうです。

4

2 に答える 2

4

Python で正確にそれを行うことができます。1 ベースではなく 0 ベースのインデックスを使用するだけです。

>>> m[cd-1] = fact

>>> m 
array([[ 0.3507,  0.587 ,  0.8443,  0.4357],
       [ 0.8759,  0.3012,  0.2259,  0.9234],
       [ 0.5502,  0.4709,  0.1707,  0.4302],
       [ 0.6225,  0.2305,  0.2277,  0.1848],
       [ 0.939 ,  0.2077,  0.1948,  0.3111]])
于 2013-10-07T19:58:26.347 に答える