具有以下声明:
uvec basis;
rowvec c;
sp_mat B;
表达式c(basis)似乎返回一个
arma::subview_elem1<double, arma::Mat<unsigned int> >
,以下呼叫似乎可以正常工作:
vec pi_B = spsolve(trans(B), c(basis), "superlu");
spsolve
如何解决此输入?
还vec pi_B = spsolve(trans(B), trans(c(basis)), "superlu");
引发尺寸不匹配错误,但运行以下命令:
rowvec d;
vec pi_B2 = spsolve(trans(B), trans(d), "superlu");
答案 0 :(得分:0)
根据documentation,strtol
是不连续的子矩阵,其中c(basis)
指定要使用basis
中的哪些元素。
在这种情况下,c
被“ ...解释为一个长向量,按元素逐列排序”,并且“ ...指定元素的集合被视为列向量”,表示c
产生列向量。