我有一个包含 4500 个长度为 1800 的向量的矩阵,为此我需要计算矩阵中每 2 个向量之间的 DTW(动态时间扭曲)距离。
我使用嵌套循环来填充 4500x4500 矩阵的一半(看起来像一个三角形):
matr = zeros(4500,4500); %initializing empty matrix to fill dtw distance
for i=1:4500
x = new(i,:); %new is where the data lies
for j = i+1:4500
y = new(j,:);
matr(i,j) = dtw(x,y);
end
end
问题是代码运行速度非常慢。根据我的计算,在我的电脑上运行需要 4 天。
我不知道矢量化是如何工作的。但是有没有办法可以对我的代码进行矢量化以使其运行得更快?还有一个内置函数,我可以插入我所有的向量并自动生成一个 DTW dist 矩阵吗?