首页 > 解决方案 > MATLAB 中的互相关错误(crosscorr 命令)

问题描述

我的代码有问题。我有两种数据(我们称它们为 a 和 b)。这些是单元格,在每个单元格中我都有双数/数字(见附图)。我想使用循环将 a 的数据与 b 的数据交叉关联。我正在使用以下代码:

for i=1:numel(a)
[c,lag]=crosscorr(a{i},b{i})
r = [0.65, 1];
ii = c >= r(1) & c <= r(2)

% this finds the index of he rows(2) that have x in between 
idx = find(abs(c) > r(1) & abs(c) <= r(2));
% number of intervals with positive check
numIdx{i} = sum(abs(c) > r(1) & abs(c) <= r(2))
Final{i}=(numIdx{i})'
n=Final'

 end

但我意识到结果是错误的,因为由于数字的相似性,我应该有 100% 的相关性。在此处输入图像描述

标签: matlabcommandcross-correlation

解决方案


crosscorr将计算数据的移位版本之间的相关性。这对于同步时间序列或对齐图像的版本很有用。您将只有一个完全匹配的尝试1,其余的可能不相关。要测量对齐样本之间的相关性,您可以使用corr


推荐阅读