matlab程序中 mean函数的疑问,求助

matlab程序中 mean函数的疑问,求助,第1张

对你的问题分开来回答:

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这个是测量值标准偏差的估计值,通常称为实验偏差可以证明,它的平方是方差的无偏估计,但它本身并不是标准差的无偏估计

------------------------------

总之,这种计算方法来自与贝塞尔公式法对"标准偏差的最佳估计值的计算",而不是由数学期望得到的描述离散程度的变量

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/11677798.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存