【发布时间】:2017-12-05 03:18:41
【问题描述】:
对 Matlab 非常陌生,我通常使用 STATA。
我想使用 nchoosek 函数来获得一个矩阵中向量的总和。
我有一个 21x21 的邻接矩阵,输入为 0 或 1。我想创建一个新矩阵,它将为我提供邻接矩阵中所有可能的三元组之间的输入总和。
新矩阵看起来应该有四个变量,索引 (i, j, k) - 对应于 21x21 中的每个组合。最后一个变量是输入的总和。
我目前的代码是:
C = nchoosek(21,3)
B = zeros(nchoosek(21,3), 4)
for i=1:C
for j=i+1:C
for k=j+1:C
B(?)=B(i, j, k, A(i)+A(j)+A(k)) #A is the 21x21 adj mat
end
end
end
我知道我的赋值语句不正确,因为我没有完全理解“:”运算符的索引角色。任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
您想对所有可能的三元行或列求和吗?或者您想对矩阵中 441 个元素的所有可能组合求和?一个矩阵较小的例子会让这个问题更清楚
标签: matlab matrix combinatorics adjacency-matrix matrix-indexing