matlab 误差椭圆,求3倍标准差误差椭圆分析的程序

根据《白话空间统计之九:方向分布(标准差椭圆)修正版》(有些地方没有理解清楚),写了下面的程序。但是好像结果不对Z=mvnrnd([0.5 1.5], [0.025 0.03 ; 0.03 0.16], 50);X=Z(:,1);Y=Z(:,2);mean_X=nanmean(X);mean_Y=nanmean(Y); %椭圆圆心%确定长短半轴SDE_X=nanstd(X,1);SDE...
摘要由CSDN通过智能技术生成

根据《白话空间统计之九:方向分布(标准差椭圆)修正版》(有些地方没有理解清楚),写了下面的程序。但是好像结果不对

Z=mvnrnd([0.5 1.5], [0.025 0.03 ; 0.03 0.16], 50);

X=Z(:,1);  Y=Z(:,2);

mean_X=nanmean(X);  mean_Y=nanmean(Y);   %椭圆圆心

%确定长短半轴

SDE_X=nanstd(X,1);

SDE_Y=nanstd(Y,1);

%确定方向

N=size(X,1)*size(X,2)-size(find(isnan(X)),1);  %非NaN元素个数

X2=nanvar(X(:),1)*N;

Y2=nanvar(Y(:),1)*N;

A1=nancov(X,Y,1);  % 是2*2矩阵,含4个元素,元素1是S(X(:)),及X的方差;元素4是Y的方差;元素2与3相等,是X与Y的协方差;

X1=A1(1)*N; % (X-mean_X)平方求和

Y1=A1(4)*N; % (Y-mean_Y) 平方求和

XY=A1(2)*N; %(X-mean_X)(Y-mean_Y) 求和

A=X1-Y1;

B=sqrt(A^2+4*XY^2);

C=2*XY;

theta=atan((A+B)/C);  % 椭圆方向,狐度,以X轴为准,正北方(12点方向)为0度,顺时针旋转    *180/pi=角度

%确定x、y轴的标准差

XStd=sqrt((cos(theta)^2*X1+sin(theta)^2*Y1-sin(2*theta)*XY)/N)*sqrt(2);  %X轴标准差,不知道是否有*sqrt(2)

YStd=sqrt((sin(theta)^2*X1+cos(theta)^2*Y1+sin(2*theta)*XY)/N)*sqrt(2);  %Y轴标准差,不知道是否有*sqrt(2)

% XStd=sqrt((cos(theta)^2*X1+sin(theta)^2*Y1-sin(2*theta)*XY)/N);  %X轴标准差,不知道是否有*sqrt(2)

% YStd=

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值