使用Matlab进行曲线相关

时间:2014-07-04 17:33:19

标签: matlab

我有两组数据。它们中的每一个都是矩阵,它们有两列,第一列表示索引x,第二列表示y。我想看看这些数据集的曲线有多相似。换句话说,我需要将这两条曲线的相关性用两个矩阵表示。 感谢帮助。

1 个答案:

答案 0 :(得分:1)

您可能正在寻找corr2函数,该函数计算矩阵中每个相应值的相关系数:

CorrMatrix = corr2(A,B)

plot(x,CorrMatrix);
这是你的意思吗?如果没有,请不要犹豫,询问更多细节。

对于大小不等的矩阵,我认为你只有这些选项:

如果您有信号处理工具箱,则可以使用互相关函数xcorr2,否则您可以执行以下操作:

1)要么计算数据的相关性,要么使用较大矩阵的一部分,以便元素的数量相似:(我使用的值实际上是虚拟值抱歉。)

    clear 
    clc

    % Create dummy matrices of unequal sizes
    x =1:10;
    x2 = 1:6;

    A(:,1) = x;
    A(:,2) = sin(x);

    B(:,1) = x2;
    B(:,2) = cos(x2);

    A,B

    C = corr2(A(1:6,:),B)

A =

    1.0000    0.8415
    2.0000    0.9093
    3.0000    0.1411
    4.0000   -0.7568
    5.0000   -0.9589
    6.0000   -0.2794
    7.0000    0.6570
    8.0000    0.9894
    9.0000    0.4121
   10.0000   -0.5440


B =

    1.0000    0.5403
    2.0000   -0.4161
    3.0000   -0.9900
    4.0000   -0.6536
    5.0000    0.2837
    6.0000    0.9602


C =

    0.9463

或2)

经过一些谷歌搜索后,我看到这里发布了一个类似的问题,其中说你可以玩傅里叶变换来获得相关性:

Cross-correlation in matlab without using the inbuilt function?