【发布时间】:2014-07-04 17:33:19
【问题描述】:
我有两组数据。它们每个都是一个矩阵,它们有两列,第一列代表索引 x,第二列代表 y。我想看看这些数据集的曲线有多相似。换句话说,我需要用两个矩阵表示这两条曲线的相关性。 感谢帮助。
【问题讨论】:
标签: matlab
我有两组数据。它们每个都是一个矩阵,它们有两列,第一列代表索引 x,第二列代表 y。我想看看这些数据集的曲线有多相似。换句话说,我需要用两个矩阵表示这两条曲线的相关性。 感谢帮助。
【问题讨论】:
标签: matlab
您可能正在寻找计算矩阵中每个对应值的相关系数的 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?
【讨论】: