如何在boost :: numeric :: ublas矩阵上应用1级blas? 例如,我想计算所有条目的最大条目或总和。 在矩阵中使用norm_1或norm_inf不会产生编译器错误,但返回(对我来说)任意结果。 我使用升压1.42在矩阵中应用Boost UBLAS blas-1
2
A
回答
3
norm_inf
上的矩阵计算由在下层向量空间中的无穷范数的矩阵范数induced。这恰好是矩阵的最大绝对行总和。
如果你看一下汉纳斯的例子,矩阵的最后一行(I = 99,J = 0 ... 99)包含:
9900, 9901, 9902, ... , 9999
如果你总结这些条目,你得到994950
,这正是norm_inf
产生的结果。
1
一个最小的例子是这样的:
#include<iostream>
#include<boost/numeric/ublas/matrix.hpp>
using namespace boost::numeric::ublas;
int main(){
int l = 100;
matrix<double> m(l,l);
for (int i = 0; i < l; ++i) {
for (int j = 0; j < l; ++j) {
m(i,j)=i*l+j;
}
}
std::cout << norm_inf(m)<<std::endl;
return 0;
}
它应该给99,但单产994950.
这是一个班轮,至少解决了给定的任务:
float infnorm = accumulate(m.data().begin(),m.data().end(),0,std::max<double>);
+0
我不认为单线实际工作;提问者想要最大*绝对*条目。 –
相关问题
- 1. Boost uBLAS矩阵参考
- 2. Boost uBLAS矩阵/载体产品
- 3. UMFPACK和BOOST的uBLAS库稀疏矩阵
- 4. 使用迭代器遍历boost :: ublas矩阵
- 5. uBLAS慢矩阵 - SparseVector乘法
- 6. boost :: uBLAS如何处理矩阵的嵌套产品?
- 7. 使用C++ Boost的矩阵分割
- 8. 如何使用uBLAS转置矩阵?
- 9. Boost :: uBLAS vs Eigen
- 10. 在辅助类中访问boost提升矩阵的子片段
- 11. boost压缩矩阵基础
- 12. 如何创建const boost矩阵?
- 13. 问题与提升ublas矩阵产品
- 14. GDB无法显示提升uBLAS矩阵?
- 15. C++矩阵变换。提升uBLAS和double *?
- 16. ublas矩阵表达教程/示例
- 17. 用swig包装boost :: ublas
- 18. 元素明智的操作与boost C++ ublas矩阵和向量类型
- 19. 如何在ublas矩阵中设置基础索引?
- 20. C++将输入转换为类时的Boost矩阵错误
- 21. ublas:将ublas :: vector作为ublas :: matrix_expression包装
- 22. 如何将矩阵追加到另一个矩阵的末尾? (当使用C Boost库++)
- 23. 我应该在C++中使用矩阵[] [max]还是**矩阵?
- 24. 的boost :: multi_array中含有方的boost :: uBLAS库::不同尺寸
- 25. 将OpenGL着色器的uBLAS矩阵传递给我
- 26. 查找单元格的周围值的UBLAS矩阵?
- 27. 处理提升ublas稀疏或密集矩阵的API
- 28. boost :: numeric :: ublas :: vector <double>和double []
- 29. 编译错误 - boost :: numeric :: ublas :: coordinate_matrix
- 30. C++ boost ublas +单位尺寸限制
很高兴知道。这是记录在哪里?我没有找到它。 你知道如何计算所有条目的最大值吗?使用你的帖子可以完成一个重塑,但这似乎有点奇怪。 –
@Andreas:假设矩阵在内存中是连续布局的(很可能,但我不知道uBLAS是否能保证这一点 - 其他人将不得不考虑这一点),我们可能会构建一个矢量对象由相同的存储支持,并调用'norm_inf'。丑陋,但我想它会奏效。 –
不,我找不到任何实际的文档,但它是有道理的,并匹配行为。实际上,粗略的搜索根本没有发现很多关于uBLAS的文档。 –