Итак, я пытаюсь создать матрицу смежности, и я не понимаю разницы между accumarray(matrix+1,1)
и accumarray(matrix,1)
.
Я сделал:
matrix = [ 1 3
4 2
1 3
3 1]
adMatrix1 = accumarray(matrix,1);
adMatrix1=adMatrix1~=0;
adMatrix1 = [0 0 1
0 0 0
1 0 0
0 1 0]
а потом:
adMatrix2 = accumarray(matrix+1,1);
adMatrix2=adMatrix2~=0;
adMatrix2 = [0 0 0 0
0 0 0 1
0 0 0 0
0 1 0 0
0 0 1 0]
Я знаю, что с «матрицей + 1» есть дополнительная строка и столбец с нулями, но я не понимаю, почему вы так делаете. Когда я искал его, согласно этому сообщению, я должен использовать "matrix+1 ", и лучшее объяснение, которое я получил для этого, было то, что "потому что индексация в Matlab начинается с 1".
Я вообще этого не понимаю... если бы я пытался создать матрицу смежности, какой способ был бы правильным? Любая помощь будет принята с благодарностью, спасибо!