最近在做实验时,要计算好几列数据的平均值和标准偏差。一开始我是在excel中一个一个计算。实在是太累了,有点受不了了。后来请教了一名师兄,教了我一招。直接上代码。
重要提示!!!
重要提示!!!
重要提示!!!
这个程序计算的是矩阵中每一列的平均值和标准差,如果读者要计算每一行的平均值和标准偏差,可以先对矩阵进行转置。
function [ms,mDCB]=Get_ms(DCB)
[m,n]=size(DCB);
mDCB=zeros(1,n);
sDCB=zeros(1,n);
ms=zeros(1,n);
for j=1:n
n1=0;
if all((DCB(:,j))==0)
continue
end
for i=1:m
if DCB(i,j)==0
continue
end
sDCB(j)=sDCB(j)+DCB(i,j);
n1=n1+1;
end
mDCB(j)=sDCB(j)/n1;
end
for j=1:n
if all((DCB(:,j))==0)
continue
end
for i=1:m
if DCB(i,j)~=0
dDCB(i,j)=(DCB(i,j)-mDCB(j)).^2;
end
end
nt(j)=numel(find(DCB(:,j)~=0));
ms(j)=sqrt(sum(dDCB(:,j))/(nt(j)-1));
end