4

rxk の行列を作成し、コードで指定された式で埋めなければならない関数を作成しました。

mCreate<-function(r,k)
{
 result<-array(0,dim=c(r,k))
  for(R in 0:(r-1)) 
  {
    for(K in 0:(k-1))
     {
      result[R][K] = 5*R^K-2*K^R
      }
   }
   return(result)
}

これをテストしようとすると、常に「R number of items to replace is not a multiple of replacement length」というメッセージが表示されます。理由はわかりません。グーグルで検索しましたが、アウトバウンドに行ったことが原因であるという情報が常に得られます。

4

1 に答える 1

2

代わりにこれを使用outerします...

mCreate <- function( r , c ){
  r <- seq_len(r)
  c <- seq_len(c)
  m <- outer( r , c , FUN = function(x,y) 5*x^y-2*y^x )
  return( m )
}

mCreate( 4 , 4 )
#     [,1] [,2] [,3] [,4]
#[1,]    3    1   -1   -3
#[2,]    8   12   22   48
#[3,]   13   29   81  277
#[4,]   18   48  158  768

#  Sanity check:
mCreate( 1 , 1 )
#     [,1]
#[1,]    3

#  Safety check:
mCreate( 0 ,0 )
<0 x 0 matrix>
于 2013-10-29T13:44:19.983 に答える