我在Matlab中有一组数据,一个矩阵6256x48,我找到了它的平均值,std dev和CI间隔。这是使用:
完成的[muhat1,sigmahat1,muci1,sigmaci1] = normfit(data);
我的问题是,如何在muci1
数组中的置信区间内找到原始数据的每列中的结果或数据点数。
muci1
数组是2行48个点,顶行是下限,下行是上限。
答案 0 :(得分:1)
data = rand(6258,48); %//data
[A,B]=size(data); %// size of your data
[muhat1,sigmahat1,muci1,sigmaci1] = normfit(data); %//stats of your data
mask(A,B)=0; %// create output mask
for ii = 1:B
mask(:,ii) = data(:,ii)<muci1(2,ii)&data(:,ii)>muci1(1,ii); %// fill mask
end
FinalResult = sum(mask,1); %// number of points within CI per column
finalresult2 = sum(FinalResult); %// number of points within all CIs total
for
循环在muci1
给出的两个边界之间搜索每列中的条目。如果数字介于边界之间,则1
中的数字为mask
,否则会变为0
。