numpy和matlab计算协方差矩阵的不同(matlab是标准的,numpy相当于转置后计算)

matlab是标准的,numpy相当于转置后计算

>> x = [2,0,-1.4;2.2,0.2,-1.5;2.4,0.1,-1;1.9,0,-1.2]

x =

2.0000    0            -1.4000
2.2000    0.2000    -1.5000
2.4000    0.1000    -1.0000
1.9000    0            -1.2000

>> cov(x)

ans =

0.0492        0.0142      0.0192
0.0142        0.0092      -0.0058
0.0192        -0.0058     0.0492

>> xt=x‘

xt =

2.0000     2.2000         2.4000       1.9000
0             0.2000         0.1000       0
-1.4000    -1.5000        -1.0000     -1.2000

>> cov(xt)

ans =

2.9200   3.1600   2.9500   2.6700
3.1600   3.4300   3.1750   2.8850
2.9500   3.1750   3.0100   2.7050
2.6700   2.8850   2.7050    2.4433

np.array(x).T
array([[ 2. , 2.2, 2.4, 1.9],
         [ 0. , 0.2, 0.1, 0. ],
         [-1.4, -1.5, -1. , -1.2]])

>>> print(np.cov(np.array(x).T))
[[ 0.04916667 0.01416667 0.01916667]
[ 0.01416667 0.00916667 -0.00583333]
[ 0.01916667 -0.00583333 0.04916667]]

np.array(x)
array([[ 2. , 0. , -1.4],
          [ 2.2, 0.2, -1.5],
          [ 2.4, 0.1, -1. ],
          [ 1.9, 0. , -1.2]])

>>> print(np.cov(np.array(x)))
[[ 2.92 3.16 2.95 2.67 ]
[ 3.16 3.43 3.175 2.885 ]
[ 2.95 3.175 3.01 2.705 ]
[ 2.67 2.885 2.705 2.44333333]]

时间: 2024-10-09 09:06:26

numpy和matlab计算协方差矩阵的不同(matlab是标准的,numpy相当于转置后计算)的相关文章

opencv2学习:计算协方差矩阵

图像的高级处理中,协方差矩阵计算是必不可少的,但opencv关于这方面的资料却相当少. 首先,利用matlab计算一下,便于比较: >> data=[1,2,3;10,20,30] data = 1 2 3 10 20 30 >> convar=cov(data) convar = 40.5000 81.0000 121.5000 81.0000 162.0000 243.0000 121.5000 243.0000 364.5000 在计算协方差矩阵时,在源数据矩阵中,默认以行为

[zz]计算 协方差矩阵

http://www.cnblogs.com/chaosimple/p/3182157.html http://blog.csdn.net/goodshot/article/details/8611178 一.统计学的基本概念 统计学里最基本的概念就是样本的均值.方差.标准差.首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述: 均值: 标准差: 方差: 均值描述的是样本集合的中间点,它告诉我们的信息是有限的,而标准差给我们描述的是样本集合的各个样本点到均值的距离之平均. 以这两个

Python的扩展接口[3] -> Matlab引擎 -> 使用 Python 调用 Matlab 程序

Python - Matlab 目录 Python-Matlab 引擎 Python-Matlab 数组 Python-Matlab 基本操作 Python-Matlab 调用 m 文件 Matlab的官方文档中介绍了Matlab与其余编程语言之间的引擎接口,其中包括对于Python开放的引擎API,可参考官方教程,其中包括引擎安装,基本使用,以及Python与Matlab之间的数据类型转换及交互. 除了使用官网的Matlab引擎来驱动Matlab外,还可以使用第三方包mlab来进行连接或直接使

matlab与vs混合编程/matlab移植

前言 项目算法中包含了不同编译工具的代码,分别是matlab和VS,需要将二者结合起来,统一在同一个系统工作,此时就要用到matlab和vs混合编程. 在matlab中将.m文件编译生成库文件等供外部的vs程序调用,实现混合编程. 实现步骤 1.matlab中算法代码编译生成库文件.头文件等: 2.创建并配置VS工程: 3.安装配置MCR方便软件移植: 实现环境 matlab版本:matlab2015a vs版本:vs2013 PC系统:win7_x64 实现过程 1.matlab中算法代码编译

matlab提速技巧(自matlab帮助文件)

matlab提速技巧(自matlab帮助文件) 1.首先要学会用profiler.1.1. 打开profiler.To open the Profiler, select View -> Profiler from the MATLAB desktop, or type profile viewer in the Command Window. The MATLAB Profiler opens.在我的机器上是: 在matlab desktop下,Desktop->Profiler.在M文件编

泛函编程(11)-延后计算-lazy evaluation

延后计算(lazy evaluation)是指将一个表达式的值计算向后拖延直到这个表达式真正被使用的时候.在讨论lazy-evaluation之前,先对泛函编程中比较特别的一个语言属性”计算时机“(strict-ness)做些介绍.strict-ness是指系统对一个表达式计算值的时间点模式:即时计算的(strict),或者延后计算的(non-strict or lazy).non-strict或者lazy的意思是在使用一个表达式时才对它进行计值.用个简单直观的例子说明吧: 1 def lazy

先存储,后计算

存储器读取 如果要让计算器自动取数,然后计算:10+5+7+2+6.我们先把要加的数都写入存储器,然后再一个一个取出来相加.如果没有特殊的原因,所有的二进制数都应该从存储器的顶端,也就是地址0000开始一个挨着一个存放. 如下图,假设存储器里已经存放了我们要加起来的5个二进制数: AC是计数器,用以提供访问存储器的地址,所以称为地址计数器.一开始它的内容时0000,每按一次KAC,它就在原来的基础上自动加一,以得到访问下一个存储器单元所需要的地址: AR是一个寄存器,用来临时存放存储器地址,称为

如何在Delphi 中使用 DevExpressVCL的 CxGrid与CxTreeList,编辑某列后计算另一列的值

如何在Delphi 中使用 DevExpressVCL的 CxGrid与CxTreeList,编辑某列后计算另一列的值:比如 输入 单价,数量,计算金额. 参考: 1.  输入 单价,数量,计算金额   http://www.360doc.com/content/13/1212/19/3827427_336665778.shtml 重点是:设置Column 的属性值(Properties),响应事件:cxGridDbTableViewColumnPropertiesChange 获得列的值的方法

动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题

D3.js入门指南 什么是D3?D3是指数据驱动文档(Data-Driven Documents),根据D3的官方定义: D3.js是一个JavaScript库,它可以通过数据来操作文档.D3可以通过使用HTML.SVG和CSS把数据鲜活形象地展现出来.D3严格遵循Web标准,因而可以让你的程序轻松兼容现代主流浏览器并避免对特定框架的依赖.同时,它提供了强大的可视化组件,可以让使用者以数据驱动的方式去操作DOM. D3是这样一个特殊的JavaScript库,它利用现有的Web标准,通过更简单的(