【发布时间】:2015-07-31 20:41:40
【问题描述】:
所以我试图创建一个邻接矩阵,我对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”,会有额外的行和列为零,但我不明白你为什么要那样做。当我查看它时,根据this 的帖子,我应该使用“matrix+1”,对此我得到的最好解释是“因为 matlab 中的索引从 1 开始”。
我根本不明白...如果我试图创建一个邻接矩阵,哪种方式是正确的?任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: matlab matrix adjacency-matrix accumarray