我正在尝试使用n
使用k
mvn协变量创建矩阵k
。
非常简单但到目前为止还没有工作......这是我的代码:
n=1000
k=5
p=100
mu=0
sigma=1
x=matrix(data=NA, nrow=n, ncol=k)
for (i in 1:k){
x [[i]]= mvrnorm(n,mu,sigma)
}
缺少什么?
答案 0 :(得分:10)
我在这里看到了几件事:
set.seed(20430)
)设置随机种子。这意味着每次运行代码时,您都将获得完全相同的伪随机变量集。 mu = 0
和sigma = 1
,因为它们是{{{I}的默认值1}}。 rnorm()
函数中的data=
参数直接添加它们。如果您真的致力于使用循环,那么您应该使用双循环,以便循环遍历列,并在每个循环内循环遍历行。 (请注意,这是一种非常低效的R代码编写方式 - 尽管我一直这样做;-)。 matrix()
应该在您的代码中做什么。 这是实现您的目标的基本方法:
p
如果你真的想使用循环,你可以这样做:
set.seed(20430)
n = 1000
k = 5
dat = rnorm(n*k)
x = matrix(data=dat, nrow=n, ncol=k)
答案 1 :(得分:1)
A=c(2,3,4,5);# In your case row terms
B=c(3,4,5,6);# In your case column terms
x=matrix(,nrow = length(A), ncol = length(B));
for (i in 1:length(A)){
for (j in 1:length(B)){
x[i,j]<-(A[i]*B[j])# do the similarity function, simi(A[i],B[j])
}
}
x # matrix is filled
我从问题的角度思考。
答案 2 :(得分:0)
首先定义矩阵
E<-matrix(data=0, nrow=10, ncol=10);
运行两个循环以对行进行i迭代,对列进行j迭代,mine是可交换的相关结构
for (i in 1:10)
{
for (j in 1:10)
{
if (i==j) {E[i,j]=1}
else {E[i,j]=0.6}
}
};