Мне нужно назначить весы ребер графа, из следующих работ:Создания матрицы смежности веса
«Быстрые линейные итераций для распределенного усреднения» Л. Его и С. Бойд «Выпуклая Оптимизация графика Лапласианские собственные значения "С. Бойда
У меня есть матрица смежности для моего графика (матрица 50 на 50) с 512 ненулевыми значениями.
У меня также есть вектор 256 на 1 с оптимальными весами.
Для программного обеспечения, которое я использую, мне нужна матрица 50 на 50 с весом края (i, j) в соответствующем положении матрицы смежности (и с противоположным знаком для края (j, i)).
Моя попытка внизу, но я не могу заставить ее работать.
function weights = construct_weight_mtx(weight_list, Adj)
weights = zeros(size(Adj));
positions = find(Adj);
for i=1:length(positions)/2
if Adj(i) == 1
weights(i) = weight_list(i);
end
end
weights = weights - weights';
find(Adj) == find(weights);
end
что не работает? – shamalaia
У вас есть пара проблем, и я могу понять большинство из них, но почему вы вычитаете «веса - веса»? Действительно ли вы хотите, чтобы вес в одном направлении был отрицательным по отношению к весу в противоположном направлении? – beaker
@beaker yes - Я хочу, чтобы весы были отрицательными в противоположном направлении. –