我对线性模型y = X * beta + eps进行了大小(X)= [n d]的模拟研究。 我基于两种方法考虑维度d的影响。 我运行10个模拟数据并获得相应的beta估计,然后我想计算10个模拟数据中beta的平均值。matlab中的单元阵列均值
我的玩具MATLAB代码如下:
nsim=10; %iteration number
dd=[4 6]; %two dimension cases,\beta=(\beta_1,\cdots,\beta_d)^T
ddlen=length(dd);
nmethod=2; %two methods
seednum=0;
BH = cell(nsim,ddlen,nmethod); %estimation of beta w.r.t two dimension cases and two methods
for di = 1:ddlen
d = dd(di);
for ni = 1:nsim
seednum = seednum + di*ni;
randn('seed', seednum);
betahat=randn(d,1);
for method = 1:nmethod
if method==1
BH{ni,di,method} = betahat;
else
BH{ni,di,method} = 10*betahat;
end
end
end
end
然后我们就可以得到
BH(:,:,1) =
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
BH(:,:,2) =
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
[4x1 double] [6x1 double]
我想在10个行平均值(NSIM = 10),并得到类似
mean(BH(:,:,1))=
[4x1 double] [6x1 double]
mean(BH(:,:,2)) =
[4x1 double] [6x1 double]
有没有想法?谢谢!
感谢@ EBH。但你的回答并不是我想要的。回报应该是两个向量,一个是[4x1 double],另一个是[6x1 double],换句话说,分别是10 [4x1 double]的平均值和10 [6x1 double]的平均值。 –
如果所有数组的大小相同,为什么使用单元阵列? – beaker
为什么你在每个循环中设置一个新的随机种子? – EBH