zoukankan      html  css  js  c++  java
  • 利用matlab进行协方差运算

    本文全部参考自:

    http://www.cnblogs.com/welen/articles/5535042.html#undefined

    知识点一:

    MATLAB中四个取整函数具体使用方法如下:
    Matlab取整函数有: fix, floor, ceil, round.
    fix
    零方向取整,如fix(-1.3)=-1; fix(1.3)=1;


    floor
    负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;


    ceil
    正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;


    round
    四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。

    知识点二:

    matlab std函数是用来计算标准偏差的一个函数

    std(A)函数求解的是最常见的标准差,此时除以的是N-1。

    注意:此函数命令不能对矩阵求整体的标准差,只能按照行或者列进行逐个求解标准差,默认情况下是按照列。

    在MATLAB主窗口中输入std(A) 回车,结果如下:

    输出的是每一列的标准差。

    std(A,flag):

    这里flag代表的是用哪一个标准差函数,如果取0,则代表除以N-1,如果是1代表的是除以N。

     知识点三:

    协方差公式:

    例子:

    clc;
    clear;
    mySample = fix(rand(10,3)*100);
    dim1 = mySample(:,1);  %所有样本的同一维度
    dim2 = mySample(:,2);
    dim3 = mySample(:,3);
    
    %计算dim1与dim2,dim1与dim3,dim2与dim3之间的协方差
    %参考协方差公式
    conv12 =sum( (dim1-mean(dim1)).*(dim2-mean(dim2)) ) /( size(mySample,1)-1 );
    conv13 =sum( (dim1-mean(dim1)).*(dim3-mean(dim3)) ) /( size(mySample,1)-1 );
    conv23 =sum( (dim2-mean(dim2)).*(dim3-mean(dim3)) ) /( size(mySample,1)-1 );
    
    %计算各个维度的方差
    var1 = std(dim1)^2
    var2 = std(dim2)^2
    var3 = std(dim3)^2
    
    %----------------------------------
    %使用标准函数cov进行验证
    cov(mySample)

    测试结果:

    使用Matlab的cov函数直接计算样本的协方差矩阵计算的结果,和之前的数据填入矩阵后的结果完全相同。

  • 相关阅读:
    Apache服务器的安装与配置
    改变HTML下拉框选项的方法
    Struts2性能调优拦截器
    上传文件到服务器的Linux命令
    Strut2判断是否是AJAX调用
    MySQL自动关闭连接导致DBCP报错
    Tomcat6添加MySQL的JNDI数据源
    Linux查找命令
    SqlServer与Oracle的分页(收集整理) 中庸
    struts2入门
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/5840542.html
Copyright © 2011-2022 走看看