执行后提示:
位置 1 处的索引超出数组边界(不能超出 59)。
出错 a_n (line 8)
[y(i,:), x(i,:)]=hist(data1(i,:),94);
请问大佬们怎么改这行代码?excel表里的数据是59*95
close all;
clear all;
data1 = xlsread('C:\Users\Desktop\alpha_normal_正则化数据.xls','sheet1'); %读入数据
for i=1:104
[y(i,:), x(i,:)]=hist(data1(i,:),100); %统计频次分布
figure('Color','w');
bar(x(i,:),y(i,:),1);
h(i,:)=bar(x(i,:),y(i,:),1); %画直方图
set(h(i,:),'EdgeColor',[0.5 0.5 0.5],'FaceColor',[0.5 0.5 0.5]);
hold on;
normplot(data1(i,:));%人工判断是否正态分布
%%%%%%%%%%%%%%%%%%%%%
[H,P,LSTAT,CV] = lillietest(data1(i,:));
if H==0 %不能拒绝H0,
disp('原始数据服从正态分布');
disp(i);
else
disp('原始数据不服从正态分布');
disp(i);
end
%%%%%%%%%%%%%%%%%%%%
[mu(i),sigma(i)]=normfit(data1(i,:));
a(:,i) = mu(i) + sqrt(sigma(i)) .* randn(94,1);
[h(i,:),sig(i,:),ci(i,:)]=ttest(data1(i,:),mu(i));
if h(i,:)==0 %不能拒绝H0,
disp('调整后服从正态分布')
else
disp('调整后no')
end
filename = 'C:\Users\Desktop\alpha_normal_正态分布处理.xls';
writematrix(data1,filename,'sheet',1,'Range','A1:CP59');
end