我必须创建n(比如说2)否。尺寸为5*5
的矩阵具有不同的单元格值分配,如下所示:
,,1
-1 0 1 -1 0
1 -1 0 1 -1
0 1 -1 0 1
-1 0 1 -1 0
1 -1 0 1 -1
,,2
0 -1 0 1 -1
1 0 0 1 0
0 0 1 0 1
1 0 -1 0 -1
0 -1 -1 -1 -1
为此我尝试了以下方式:
r = 5
c = 5
a = 2
m = array(2, dim = c(5,5,2))
for(i in 1:dim(m))
{ for (j in 1:dim(m)) {
for (k in 1:dim(m)){
m[i,j,k] = sample(c(-1,1,0),replace =T, 1)
}}}
m
并收到以下错误和警告:
[<-
中的错误(*tmp*
,i,j,k,值= -1):下标超出范围 另外:警告信息:1:1:dim(m):数值表达式 有3个元素:只有第一个使用2:1:dim(m):数字 表达式有3个元素:只有第一个使用3:1:dim(m): 数值表达式有3个元素:只使用第一个
但是当我尝试使用矩阵函数时,它给出了正确的结果,那么数组有什么问题。
r = 5
c = 5
m = matrix(2,r,c)
for(i in 1:r)
{ for (j in 1:c) {
m[i,j] = sample(c(0,1,-1),replace =T,prob=c(.33,.33,.34),1)
}}
任何人都可以告诉我如何解决这个问题。