
对你的问题分开来回答:
1mean(xp(i,:)):这个语句的意思是“求解矩阵xp的第i行的均值”;
2在matlab中,for循环、while循环、if语句以及他们相互之间的嵌套,都要用 “end”来结束,否则系统会报错;
3for i=1:M
xp(i,:)=(一个表达式);
end
举一个例子吧:
/////////////
xp=[];
x=1:10;
for i=1:4
xp(i,:)=sin(x);
end
////////////
不知道你的那段代码里的变量有什么具体含义,所以就写了一个相似的例子,希望对你有帮助;
4求均值的话,还是用mean函数;
xp是一个i行j列的矩阵,则第j列的均值=mean(:,j);
1、第一步打开matlab,在命令行窗口中输入a=[12 24 35;26 78 56],创建一个2行3列的矩阵,如下图所示:
2、第二步在命令行窗口中输入mean(a(:)),求a矩阵所有元素的平均值,如下图所示:
3、第三步按回车键之后,可以看到a矩阵所有元素的平均值是 385000,如下图所示:
4、第四步如果想求矩阵每一列的平均值,输入mean(a,1),如下图所示:
5、第五步如果想求矩阵每一行的平均值,输入mean(a,2),如下图所示:完成。
mean函数用于计算平均值,在二维数组中,如果把行列看成x和y的话,那么mean(a, 1), mean(a, 2),是分别计算行和列的平均值的,所以,在三维数组中mean(a, 3)使用来计算z方向上的平均值的。
Matlab中输入help var 可以得到var函数的有关帮助,其中有一句非常重要的话:
VAR(X) normalizes by N-1 where N is the sequence length This makes VAR(X) the best unbiased estimate of the variance if X is a sample from a normal distribution
也就是说matlab这样设置是考虑到现实中误差理论的应用。
查阅了一些相关的书籍,不知道能不能给你一个正确的解释。
严格意义上的方差公式的却如你所说。matlab中var实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值”。
测量值的总体偏差是在测量次数n趋于无穷大的情况下的“真误差”[dirta(i)=x(i)-E(x(i))]来定义的,即a=根号下{1/n[dirta1^2+dirta2^2+]},注意n是趋于无穷大的。
实际中n是有限次,只能求出真值的估计值x',不能得到真值E(x)和真误差。通常以算术平均值代替真值,以测量值与算术平均值的差--残差v来代替真误差,即v(i)=x(i)-x'。显然残差的代数和为0。
用有限次测量数据来计算标准偏差的最佳估计值时,可以采用贝塞尔公式法计算,计算的公式就是matlab采用的方法了,分母成了n-1这个是测量值标准偏差的估计值,通常称为实验偏差可以证明,它的平方是方差的无偏估计,但它本身并不是标准差的无偏估计
------------------------------
总之,这种计算方法来自与贝塞尔公式法对"标准偏差的最佳估计值的计算",而不是由数学期望得到的描述离散程度的变量
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)