matlab中两个矩阵之间的相关性

matlab中两个矩阵之间的相关性,matlab,matrix,correlation,Matlab,Matrix,Correlation,嗨 我想在上面显示的两个数据集之间创建一个相关矩阵,该矩阵将忽略零的任何外观(在上面的图片中,绿色),谁知道产生平滑结果的最有效方法是什么 是否有任何相关方法可以逐点识别相似性,从而使结果具有原始矩阵的“形状” 谢谢你 注意:我没有matlab统计工具箱 2. Is there any correlation method that can identify the similarity point by point and by thus the results will have

  • 我想在上面显示的两个数据集之间创建一个相关矩阵,该矩阵将忽略零的任何外观(在上面的图片中,绿色),谁知道产生平滑结果的最有效方法是什么

  • 是否有任何相关方法可以逐点识别相似性,从而使结果具有原始矩阵的“形状”

  • 谢谢你

    注意:我没有matlab统计工具箱

    2. Is there any correlation method that can identify the similarity point by 
       point  and by thus the results will have the "shape" of the original matrix?
    
    让我们从你的第二点开始,因为它更清楚,你想要什么。您需要对两个图像进行逐点比较,例如,
    a
    B
    。这归结为测量两个标量
    a
    b
    的相似性。假设这些标量来自区间
    [0,Q]
    ,其中
    Q
    取决于图像格式(
    Q==1
    Q==255
    在Matlab中很常见)

    现在,最简单的距离度量是差值
    d=|a-b
    。您可能希望将其规范化为
    [0,1]
    ,并反转值以度量相似性而不是距离。在Matlab中:

    S = 1 - abs(A - B) / Q;
    
    您提到忽略图像中的零。好吧,你需要定义,你期望零的相似度是多少。一种可能性是将相似度设置为零,只要一个像素为零:

    S(A == 0 | B == 0) = 0;
    
    您也可以说相似性未定义,并将相似性设置为
    NaN

    S(A == 0 | B == 0) = nan;
    
    当然,你也可以说10和11之间的不匹配和100和110之间的不匹配一样糟糕。在这种情况下,您可以采用与总和
    a+b
    相关的距离(称为Bray-Curtis归一化或归一化欧几里德度量)

    如果两个矩阵在同一位置都有零值像素,则会遇到问题。同样,也有几种可能性:你可以用一个小的正值来增加总和
    alpha
    (例如
    alpha=1e-6
    ),防止被零除:
    D=abs(a-B)。/(alpha+a+B)

    另一个选项是忽略
    D
    中的无限值,并在此处添加“零处理”,即

    D = abs(A - B) ./ (A + B)
    D(A == 0 | B == 0) = nan;
    S = 1 - D / max(D(:));
    
    你看,有很多可能性

    1. I would like to create a correlation matrix [...]
    
    您应该明确地考虑这一点,并对计算内容做出更好的描述。如果矩阵的大小为
    m x m
    ,则有
    m^2
    变量。由此,您可以计算相关矩阵
    m^2 x m^2
    ,该矩阵测量每个像素与其他像素的相关性。该矩阵在对角线中也将具有最大值(这些是方差)。然而,如果你只有两种认识,我不建议计算相关矩阵

    另一个选项是测量两个图像中行或列的相似性。然后得到相关系数的向量
    1xm


    但是,我不知道如何从两个大小为
    mxm
    的输入中计算出大小为
    mxm
    的相关矩阵,这两个输入在对角线中具有最大值。

    要获得一般相关系数,我将使用
    corr2

    r=corr2(A,B)

    返回相关系数r 在A和B之间,其中A和B是相同的矩阵或向量 尺寸。r是一个标量双精度


    大致上,我认为这只是在计算
    corr(A(:),B(:)

    我不确定我是否在跟踪你。你说的“忽略任何零的出现”是什么意思?如果你看看上面的图片,除了图片左上角的“零”之外,这些零都是分散在周围的,我不想从用于相关性的数据中排除它们。1中结果的维数应该是多少。?我这样问是因为一个相关性通常需要两个向量,并从中计算出一个标量。@Mehrwolf,结果应该是一个m*m矩阵,其对角线系数最高。m是列
    1. I would like to create a correlation matrix [...]