У меня есть вектор идентификаторов группы:
groups = [ 1 ; 1; 2; 2; 3];
, который я хочу использовать для создания матрицы, состоящей из 1, если i-й и j-й элементы находятся в одной группе,и 0 в противном случае. В настоящее время я делаю это следующим образом:
n = size(groups, 1);
indMatrix = zeros(n,n);
for i = 1:n
for j = 1:n
indMatrix(i,j) = groups(i) == groups(j);
end
end
indMatrix
indMatrix =
1 1 0 0 0
1 1 0 0 0
0 0 1 1 0
0 0 1 1 0
0 0 0 0 1
Есть ли лучшее решение, позволяющее избежать неприятного двойного цикла? Спасибо!