想用MATLAB中的corrcoef函数求两个向量的相关系数。

 
比如A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)可以求出相关系数是0.5.为什么两个向量的元素都要是3个以上才行?而只有两个元素的向量如A=[1 2];B=[5 3];不管怎么随机的取,相关系数都是1或-1啊?只含两个元素的向量,都一定相关吗?
 

这是求相关度的结果,对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数)。计算公式是:C(1,2)/SQRT(C(1,1)*C(2,2)),其中C表示矩阵[f,g]的协方差矩阵,假设f和g都是列向量(这两个序列的长度必须一样才能参与运算),则得到的(我们感兴趣的部分)是一个数。以默认的A=corrcoef(f,g)为例,输出A是一个二维矩阵(对角元恒为1),我们感兴趣的f和g的相关系数就存放在A(1,2)=A(2,1)上,其值在[-1,1]之间,1表示最大的正相关,-1表示绝对值最大的负相关

>> A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)

r =

1.0000    0.5000

0.5000    1.0000

>> A=[1 2];B=[5 3];

r= corrcoef(A,B)

r =

1.0000   -1.0000

-1.0000    1.0000%%-1是算出来的,不是说二维向量就一定相关,根据图中r和协方差矩阵的关系

cov(A,B)

ans =

0.5000   -1.0000

-1.0000    2.0000%%%A和B的协方差矩阵,

那么R(1,2)=C(1,2)/(sqrt(C(1,1)*C(2,2)))=-1,sqrt为开方的意思。

向左转|向右转

追问
非常感谢你的回答,真的是太详细了,我都抄在本子上了呵呵。但还是有一点不明白,
“-1是算出来的,不是说二维向量就一定相关,”什么意思?为什么任何两个二维向量计算出来的相关系数都是1或者-1?你不是说“1表示最大的正相关,-1表示绝对值最大的负相关”吗?那么任何两个二维的向量都具有最大的正(负)相关性吗?相关系数为1,也就是相关的。我不是学数学的,是做课题的时候发现这个问题不明白。

回答
>> A=[1 0];B=[0 1];%%二维向量,不相关cov(A,B)
ans =0.5000   -0.5000-0.5000    0.5000
A=[1 2];B=[5 10];%%二维向量,相关cov(A,B)
ans =0.5000    2.50002.5000   12.5000正相关是指两列变量变动方向相同,一列变量由大到小或由小到大变化时,另一列变量亦由大到小或由小到大变化。负相关是指两列变量变动方向相反,一列变量由大到小或由小到大变化时,另一列变量反而由小到大或由大到小变化。matlab 函数corrcoef也是根据上面的概念计算的,关于二维向量计算总得到-1或者1的问题,我仔细看了下,上面的测试两组数据,可以看出协方差矩阵中sqrt(C(1,1)*C(2,2))=C(1,2)or-C(1,2)。也就是说不管你怎么换数据sqrt(C(1,1)*C(2,2))=C(1,2)or-C(1,2)这个式子总是成立的,所以我个人认为是样本数量(向量维数)少或者是这个函数的缺陷。

提问者评价
感谢。我大概明白了。如果向量只有两维,则只存在相关或不相关。没有定义相关的程度。除非样本数量多些

MATLAB中的corrcoef函数求两个向量的相关系数。相关推荐

  1. matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...

    导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...

  2. matlab输出的特征向量,关于matlab中的eig函数(求特征值和特征向量)(最新整理)

    <关于matlab中的eig函数(求特征值和特征向量)(最新整理)>由会员分享,可在线阅读,更多相关<关于matlab中的eig函数(求特征值和特征向量)(最新整理)(3页珍藏版)& ...

  3. python3,利用函数求两个数的和与差。

    基础内容: 相信很多刚接触 python 的同学都有遇到过这种题.以下是 在 python 中的利用函数求两个数的和与差. class Calculate: def --init--(self,num ...

  4. matlab优化问题约束不取等号6,matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么...

    导航:网站首页 > matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么 matlab中fmincon函数中不含等号的边界值怎么设置? ...

  5. QT/C++/Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差

    QT / C++ / Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差 //定义一个按列求标准差的函数,其中A为被求列标准差的矩阵,OutputMatrix为求出的列标准差 v ...

  6. MATLAB中的常用函数小结

    1. MATLAB中的常用函数小结 文章目录 1. MATLAB中的常用函数小结 1. MATLAB图像处理工具箱 1.1 图像显示 1.2 图像文件输入/输出 1.3. 图像像素值及其统计 1.4 ...

  7. matlab的数学函数,matlab中常见数学函数的使用

    matlab中常见数学函数的使用 MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数 e i 或 j 虚数单位 Inf 或 inf 无穷大 Matlab 的常 ...

  8. matlab 子函数怎么写,matlab中怎么写函数

    1.matlab怎么写函数文件~ 1.首先在电脑中打开baimatlab软件. 2.在打开的页面中点击"du主页"栏目下的"新建"按钮.zhi 3.然后在打开的 ...

  9. Matlab中矩阵卷积函数convn

    Matlab中矩阵卷积函数convn 最近在看CNN做手写数字识别,其中CNN中Convolution在图像处理中就涉及了矩阵卷积.因为博主有了奥本海姆<信号与系统>中一维卷积的基础,这里 ...

  10. Matlab中常见实用函数(敲代码碰到的)

    目录 1.norm函数 2.varargin函数(varargout) 3.nargout函数(nargin) 4.ndgrid函数 5.ndims函数 6.surface函数 7.gcbf函数 8. ...

最新文章

  1. 继承和多态 3.0 -- 菱形继承
  2. 万字长文总结机器学习的模型评估与调参 | 附代码下载
  3. Uploadify jquery+falsh+UploadHandler.ashx
  4. 关于Android的一些设计
  5. Arduino生成ATmega8的运行程序并下载
  6. java8编译_为什么在Java7中编译而在Java8中编译?
  7. 【机器学习入门到精通系列】机器学习系统设计(Precision Recall)
  8. 使下拉框某项不可选的方法
  9. Python-OpenCV 处理图像(二)(三):滤镜和图像运算 图像像素点操作
  10. VC调试信息输出 TRACE宏
  11. Learning python学习总结之字符串方法
  12. JsonBuilder初出茅庐
  13. 【Envi风暴】Envi 5.3 SP1经典安装手把手图文教程(含补丁文件)
  14. 【C++grammar】名字隐藏与重定义
  15. pytorch深度学习之音频librosa库与torchaudio库的安装与使用(windows和ubuntu)
  16. web开发中的计算机网络知识——应用层
  17. 当js中的for循环遇到延时器或者定时器时需要注意的问题(这里有个大坑)
  18. 南阳理工学院计算机acm,南阳理工学院计算机学院ACM队成员获奖情况[荣誉记]
  19. 被果树点名做一个Blog游戏,答案如下...接下来换我点名了~~!!!
  20. 计算机pe启动蓝屏怎么办,电脑使用PE系统蓝屏如何修复

热门文章

  1. IRF之BFD-MAD检测
  2. HCIE-Security Day7:6个实验理解目的NAT
  3. H3C ipv6与ipv4(6to4)隧道实验
  4. 游戏开发之C++面向对象模型(C++类中成员变量和成员函数的存储原理及this指针)(C++基础)
  5. HTTP基础(图解HTTP笔记)幕布
  6. rabbitmqBat常用指令
  7. rsync数据同步工具
  8. 关于JS的面向对象总结
  9. Linux使用命令 笔记
  10. fopen()函数的文件模式