triind2sub

Convert the indices of pdist results to subscripts of its input
53 Downloads
Updated 1 Jun 2017

View License

triind2sub is a helper function for working with the output of pdist. It's analogous to the way ind2sub works with linear indices of arrays to find the corresponding subscripts. Using triind2sub avoids the time and space required by using the squareform function.
Example:

square = [0 0; 0 1; 1 1; 1 0];
% find the distances between the corners of the unit square
dists = pdist(square);
% report the pairs of points with maximum separation
[col, row] = triind2sub(size(square), find(dists == max(dists)))
% report the pairs of points with minimum separation
[col, row] = triind2sub(size(square), find(dists == min(dists)))

Without triind2sub you could instead use

[col, row] = find(squareform(dists) == max(dists))
[col, row] = find(squareform(dists) == min(dists))

to achieve similar results but this approach is more than ten times slower, produces duplicates and requires more memory.

Cite As

James Ashton (2026). triind2sub (https://www.mathworks.com/matlabcentral/fileexchange/63205-triind2sub), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Statistics and Machine Learning Toolbox in Help Center and MATLAB Answers
Version Published Release Notes
1.0.0.0