Мне известно, что pdist (X, distance) в Matlab принимает (nxd) матрицу точек и вычисляет попарные расстояния между ними. Я также знаю, что у него есть дополнительная опция для вычисления расстояния в косинусе, если в матрице есть векторы, а не точки.Быстрый расчет парного косинусного направленного расстояния между точками в матрице (n x d x t)
То, что я хотел бы сделать, это взять (nxdxt) матрицу, которая удерживает различные позиции выборок в течение времени t и эффективно/быстро вычислить косинусное направленное расстояние между всеми парами/всеми кадрами, где av (t) определяемое как направление, вычисляемое p (t + 1) - p (t), а p (t) относится к строке M (p,:, t).
Очевидно, что я не хочу использовать циклы, если вам может помочь. Какие-либо предложения?
Любая помощь очень ценится.
Вы хотите рассчитать расстояние между всеми возможными парами, так что '(n * t) (n * t - 1)/2' полные расстояния? Это поможет, если вы уточните свой второй абзац. –
Нет ... Я хочу рассчитать расстояние между всеми парами векторов Vi и Vj ... где вектор Vi = pi (t + 1) - pi (t) ... и pi (t) сохраняется как столбец А (:, я, т). т. е. матрица А просто сохраняет все позиции всех точек с течением времени. НЕ НАПРАВЛЯЮЩИЕ ВЕКТОРЫ. – oracle3001