Si vous n'avez pas la boîte à outils de statistiques, ce n'est pas la bonne fonction à utiliser. Si vous le faites, alors c'est l'une des nombreuses fonctions que vous pourriez utiliser. Vous pouvez aussi faire quelque chose comme:
sz = size(A);
A1 = reshape(A, [1 sz]);
A2 = permute(A1, [2 1 3]);
D = sqrt(sum(bsxfun(@minus, A1, A2).^2,3));
Ce calcule la distance entre deux points quelconques explicitement (donc, fait deux fois plus de travail, et prend deux fois plus d'espace: au lieu de 3180 6400 éléments). Cependant, il est plus facile de rechercher la distance entre deux points.
Vous pouvez ensuite comparer le résultat de ce calcul avec celui que vous obtenez de pdist
, et vous convaincre si c'est la même chose. Soyez prudent - pdist
renvoie un vecteur par défaut, vous devez donc consulter la documentation pour vous assurer que vous comprenez comment l'interpréter. La fonction squareform
peut vous aider:
difference = sum(abs(squareform(D)) - pdist(A, 'euclidean'));
Cela dépend de ce que vous voulez ... et ce que votre définition de « la bonne fonction » est ...
Avez-vous essayé? –
Une seule façon de le savoir: Essayez-le. –
oui, mais je ne sais pas si c'est correct ... – gabboshow