本文整理汇总了C++中Col::submat方法的典型用法代码示例。如果您正苦于以下问题:C++ Col::submat方法的具体用法?C++ Col::submat怎么用?C++ Col::submat使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Col
的用法示例。
在下文中一共展示了Col::submat方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initialize
void origNISim::initialize() {
mat W_t(maxVertexId, maxVertexId, fill::zeros);
for (int i = 0; i < maxVertexId; i++) {
int e = origGraphSrc[i + 1], s = origGraphSrc[i];
for (int j = s; j < e; j++) {
W_t(i, origGraphDst[j]) = 1.0;
}
}
double sumRow;
double Degr = 0;
for (int i = 0; i < maxVertexId; i++) {
sumRow = 0;
for (int j = 0; j < maxVertexId; j++)
sumRow += W_t(i, j);
if (sumRow == 0.0) {
printf("node %d has no ingoing edges\n", i);
} else {
for (int j = 0; j < maxVertexId; j++)
W_t(i, j) = W_t(i, j) / sumRow;
}
Degr += sumRow;
}
//start svd
Mat<double> U;
Col<double> s;
Mat<double> V_t;
svd(U, s, V_t, W_t);
mat V = V_t.t();
U = U.submat(0, 0, maxVertexId - 1, Rank - 1);
V = V.submat(0, 0, Rank - 1, maxVertexId - 1);
s = s.submat(0, 0, Rank - 1, 0);
Ku = kron(U, U);//kronecker roduct
mat sigma = kron(s, s);//one column
mat K_sigma = diagmat(sigma);
Kv = kron(V, V);
mat K_vu = Kv * Ku;
mat I(maxVertexId, maxVertexId);
I.eye();
A = inv(inv(K_sigma) - decayFactor * K_vu);
V_r = Kv * vectorise(I);
A.save(Apath);
V_r.save(V_rpath);
Kv.save(Kvpath);
Ku.save(Kupath);
}