linear-algebra相关内容

Matlab eig 是否总是返回排序值?

我在 Matlab 中使用了一个函数: [V,D] = eig(C); 我看到 V 和 D 总是按升序排序.它总是这样还是应该在我获得 V 和 D 值后对它们进行排序? 解决方案 V 不按任何顺序排序,除了对应于关联特征值的顺序.但也许你不是那个意思. 特征值倾向于按降序排列,但这根本不能保证.它们往往是有序的,因为最大的往往会从最上面的算法中流出.Eig 最后没有排序来确保这一 ..
发布时间:2021-12-08 15:04:52 其他开发

寻找成对欧几里得距离(距离矩阵)的快速算法

我知道 matlab 有一个内置的 pdist 函数,可以计算成对距离.但是,我的矩阵太大了,它的 60000 x 300 和 matlab 内存不足. 这个问题是对 Matlab euclidean 的跟进成对平方距离函数. 是否有解决这种计算效率低下的方法.我尝试手动编码成对距离计算,通常需要一整天才能运行(有时 6 到 7 小时). 非常感谢任何帮助! 解决方案 好 ..
发布时间:2021-12-08 14:55:31 其他开发

MATLAB 内存不足,但不应如此

我正在尝试使用 princomp(x),已标准化. 数据为.这运行了我们的内存,这在意料之中,除了这是一台新计算机,该计算机拥有 24GB 的 RAM 用于数据挖掘.MATLAB 甚至在内存检查中列出了 24GB 可用空间. MATLAB 在执行 PCA 时是否真的耗尽了内存,还是 MATLAB 没有充分利用 RAM?任何信息或想法都会有所帮助.(我可能需要增加虚拟内存,但假设 24G ..
发布时间:2021-12-08 14:45:56 其他开发

为什么 Matlab 的 inv 慢且不准确?

我在几个地方读过(在文档和这篇博文中:http://blogs.mathworks.com/loren/2007/05/16/purpose-of-inv/ ) 不推荐在 Matlab 中使用 inv,因为它速度慢且不准确. 我正在尝试找出这种不准确的原因.到目前为止,谷歌没有给出有趣的结果,所以我认为这里有人可以指导我. 谢谢! 解决方案 我提到的不准确在于方法 INV,而不 ..

如何实现 Matlab 的 mldivide(又名反斜杠运算符“\")

我目前正在尝试开发一个面向矩阵的小型数学库(我正在使用 Eigen 3用于矩阵数据结构和运算),我想实现一些方便的 Matlab 函数,例如广泛使用的反斜杠运算符(相当于 mldivide ) 以计算线性系统的解(以矩阵形式表示). 有没有关于如何实现这一点的详细解释?(我已经实现了摩尔-彭罗斯伪逆 pinv 函数经典的 SVD 分解,但我在某处读到 A\b 并不总是 pinv(A)*b , ..
发布时间:2021-12-08 14:25:24 C/C++开发

numpy 任意精度线性代数

我有一个 numpy 二维数组 [中型/大型 - 比如说 500x500].我想找到它的元素指数的特征值.问题是某些值非常负(-800、-1000 等),并且它们的指数下溢(意味着它们非常接近于零,因此 numpy 将它们视为零).无论如何在numpy中使用任意精度? 我梦想的方式: 将 numpy 导入为 npnp.set_precision('arbitrary') # ..
发布时间:2021-12-08 09:53:21 Python

在 3D 中拟合一条线

是否有任何算法可以从一组 3D 数据点返回直线方程?我可以找到很多来源,它们可以从 2D 数据集中给出一条线的方程,但在 3D 中没有. 谢谢. 解决方案 如果你想从另外两个中预测一个值,那么你应该使用 lstsq 和 a 参数作为您的自变量(加上一列 1 来估计截距)和 b 作为您的因变量. 另一方面,如果您只想获得数据的最佳拟合线,即如果您将数据投影到数据上,将最小化真实点 ..
发布时间:2021-12-08 09:51:23 Python

Python (NumPy, SciPy),找到矩阵的零空间

我试图找到给定矩阵的零空间(Ax=0 的解空间).我找到了两个例子,但我似乎无法让任何一个工作.此外,我无法理解他们正在做什么才能到达那里,所以我无法调试.我希望有人能引导我完成这个. 文档页面(numpy.linalg.svd 和 numpy.compress) 对我来说是不透明的.我通过创建矩阵 C = [A|0]、找到减少的行梯形形式并逐行求解变量来学习做到这一点.在这些示例中,我似乎 ..
发布时间:2021-12-08 09:34:51 Python

将 ATLAS/MKL 链接到已安装的 Numpy

TL;DR 如何在不重建的情况下将 ATLAS/MKL 链接到现有的 Numpy. 我用Numpy计算过大矩阵,我发现它很慢,因为Numpy只使用1个核来做计算.经过大量搜索后,我发现我的 Numpy 没有链接到一些优化的库,如 ATLAS/MKL.这是我的 numpy 配置: >>>import numpy as np>>>np.__config__.show()blas_info:图书 ..
发布时间:2021-12-08 09:21:49 Python

理解张量点

在我学会了如何使用 einsum 之后,我现在正在尝试了解 np.tensordot 是如何工作的. 然而,我有点迷茫,尤其是关于参数axes的各种可能性. 为了理解它,因为我从来没有练习过张量微积分,我用下面的例子: A = np.random.randint(2, size=(2, 3, 5))B = np.random.randint(2, size=(3, 2, 4)) 在 ..
发布时间:2021-12-08 09:05:14 Python

如何将相机直接移动到 3D 空间中的对象上方?

我正在学习 ThreeJS 并试图理解一些基本概念. 假设我在 3D 空间中有一个相机,看着一些 target(在 camera.target 属性中定义).相机位于x1, y1, z1. 我想添加一个功能,当激活时,将相机直接移动到目标上方,即它应该向下看 XY 平面,就像相机在天空中直视一样. 我的问题是,我如何在 ThreeJS 中做到这一点,以及您如何从概念上/数学上看待 ..
发布时间:2021-11-25 04:27:48 C#

您如何在仍然注视目标的同时保持使相机平稳地移动到新位置?

在这个问题中,我询问了如何将相机移动到相对于目标的不同位置.一位非常友善的绅士@TheJim01 提供了一个非常好的答案. 但是,我遇到了这样的问题:在我移动相机后,它的旋转和定位很奇怪. 保持相机旋转并保持目标视野顺畅的策略是什么? 解决方案 您可以使用任何补间库(Tween.js、GSAP)将您的相机从当前位置平滑地移动到球体顶部的位置. 此外,使用 THREE.Sp ..
发布时间:2021-11-25 04:27:38 C#

如何使平面适合 3D 点云?

我想将平面拟合到 3D 点云.我使用 RANSAC 方法,我从点云中采样几个点,计算平面,并以最小的误差存储平面.误差是点与平面之间的距离.我想用 C++ 做这个,使用 Eigen. 到目前为止,我从点云中采样点并将数据居中.现在,我需要将平面拟合到样本点.我知道我需要解决 Mx = 0,但是我该怎么做呢?到目前为止,我有 M(我的样本),我想知道 x(平面)并且这个拟合需要尽可能接近 0. ..
发布时间:2021-11-25 04:24:34 C/C++开发

如何确定一个 3 维向量是否包含在由其他三个向量形成的锐角区域内?

我正在用 C# 进行一个项目,其中我在 R3 中有三个向量,我需要找出第三个向量是否包含在由这些向量形成的区域内.三个基向量任意两个之间的夹角最大为90度,并且都在单位球面上进行了归一化处理.它们可能是负面的. 到目前为止,我已经尝试过矩阵向量乘法来找到向量的变换坐标.从那里,我检查所有三个组件是否都为正. 此方法在大多数情况下都有效,但在处理特定向量集时存在一些问题.问题似乎来自基向 ..
发布时间:2021-11-25 04:10:26 C#/.NET

Three.js - 来自 Math.Plane 的 PlaneGeometry

我正在尝试通过 Three.js 中的一组点绘制最小二乘平面.我有一个 plane 定义如下: var plane = new THREE.Plane();plane.setFromNormalAndCoplanarPoint(normal, point).normalize(); 我的理解是,我需要使用该平面并使用它来创建几何图形,以便创建一个网格以添加到场景中进行显示: var disp ..
发布时间:2021-11-25 03:10:30 前端开发

给定一个任意单位向量,计算任意正交单位向量的最佳方法是什么?

基本上问了同样的问题here,但在非编程环境中.建议的解决方案是采用 { y, -x, 0 }.这适用于所有具有 x 或 y 分量的向量,但如果向量等于 + 或 - { 0, 0, 1 } 则失败.在这种情况下,我们将得到 { 0, 0, 0 }. 我目前的解决方案(在 C++ 中): //利用 epsilon 进行浮点比较bool is_equal(float, float);//... ..
发布时间:2021-11-25 03:03:11 C#

给定一个任意单位向量,计算任意正交单位向量的最佳方法是什么?

基本上问了同样的问题here,但在非编程环境中.建议的解决方案是采用 { y, -x, 0 }.这适用于所有具有 x 或 y 分量的向量,但如果向量等于 + 或 - { 0, 0, 1 } 则失败.在这种情况下,我们将得到 { 0, 0, 0 }. 我目前的解决方案(在 C++ 中): //利用 epsilon 进行浮点比较bool is_equal(float, float);//... ..
发布时间:2021-11-25 02:58:50 C#

3D 空间中两个框之间的交点

我想为我的图形引擎实现一个碰撞检测系统. 我不知道这是否是常用的方法,但我的想法是将任何实体对象(如网格或相机)绑定在 3D 框内,这会给我比球体更准确的结果. 这个框由八个顶点定义 x0 = min(vertices.x)-off//解析网格的顶点以获得最小 xy0 = min(vertices.y)-offz0 = min(vertices.z)-offx1 = max(ver ..
发布时间:2021-11-25 02:26:49 C#

如何将向量投影到由 Python 中的正交向量定义的平面上?

我有一个平面,平面 A,由它的正交向量定义,比如 (a, b, c). (即向量(a, b, c)与平面A正交) 我希望将一个向量 (d, e, f) 投影到 plane A 上. 如何用 Python 实现?我认为一定有一些简单的方法. 解决方案 取 (d, e, f) 并减去它在平面的归一化法线上的投影(在你的情况下(a, b, c)).所以: v = (d, e, ..
发布时间:2021-11-25 01:50:19 Python