矩阵乘以标量零
Multiplication of a matrix by scalar zero
本文关键字:标量 更新时间:2023-10-16
我正在做一个 c++ 项目来做一些计算。我正在使用提升库来执行这些计算。我有一个奇怪的错误(结果不正确或程序冻结(。当我检查发生了什么时,我意识到在创建一个双精度矩阵并将矩阵乘以 0(以确保所有内容都等于零,例如:
matrix<double> *A=new matrix<double>(10,100);
(*A)*=0.0;
我的矩阵并不总是由严格的 0 填充(这是在一个称为 LOT 的方法中,指针被正确删除,我检查了我没有任何内存泄漏(,有时是负零 (-0.0( 甚至 NaNS!!然后我意识到使用 clear(( 方法会将所有值设置为默认值(双精度为 0(。所以即使我有解决方案,这也是非常奇特的!像往常一样,问题是:我做错了什么(更有可能(还是库中有错误(不太可能(?
PS:我确实使用英特尔编译器(版本 2015(
如 Boost Libraries 中所述,
matrix (size_type size1, size_type size2): Allocates an uninitialized matrix that holds size1 rows of size2 elements.
所以你正在使用一个未初始化的矩阵,导致那些奇怪的错误。首先创建一个零矩阵或单位矩阵:
identity_matrix<double> matrix(3); //create a 3x3 identity matrix
zero_matrix<double> matrix(3, 3); //create a 3x3 zero matrix
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 为什么 std::optional::operator=(U&&) 要求你是非标量类型?
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 特征中的自定义标量类型
- 为什么从具有较大阵列的 SIMD 内部函数中获得的相对加速比标量更大?
- 如何在C++中将一个特征张量乘以另一个特征张量的标量和?
- 标量类型的特征模板无法编译固定大小的子矩阵操作
- 结构 init:字符**类型的标量初始值设定项两边的大括号
- 将标准::时间点乘以标量
- 请求从"点*"转换为非标量类型"点"
- 循环中标量乘积的自动矢量化
- 转换为非标量误差是什么意思?我该如何解决?
- 标量类型上的特征模板
- 迭代器和标量对象之间的未定义行为有什么区别吗?
- C++中的标量初始值设定项错误两边的大括号
- MSVC 编译器/链接器何时合成标量/矢量删除析构函数
- 通过运算符使用标量参数重写来修改类成员
- 错误:在 C++ 中从 'Counter' 转换为非标量类型'CountDn'
- 特征:从数组类型中获取标量类型是否记录?
- 错误:请求从"Mstream"转换为非标量类型"std::string {aka std::basic_string<char>}"