问题标签 [symmetric]

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.

0 投票
0 回答
133 浏览

r - 使对称矩阵成为R中的对角矩阵

我有对称矩阵(例如M <- matrix(1:4, ncol = 2)),我想将非对角线元素设置为0。还有比这更聪明的方法diag(diag(M), ncol = ncol(M))吗?

注意:diag不支持使用diag(M, ncol = ncol(M)),也没有类似diag(M, as.matrix = TRUE)etc的选项。

0 投票
0 回答
963 浏览

python - Numpy - 许多零条目的矩阵乘法更快?

问题:在 numpy 中,我有一个M1要与另一个矩阵相乘的矩阵M2

我知道我可以保留一半的值,M1因为生成的矩阵是对称的,我只需要最高k值。

因此,我正在考虑将numpy.tril一半的值归零,希望底层的 C 函数对于乘法运算会更快a*ba==0因为它们可以在看到a==0而不是执行整个浮点运算时停下来。

我知道我可以计时,但我认为这是一个普遍感兴趣的问题。

请注意,这M1不是稀疏的,只是不需要考虑其中的一半。

也许还有更好的方法来节省 50% 的计算?

背景:这与

...如果你明白我的意思。

示例:这只是发生的一点,但最后,我们有

  • 一个|一个| x |A| 矩阵p(A|B)(A和B是相同的变量)
  • 1 x |A| 矩阵p(B)
  • 结果是 |A| x |A| p(A,B) = p(A|B)*p(B)我们不关心对角线的矩阵,因为它是给定值本身和对角线上方或下方部分的概率,因为它是另一半的重复。很适合进行健全性检查,但毕竟没有必要。

请注意,这里它实际上不是点积。但我想导致 p(A|B) 的一半计算也是不必要的。

更新: 我将为此应用程序采取更合理的方法,即限制 A 和 B 不相交。然后所有矩阵的大小都会减小。它可以在 numpy 中优雅地完成,但会增加阅读代码的复杂性。

毕竟这没有任何意义。唯一的选择是创建M1.shape[0]-1重新创建三角形的子矩阵,但这肯定会产生太多开销。

0 投票
1 回答
734 浏览

nlp - 查找两个带有 spacy 的文档共享的令牌百分比

对于 nltk 它会是这样的:

由于 spacy 更快,我试图在 spacy 中做到这一点,但令牌对象似乎没有为此提供快速解决方案。有任何想法吗?

谢谢大家。

0 投票
0 回答
119 浏览

encryption - 如何测试对称加密算法

我正在为一篇计算机科学论文做实验。我的主题集中在加密。在进行了一些研究之后,我对测试对称加密程序感兴趣,例如 AES、DES、Blowfish 和 Twofish。但是,我对如何测试它们的想法感到困惑。

我的想法是在加密后比较文件大小,看看哪个最有效。我还必须在我的实验中包含 Big-O 符号。

有人可以指导我如何做到这一点,或者建议我可能做的任何其他实验。PS我只是一个六年级的学生,所以我的知识有限,所以请确保实验不是太难。非常感谢。

0 投票
1 回答
2902 浏览

c++ - c ++ Eigen制作副本?

令 A 为对称矩阵,令 v 为向量。我从 A 中提取从 j 开始的 n 列块并将其乘以 v 使用

因为这不能编译,而这

确实,我想知道第二个版本是否复制了

还是直接执行计算?

感谢您的任何提示。

编辑:我怀疑这个问题与参数类型有关,因为我得到了错误:

实际上, A 是使用 const 引用传递的函数的参数

这是一个例子:

EDIT2关于我最初的问题和我在编辑部分添加的示例,我对复制有点困惑。据我了解工作版本和非工作版本之间的区别,该行

之所以有效,是因为它的 lhs 告诉 Eigen M.block(1, 2, 3, 4).triangularView() 实际上是一个矩阵,而不是对矩阵的引用。否则,运算符 += 将通过一个错误,即该运算符没有为 .block() 重载。所以我最初的问题是 Matrix(...) 是否只告诉它是一个 Matrix 来启用计算,或者更确切地说将 ... 复制到一个 Matrix 中?谢谢!

0 投票
1 回答
369 浏览

python - 当我应用最小-最大缩放时,Numpy 对称矩阵变得不对称

我有一个对称矩阵(1877 x 1877),这是矩阵文件。我尝试将 0-1 之间的值标准化。应用此方法后,矩阵不再对称。任何帮助表示赞赏。

0 投票
0 回答
648 浏览

python - 共现矩阵的尺度和计算机余弦相似度

我有一个共现对称矩阵(1877 x 1877)。我将列视为特征并计算它们之间的余弦距离。在此之前,我对矩阵进行了缩放(中心为均值,按分量缩放为单位方差)。

我的问题:

  1. 我应该在计算余弦距离/sim 之前缩放共现数据吗?下图显示了实际矩阵的直方图。x 轴表示矩阵中的共现值,y 轴表示它们在矩阵中出现的次数。 在此处输入图像描述
  2. 上面的代码返回距离 > 1 和距离 < 0。如何确保余弦距离值在 0 和 1 之间?我应该在dist矩阵上应用min max 缩放器吗?
0 投票
1 回答
236 浏览

arrays - 用反转对数组进行排序的最佳算法

我正在一个处理数据的程序中工作。但是,因为我希望我的代码高效,所以我想要一个排序算法,它的运行时间不依赖于数组具有的反转次数,因此我可以按升序对其进行排序。数组的顺序总是:

  • n = 数组的大小

  • 列表 = (1,2,3,...,(n/2 -1), (n/2),(n/2 + 1),...3,2,1

我知道数组的反转总数等于:

  • (n/2 -1) + (n/2 -2) + (n/2 - 3) +...+ 1

我认为这是一个对称数组的很多反转,因为我知道数组的顺序总是这样,我想要一个算法在 O(n) 时间内对它们进行排序。我知道插入排序的复杂性取决于数组的反转次数,但我不确定数组的反转次数取决于 n

0 投票
2 回答
374 浏览

java - 如何检查 BST 的结构是否对称

我正在编写一个程序,我需要知道 BST 的结构是否对称

我有遍历代码,但我不知道如何检查它是否是对称的

谢谢您的帮助

0 投票
3 回答
629 浏览

r - 用于创建对称矩阵的循环

我想通过减少迭代来创建一个对称矩阵,即sol[i, j]sol[j, i].

到目前为止我的代码:

将使用 9 次迭代,我怎样才能避免它们并且只进行 6 次迭代?

我需要计算对称值,所以这个问题不适用。另外这个不起作用,因为可能有很多组合,并且在某些时候它无法在内存中分配向量。