20サンプル*40000ポイントのデータは下記の様に40000行20列のデータとして表せます。比較対象は全組み合わせである点を見落としていたので回答を変更しました。
% | a b c
% ----------
% 1 | A A B
% 2 | C A B
% 3 | A C C
data = randi(3,40000,20); % 20サンプル*40000ポイントのサンプルデータ
indx = nchoosek(1:size(data,2),2); % 比較する列の組み合わせ
cmp1 = data(:,indx(:,1)); % 比較データその1
cmp2 = data(:,indx(:,2)); % 比較データその2
result = cmp1 == cmp2; % 元データと循環シフトしたデータを比較
size(result) % 結果は190比較分*40000ポイントの行列になる(1:一致、0:不一致)