我對線性模型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