前几日一MM问我matlab中的cov函数是如何实现的,笔算的结果和电脑算的结果怎么不一样……于是两个人一起算了下,确实结果不太一样(其实差好远)……于是决定花时间研究了一下……于是花了不少时间才研究出来。这里把这个问题总结一下,以给后人前车之鉴。

算法实现

clc;

clear all;

M = 5

N = 3;

% 生成一个M*N的随机原始矩阵

OriginMatrix = rand( M, N );

% 使用自带的cov函数计算相关矩阵

CovMatrix = cov( OriginMatrix );

MeanArray = mean( OriginMatrix );

MeanMatrix = ones( M, 1 ) * MeanArray;

% 得到每列减去每列均值的的矩阵

OriginSubMean = OriginMatrix - MeanMatrix;

% 计算出相关矩阵

ifM == 1

CovMatrixComputed = OriginSubMean' * OriginSubMean / M;

else

CovMatrixComputed = OriginSubMean' * OriginSubMean / ( M-1 );

end

如何理解

matlab在计算相关矩阵时,把每一列的数作为一个随机变量的样本,每一行作为一个这几个随机变量的联合样本,即第i个随机变量取第k行的样本值时,第j个随机变量也取第k行的样本值。利用这个性质,我们就可以用协方差的公式代入来计算协方差矩阵了。

然而,由于矩阵中给出只是这些随机变量的样本,根据概率论的知识我们知道,由于我们不知道这些随机变量的概率分布(或联合概率分布),我们是不可能计算出这些随机变量的期望、方差或是协方差的,而只能计算出它们的一个无偏估计,即样本均值、样本方差与样本协方差。其计算公式如下所示:

matlab中的解释

cov(x), if X is a vector, returns the variance. For matrices, where each row is an observation, and each column is a variable, cov(X) is the covariance matrix. diag(cov(X)) is a vector of variances for each column, and sqrt(diag(cov(X))) is a vector of standard deviations. cov(X,Y), where X and Y are matrices with the same number of elements, is equivalent to cov([X(:) Y(:)]).

cov(x) or cov(x,y) normalizes by N-1, if N>1, where N is the number of observations. This makes cov(X)the best unbiased estimate of the covariance matrix if the observations are from a normal distribution. ForN=1, cov normalizes by N.

原文出处  http://blog.csdn.net/xiaojidan2011/article/details/8138775

matlab 除了cov,matlab中cov的处理方法相关推荐

  1. ndarray python 映射_在Matlab的delsq演示中,用numpy方法对向量映射进行ndarray处理?...

    下面复制了演示.G中的编号是不同的,但数字只是标签(标签网格让我困惑).在import numpy as np from scipy import sparse from scipy.sparse i ...

  2. matlab在电力电子的应用,MATLAB在电力电子技术中的应用

    MATLAB是目前最为流行的仿真软件,它可以应用在许多领域.分析了使用MATLAB实现电力电子技术中的电路仿真的方法,并给出整流和逆变电路结构框图及仿真结果. 第2 8卷 第 5期 运城学院学报 J ...

  3. Matlab中cov函数

    Matlab中cov函数详细解读 1.向量的方差与协方差矩阵 cov(x) 求向量x的方差. cov(x)为一个数值,数值大小计算公式为S(x). cov(x,y) 求向量x与y的协方差矩阵. cov ...

  4. Matlab中cov函数详细解读

    1.向量的方差与协方差矩阵 cov(x)  求向量x的方差. cov(x) 为一个数值,数值大小计算公式为S(x). cov(x,y)  求向量x与y的协方差矩阵. cov(x,y) 为2*2矩阵, ...

  5. 用matlab求残余误差,matlab在测量误差分析中的应用

    matlab在测量误差分析中的应用 MATLAB在测量误差分析中的应用 在技术测量中,按照误差的特点与性质,误差可分为:系统误差,粗大误差和随机误差.在假定不含有系统误差的情况下,可借助MATLAB对 ...

  6. matlab 求取矩阵中值,matlab中取矩阵中指定列的值组成新矩阵

    matlab 矩阵中怎么加入冒号,比如我想矩阵A的第一列都为"1:" A(:,1)='1:';再问:不行的再答:用结构矩阵或者单元矩阵试试吧. 诚教:matlab中取矩阵的其中几行 ...

  7. matlab在输电线路故障测距中应用,Matlab在输电线路故障测距中的应用.doc

    Matlab在输电线路故障测距中的应用 毕业设计(论文) 题目 Matlab在输电线路故障测距中的应用 二级学院 电子信息与自动化学院 专 业 电气工程及其自动化 班 级 110070401 学生姓名 ...

  8. dst matlab,DSTcode DST跟踪算法MATLAB代码,复杂环境中仿多目标 实现的单 Other systems 其他 272万源代码下载- www.pudn.com...

    文件名称: DSTcode下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 82 KB 上传时间: 2017-03-17 下载次数: 0 提 供 者: Mar ...

  9. “输入字符不是 MATLAB 语句或表达式中的有效字符”的解决办法

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 问题描述: 输入字符不是 MATLAB 语句或表达式中的有效字符 原因分析: 标点符号:采用了中文的标点符号 解决方案: ...

最新文章

  1. 统计文件种类数+获取子shell返回值的其它方法
  2. [Beta]第五次 Scrum Meeting
  3. 如何实现Conditional Include
  4. vue.js 组件之间传递数据
  5. 关于Juniper ScreenOS MIP/VIP地址说明
  6. oracle 数字不用,oracle – Plsql将数字(货币)拼写为意大利货币而不用硬编码的翻译编号...
  7. 温州大学《机器学习》课程代码(三)逻辑回归
  8. vb mysql ado_VB中的ADO数据对象编程详解
  9. 【模拟】聊天服务器的外部流量
  10. 【缓存】redis的基本使用
  11. Python Imaging Library: ImageEnhance Module(图像增强模块)
  12. Android应用程序组件间通信(二)——IntentFilter类简介
  13. 算法知识点——(3)监督学习——SVM
  14. 进阶:案例三: Upload File using WebDynpro
  15. 《R语言初学指南》一导读
  16. 服务器建文件夹,服务器建立文件夹
  17. 基于SDN的访问控制模块实现
  18. 3dsMax学习笔记08_VRayMtl材质制作陶瓷材质
  19. Git - GitWeb
  20. 苹果手机怎么解屏幕锁_小米手机刷机第1步:解BL锁教程

热门文章

  1. 圆形标定板_一种圆阵列标定板特征点提取方法与流程
  2. 基于FPGA的幅频均衡带通滤波器的设计
  3. 直播预告丨Oracle数据库网络及存储技术详解-2022云和恩墨大讲堂
  4. 计算机基础教案文档,计算机基础知识教案
  5. 直播平台源码搭建教程直播原理与web直播实战
  6. 获取mp3文件的采样率
  7. 2019.7.2【PMP项目管理er日报】
  8. WP7平衡球游戏开发教程(二)--在XNA渲染渲染Farseer物理对象
  9. 清理iNotePad的流氓病毒,iNote News垃圾弹窗
  10. FBI教你读心术-1节