问题标签 [ublas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 填充提升向量或矩阵
是否有一种单一表达式的方式来为提升矩阵或向量的所有元素分配一个标量?我试图找到一种更紧凑的表示方式:
以下不起作用:
c++ - 关于 Boost UBLAS 的 C++ 问题
Boost UBLAS 库是否具有用于求解方程组的内置求解器?该文档暗示所有 ublas 求解器例程都要求矩阵已经是三角形形式。
但是,如果矩阵不是三角形的,那么 ublas 中是否有任何东西可以减少矩阵然后进行反向替换来求解方程组?
c++ - UBLAS 矩阵查找单元格的周围值?
我正在寻找一种优雅的方式来实现这一点。基本上我有amxn矩阵。其中每个单元格代表像素值,行和列代表图像的像素行和像素列。
因为我基本上映射了 HDF 文件中的点,以及它们相应的像素值。我们基本上有很多空像素。其中填充为 0。
现在我需要做的是取周围细胞的平均值,以平均出缺失细胞的像素值。
现在我可以暴力破解它,但它很快就会变得丑陋。有什么优雅的解决方案吗?
c++ - 从 C 数组初始化 ublas 向量
我正在使用 C++ ublas 库编写 Matlab 扩展,我希望能够从 Matlab 解释器传递的 C 数组中初始化我的 ublas 向量。如何在不(为了提高效率)显式复制数据的情况下从 C 数组初始化 ublas 向量。我正在寻找以下代码行的内容:
一般来说,是否可以std::vector
从数组初始化 C++?像这样的东西:
但是初始化不会复制数据。在这种情况下,输出是
但我希望输出相同,其中更新 C 数组会更改 C++ 向量指向的数据
c++ - 循环遍历 uBlas 稀疏矩阵的非零元素
我有以下包含O(N)
元素的稀疏矩阵
我可以编写一个蛮力双循环来及时检查所有条目,O(N^2)
如下所示,但这太慢了。
如何及时循环仅非零条目O(N)
?对于每个非零元素,我想访问它的值和索引i,j
。
c++ - 包含 boost::numeric::ublas::matrix 的类的运算符重载
我有一个类,其中包含一些 boost::numeric::ublas::matrix。我想重载类的运算符 (+-*/=),以便我可以用一个语句对一组矩阵进行操作。
然而,这似乎需要我的类的临时实例来携带值而不修改原始类。然而,这对我来说很有意义,当我在函数中创建一个新实例并返回它时,我得到:
警告:返回对局部变量“temp”的引用
我对 c++ 很陌生,运算符重载的例子似乎都返回了新的临时对象。我还想避免实例化新矩阵的开销,这导致我循环遍历所有元素。我该怎么办?性能是一个问题。
game-engine - ublas::bounded_vector<> 正在调整大小?
现在,说真的……我会避免在这里使用坏词,因为我们正在谈论 Boost 研究员。这么看肯定是我的错,但我不明白为什么,所以在这里问一下;也许有人可以在这件事上启发我。它是这样的:
uBLAS 有一个很好的类模板,叫做bounded_vector<>
它用于创建固定大小的向量(或者我认为是这样)。
来自有效的 uBLAS wiki ( http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Effective_UBLAS ):
默认的 uBLAS 向量和矩阵类型是可变大小的。许多线性代数问题涉及具有固定大小的向量。2和3元素在几何中很常见!固定大小的存储(类似于 C 数组)可以有效地实现,因为它不涉及与动态存储相关的开销(堆管理)。uBLAS 通过将向量/矩阵的底层存储从默认的“unbounded_array”更改为“bounded_array”来实现固定大小。
好吧,这个bounded_vector<>
东西是用来让你免于将向量的底层存储指定为bounded_array<>
指定大小的a。在这里我问你:看起来这个有界向量的东西对你来说不是固定大小的吗?好吧,它没有。
起初我觉得被 wiki 背叛了,但后来我重新考虑了“有界”的含义,我认为我可以让它过去。但是如果你和我一样(我仍然不确定),仍然想知道这是否有意义,我发现bounded_vector<>
实际上可以调整大小,它可能不会大于指定为模板参数的大小。
- 那么,首先,您认为他们有充分的理由不制作真正的 >>固定<< 大小向量或矩阵类型吗?
- 您是否认为可以将这个有界(而不是固定大小)向量“出售”给我的库的用户作为“固定大小”向量替换,甚至命名为“Vector3”或“Vector2”,例如uBLAS wiki 有效吗?
- 你认为我应该为此目的以某种方式实现一个固定大小的向量吗?如果是这样,怎么做?(抱歉,我对 uBLAS 真的很陌生;今天刚试过)
- 我正在开发一款 3D 游戏。uBLAS 是否应该用于其中涉及的计算(“嘿,几何学!”,根据 Effective uBLAS wiki)?如果没有,你会建议什么替代品?
- 编辑
以防万一,是的,我已阅读此警告:
应该注意的是,这只改变了 uBLAS 用于 vector3 的存储。uBLAS 仍将使用所有相同的算法(假设大小可变)来操作向量3。实际上,这似乎对速度没有负面影响。上面的运行速度与不使用 uBLAS 的手工制作的 vector3 一样快。唯一的负面影响是 vector3 总是存储一个“大小”成员,在这种情况下是多余的[或者不是吗?我是说......]。
我看到它使用相同的算法,假设大小可变,但是如果操作要实际更改其大小,不应该停止(断言)吗?
哦,拜托,这不就是单纯的背叛吗?
c++ - ublas 矩阵表达式教程/示例
我正在尝试实现某些矩阵运算,但我迷失在 ublas 库的内部。是否有关于如何实现新的 ublas 矩阵表达式的教程或示例等资源?
谢谢
c++ - 如何在 ublas 矩阵中设置基本索引?
我在网上搜索过,但找不到答案。如何在矩阵中设置基本索引,以便索引从零以外的值开始?例如:
谢谢
c++ - 如何创建一组提升矩阵?
如何将一组 boost 矩阵定义为成员变量?
以下都不起作用。
谢谢,拉维。