type-conversion - spsolve重载和rowvec类型转换一致性
问题描述
使用以下声明:
uvec basis;
rowvec c;
sp_mat B;
表达式 c(basis) 似乎返回 an
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");
解决方案
根据文档,c(basis)
是一个不连续的子矩阵,其中basis
指定c
要使用的元素。
在这种情况下c
是“......解释为一个长向量,元素按列排序”并且“......指定元素的聚合集被视为列向量”,这意味着c(basis)
产生列向量。
推荐阅读
- c++ - OpenCV 3.4.3 中对“cv::String::deallocate()”错误的未定义引用
- adobe - 工作流超时功能在 aem 中不起作用
- recursion - OCaml 函数来评估加法和减法
- android - Firebase Authentication Android:删除任何经过身份验证的用户
- python - Pandas Dataframe 数据是相同的还是新的?
- javascript - 反应:e.target.getAttribute ("id") 工作 20% 的时间?
- python - 如何在 django rest 框架中获取外键字段名称而不是 id
- ibm-cloud-infrastructure - 软层:如何使用 golang 将 vlan 添加到服务器
- c - 在 C 中记录和替换文本文件中的变量
- java - 使用 BigDecimals 计算百分比