主题:高手看看我的程序到底哪里出错了?
我想编程实现一个输出正态分布均值和标准差的程序,对于一个数组序列M(共有N个数)。
M中每个值的前50个值,加后50个值,再加这个值本身,组成一个新的DATA,
我用NORMFIT语句求出这组DATA的均值和标准差。
以此类推,求出N组均值和标准差。
最后想输出一个N行2列的结果,一列是均值,一列是方差。
我编了下面程序,总是输出N行一列结果,而且好像光是均值,
请高手帮我改改,最好实际运行出结果。
多谢!
function errors=GetNormalParameters()
m=ErrorsDataInput();
n=length(m);errors=zeros(n,1);
mu=zeros(n,1);sigma=zeros(n,1);
for i=1:n;
errors(i,:)=m(i,:);
for j=i+1:51;
p(j,:)=m(j,:);
errors(j,:)=errors(j,:)+p(j,:);
end
if i-1==0
[a,b] = normfit(errors(1:51));
mu(i,:)=a;
sigma(i,:)=b;
end
for k=i-1:-1:50;
if k==0
break;
else q(k,:)=m(k,:);
errors(k,:)=errors(k,:)+q(k,:);
end
end
[c,d] = normfit(errors);
mu(i,:)=c;
sigma(i,:)=d;
end
end
function m=ErrorsDataInput(); %数据输入函数
m=[3.359
6.36
.
.
.];
end
M中每个值的前50个值,加后50个值,再加这个值本身,组成一个新的DATA,
我用NORMFIT语句求出这组DATA的均值和标准差。
以此类推,求出N组均值和标准差。
最后想输出一个N行2列的结果,一列是均值,一列是方差。
我编了下面程序,总是输出N行一列结果,而且好像光是均值,
请高手帮我改改,最好实际运行出结果。
多谢!
function errors=GetNormalParameters()
m=ErrorsDataInput();
n=length(m);errors=zeros(n,1);
mu=zeros(n,1);sigma=zeros(n,1);
for i=1:n;
errors(i,:)=m(i,:);
for j=i+1:51;
p(j,:)=m(j,:);
errors(j,:)=errors(j,:)+p(j,:);
end
if i-1==0
[a,b] = normfit(errors(1:51));
mu(i,:)=a;
sigma(i,:)=b;
end
for k=i-1:-1:50;
if k==0
break;
else q(k,:)=m(k,:);
errors(k,:)=errors(k,:)+q(k,:);
end
end
[c,d] = normfit(errors);
mu(i,:)=c;
sigma(i,:)=d;
end
end
function m=ErrorsDataInput(); %数据输入函数
m=[3.359
6.36
.
.
.];
end