そのため、隣接行列を作成しようとしていますが、 と の違いについて混乱してい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]
「matrix+1」では余分な行とゼロの列があることは知っていますが、なぜそのようにするのか理解できません。調べたところ、この投稿によると、「matrix + 1」を使用する必要があり、そのために得た最良の説明は、「matlab のインデックス作成は 1 から始まるため」というものでした。
まったくわかりません...隣接行列を作成しようとした場合、どの方法が正しいですか? どんな助けでも大歓迎です、ありがとう!