correlation matrix labels

Assume I have:
names = { 'one', 'two', 'three' };
How could i generate the matrix:
'one vs one' 'one vs two' 'one vs three'
'two vs one' 'two vs two' 'two vs three'
'three vs one' 'three vs two' 'three vs three'
(without a nested for loop of course)

 Accepted Answer

names = {'one', 'two', 'three'};
middle = {' vs '};
N = length(names);
reshape(strcat({names{repmat(1:N, N, 1)}}, middle, {names{repmat(1:N, N, 1)'}}), N, N)'
ans =
'one vs one' 'one vs two' 'one vs three'
'two vs one' 'two vs two' 'two vs three'
'three vs one' 'three vs two' 'three vs three'

More Answers (0)

Categories

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!