基于Matlab的曲线关联
我有两组数据。它们都是一个矩阵,有两列,第一列表示索引x,第二列表示y。我想看看这些数据集的曲线有多相似。换句话说,我需要用两个矩阵表示这两条曲线的相关性。基于Matlab的曲线关联,matlab,Matlab,我有两组数据。它们都是一个矩阵,有两列,第一列表示索引x,第二列表示y。我想看看这些数据集的曲线有多相似。换句话说,我需要用两个矩阵表示这两条曲线的相关性。 谢谢你的帮助 您可能正在寻找corr2函数,该函数计算矩阵中每个对应值的相关系数: CorrMatrix = corr2(A,B) plot(x,CorrMatrix); 这就是你的意思吗?如果没有,请不要犹豫询问更多细节 对于大小不等的矩阵,我认为您只有以下选项: 如果您有信号处理工具箱,则可以使用互相关函数xcorr2,否则可以执行
谢谢你的帮助 您可能正在寻找corr2函数,该函数计算矩阵中每个对应值的相关系数:
CorrMatrix = corr2(A,B)
plot(x,CorrMatrix);
这就是你的意思吗?如果没有,请不要犹豫询问更多细节
对于大小不等的矩阵,我认为您只有以下选项:
如果您有信号处理工具箱,则可以使用互相关函数xcorr2,否则可以执行以下操作:
1) 或者在使用较大矩阵的一部分时计算数据的相关性,以便元素的数量相似:(对不起,我使用的值实际上是伪值。)
或2)
在谷歌搜索之后,我看到这里发布了一个类似的问题,上面说你可以通过傅立叶变换来获得相关性:
我使用的这两个矩阵的行号不同。我可以使用不同行号的相关函数吗?让我再解释一下:在第一列中,我有时间信息,在第二列中,我有特定的时间值。结束时间是相同的,但是其中一个矩阵在时间段之间有更多的信息,因此一个矩阵有更多的行。它是这样的:A=[12;2.35.6]B=[11.21.62;2.42.64.8]。我想看看这些曲线的相似性,它们是这些矩阵的结果。
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