怎么用MATLAB做两列数据的相关分析 并画出图

怎么用MATLAB做两列数据的相关分析 并画出图,第1张

将两列数据放入一个2xn的矩阵中,假设这个矩阵为data,用代码:

x=data(:,1);

y=data(:,2);

plot(x,y);

就画出图了

至于相关的数据分析,看你的分析类型而定了,回归分析就调用回归函数。。。。。。

>> x=[132 13 149 82 79 253 160 163 75];

>> y=[23 24 21 20 21 39 30 32 9];

>> [R,P]=corrcoef(x,y)

R =

10000 08834

08834 10000

P =

10000 00016

00016 10000

%%一维高斯函数

mu=0; sigma=1;

x=-6:1:6;

y1=normpdf(x,mu,sigma);

figure,plot(x,y);

%%一维均布

y2=randperm(13)-6;

figure,plot(y2);

%%相关系数

C=corrcoef(y1,y2);

红色为自相关系数,绿色为互相关系数

对于相关系数的大小所表示的意义目前在统计学界尚不一致,但通常按下是这样认为的:

相关系数 相关程度

000-±030 微相关

±030-±050 实相关

±050-±080 显著相关

±080-±100 高度相关

通过C中的-01672,可判为两个数列微相关,相对独立性大

相比较来说,spss最好!详细分析如下:

1、从功能角度来说,三者基本上差不多,但matlab和spss要强于excel,前两者功能都很强大(这里说的功能仅是对相关性分析而言),而excel也可以进行相关性分析,但返回的结果和报告中涉及到的参数没有前两者多。

2、从易用性上来说,excel>spss>matlab。

3、spss给出的多种的统计检验量,使得你所说的相关性分析比较可靠,而excel给出的检验量不多,而matlab则需要记住很多命令及相关格式。

综上,spss最适合!

这个太难了,或者说是有太多的不确定性

因为连一个大概的函数形式都没有给出来

也就是说可能性太多,这组数据可以拟合出无数多种函数结果

如果什么函数形式都不给出的话,或者用多项式拟合吧

下面是尝试用11次多项式拟合你的数据

x=[9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39];

y=[9,12,18,21,12,26,29,36,50,101,192,245,233,117,28,9];

p=polyfit(x,y,11);

xx=linspace(9,39,100);

yy=polyval(p,xx);

plot(x,y,'o');hold

on

plot(xx,yy,'r');hold

off

legend('数据','拟合','location','northwest');

title(poly2str(p,'x'));

如果是正态分布

x=[9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39];

y=[9,12,18,21,12,26,29,36,50,101,192,245,233,117,28,9];

fun=@(p,x)

p(1)exp(-(x-p(2))^2/2/p(3)^2);

p=nlinfit(x,y,fun,[250

32

10]);

xx=linspace(9,39,100);

yy=fun(p,xx);

plot(x,y,'o');hold

on

plot(xx,yy,'r');hold

off

legend('数据','拟合','location','northwest');

其中得到的p是有3个数的向量

函数形式是

p(1)exp(-(x-p(2))^2/2/p(3)^2)

p(1)是幅度,p(2)是中心横坐标,p(3)是标准差

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

原文地址: https://outofmemory.cn/langs/12176981.html

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

发表评论

登录后才能评论

评论列表(0条)

保存