matlab 除了cov,matlab中cov的处理方法
前几日一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的处理方法相关推荐
- ndarray python 映射_在Matlab的delsq演示中,用numpy方法对向量映射进行ndarray处理?...
下面复制了演示.G中的编号是不同的,但数字只是标签(标签网格让我困惑).在import numpy as np from scipy import sparse from scipy.sparse i ...
- matlab在电力电子的应用,MATLAB在电力电子技术中的应用
MATLAB是目前最为流行的仿真软件,它可以应用在许多领域.分析了使用MATLAB实现电力电子技术中的电路仿真的方法,并给出整流和逆变电路结构框图及仿真结果. 第2 8卷 第 5期 运城学院学报 J ...
- Matlab中cov函数
Matlab中cov函数详细解读 1.向量的方差与协方差矩阵 cov(x) 求向量x的方差. cov(x)为一个数值,数值大小计算公式为S(x). cov(x,y) 求向量x与y的协方差矩阵. cov ...
- Matlab中cov函数详细解读
1.向量的方差与协方差矩阵 cov(x) 求向量x的方差. cov(x) 为一个数值,数值大小计算公式为S(x). cov(x,y) 求向量x与y的协方差矩阵. cov(x,y) 为2*2矩阵, ...
- 用matlab求残余误差,matlab在测量误差分析中的应用
matlab在测量误差分析中的应用 MATLAB在测量误差分析中的应用 在技术测量中,按照误差的特点与性质,误差可分为:系统误差,粗大误差和随机误差.在假定不含有系统误差的情况下,可借助MATLAB对 ...
- matlab 求取矩阵中值,matlab中取矩阵中指定列的值组成新矩阵
matlab 矩阵中怎么加入冒号,比如我想矩阵A的第一列都为"1:" A(:,1)='1:';再问:不行的再答:用结构矩阵或者单元矩阵试试吧. 诚教:matlab中取矩阵的其中几行 ...
- matlab在输电线路故障测距中应用,Matlab在输电线路故障测距中的应用.doc
Matlab在输电线路故障测距中的应用 毕业设计(论文) 题目 Matlab在输电线路故障测距中的应用 二级学院 电子信息与自动化学院 专 业 电气工程及其自动化 班 级 110070401 学生姓名 ...
- 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 ...
- “输入字符不是 MATLAB 语句或表达式中的有效字符”的解决办法
写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 问题描述: 输入字符不是 MATLAB 语句或表达式中的有效字符 原因分析: 标点符号:采用了中文的标点符号 解决方案: ...
最新文章
- 统计文件种类数+获取子shell返回值的其它方法
- [Beta]第五次 Scrum Meeting
- 如何实现Conditional Include
- vue.js 组件之间传递数据
- 关于Juniper ScreenOS MIP/VIP地址说明
- oracle 数字不用,oracle – Plsql将数字(货币)拼写为意大利货币而不用硬编码的翻译编号...
- 温州大学《机器学习》课程代码(三)逻辑回归
- vb mysql ado_VB中的ADO数据对象编程详解
- 【模拟】聊天服务器的外部流量
- 【缓存】redis的基本使用
- Python Imaging Library: ImageEnhance Module(图像增强模块)
- Android应用程序组件间通信(二)——IntentFilter类简介
- 算法知识点——(3)监督学习——SVM
- 进阶:案例三: Upload File using WebDynpro
- 《R语言初学指南》一导读
- 服务器建文件夹,服务器建立文件夹
- 基于SDN的访问控制模块实现
- 3dsMax学习笔记08_VRayMtl材质制作陶瓷材质
- Git - GitWeb
- 苹果手机怎么解屏幕锁_小米手机刷机第1步:解BL锁教程