问题标签 [cross-product]

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 投票
1 回答
62 浏览

bash - 删除 AWK 中具有相同叉积值的记录

当我使用命令对 file.txt > file2.txt 中的记录进行交叉乘积时:

join file1.txt{,} -j999 > file2.txt

我得到 file1.txt 中的每条记录以及 file1.txt 中的所有记录,例如:

样本数据集

我明白了

我不想要 r1 r1、r2 r2、记录等等...

如果在做交叉产品时它可能是正确的,我如何获得预期的结果?如果没有,如何在处理 join file1.txt{,} -j 999 后删除记录

我用另一个 awk 命令尝试了这个:

因为我有每条记录的序列号 1,2,3,... 我有 file2.txt 为:

我只是比较序列号,如果它们不相等,则打印这些记录。但我得到了不希望的结果,例如:

您可以看到它跳过了 $1!=$13 之前的所有记录。所以缺少行,例如:

它应该只跳过模式 r1 r1, r2 r2,... 中的记录

更新

图片

第 1 列和第 13 列是序列号。

0 投票
2 回答
1379 浏览

python - 与 einsum 的交叉产品

我正在尝试尽快计算许多 3x1 向量对的叉积。这个

给出了正确的答案,但出于对类似问题的回答的动机,我认为这einsum会让我有所收获。我发现两者

计算叉积,但它们的性能令人失望:两种方法的性能都比np.cross

关于如何改进einsums 的任何想法?

0 投票
1 回答
61 浏览

r - 对两个矩阵的重叠求和

我正在尝试计算几篇科学论文之间的接近度。当论文 A 的 2 位作者住在阿姆斯特丹,1 位在纽约,而论文 B 的 3 位作者住在阿姆斯特丹时,我希望结果为 3+2=5。我有两个大矩阵,其中列代表论文,行代表城市。例如:

矩阵A:

美国加利福尼亚州戴维斯市 4 .
美国加利福尼亚州洛杉矶。1
美国加利福尼亚州帕洛阿尔托。1
美国加利福尼亚州萨克拉门托 2 .
美国加利福尼亚州圣莫尼卡。2

和矩阵B:

美国加利福尼亚州戴维斯 1 美国加利福尼亚州
洛杉矶 2 美国加利福尼亚州
帕洛阿尔托。
美国加利福尼亚州萨克拉门托 1 美国加利福尼亚州
圣莫尼卡 2

两者的叉积 (MatrixA %*% t(MatrixB)) 接近我想要的。这会给我,对于 A2-B1,

(0*1)+(1*2)+(1*0)+(0*1)+(2*2)=6

但我想要的是:

(0*1)+(1+2)+(1*0)+(0*1)+(2+2)=7

因此,当一个为 0 时相乘,否则相加。有没有一种有效的(!)方法来实现这一点,使用 R?

0 投票
1 回答
176 浏览

vector - 向量叉积中的类型不匹配

我需要在打字/球拍中做矢量叉积。以下代码在#lang racket没有类型注释的情况下可以正常工作。参考

当我使用类型注释运行代码时,会发生类型不匹配错误。

  • 类型检查器:
    预期类型不匹配:
    给出的数字:任何在:(参考 X 1)
  • 类型检查器:
    预期类型不匹配:
    给出的数字:任何在:(参考 Y 2)
  • 类型检查器:
    预期类型不匹配:
    给出的数字:任何在:(参考 X 2)
  • 类型检查器:
    预期类型不匹配:
    给出的数字:任何在:(参考 Y 1)
  • 类型检查器:摘要:在:(
    参考 X 1)
    (参考 Y 2)
    (参考 X 2)
    (参考 Y 1)中遇到 4 个错误

看起来(for/vector ([n len])触发了错误,我尝试将类型注释如(for/vector ([{n: Integer} len]),但最终出现错误:未绑定标识符模块 in n. 我需要纠正什么?有没有更好的方法来做矢量叉积?

0 投票
2 回答
125 浏览

r - 叉积的反面:如何从两个矩阵的交集创建一个新矩阵?

我在 R 中有两张表(女性和男性),其中包含有无数据。我想在它们之间进行成对比较(逐行),以找到每对之间不共享的细胞数(即细胞的总和在女性身上等于 1,但在男性身上不等于 1,反之亦然) .

我知道叉积 (%*%) 与我需要的相反。它创建了一个新矩阵,其中包含男性和女性对之间共享单元格的总和(即,两个单元格的总和都等于 1)。

这是一个示例数据集:

所以,如果我做叉积

我明白了

但我需要这个(只显示第一行)

实际上,我的数据集不是对称的(我有 47 位女性和 32 位男性)。

谢谢你的帮助!!!

0 投票
1 回答
350 浏览

dfa - 不完全 DFA 的叉积

我正在尝试在两个 DFA 之间做一个叉积,但它们都是不完整的 DFA。

下图是我为两个不完整的 DFA 之间的叉积的交集得出的答案。字母表是 {a,b,c,d,e}。

这是正确的还是它们不完整的事实改变了一切?

0 投票
2 回答
127 浏览

python - Python - 如何加快 for 循环从另一个 numpy 数组计算创建 numpy 数组

首先,为这个模糊的标题道歉,我想不出一个合适的名字来解决这个问题。

我有以下格式的 3 个 numpy 数组:

N = ([[13, 14, 15], [2, 5, 7], [4, 6, 8] ... 几十万个元素长

e1 = [1, 0, 0]

e2 = [0, 1, 0]

这个想法是创建第四个数组“v”,它应该具有与“N”相同的维度,但将根据 if 语句给出值。这是我目前拥有的应该更好地解释该问题的内容:

这段代码完成了我的要求,但比预期的时间长(> 5 分钟)。我可以使用任何形式的列表理解或类似概念来提高代码效率吗?

0 投票
1 回答
414 浏览

java - 如何用 la4j 计算 3D 矢量积?

如何用 la4j 计算向量(叉)积?

向量积是

在此处输入图像描述

并接受两个向量和返回向量。

但是它们有标量积所有元素的积,甚至是Hadamard积,但没有交叉积!

他们有外部产品,但它会产生一个矩阵。

如何计算 3D 叉积?

0 投票
0 回答
421 浏览

r - 从两组 ID 创建边缘列表/邻接矩阵的最有效方法是什么?

在这些问题1、2中受到启发。我试图把 adata.table变成一个对象adjacency matrix/edgelist,然后再变成一个igraph对象。我有一个包含两列 ( A, B)的数据集,IDs用于配对。换句话说,A表示links,并且B包含nodes或 顶点。在我的数据集中,每列的唯一长度是 25352x 75352。这些将创建一个大网络,因此,我试图找到最有效的方法来获得一个adjacency matrix或一个edgelist. 到目前为止,我已经尝试过这些方法:

更新 1:@Axeman 的以下评论

结果 1

输入速度更快merge(fn4)任何想法或建议将不胜感激。

警告:

fn4fn6它们更快地依赖于cartesian product并且merge它们创建了重复的连接。此外,由于temp$B.x != temp$B.y,所有未连接的顶点都从图中删除,这也可能会产生误导。

更新 2:更正重复并考虑断开的节点。

结果 2

0 投票
3 回答
235 浏览

r - 如何修改矩阵乘法以仅对 R 中的正值或负值求和

我想做一个扭曲的矩阵乘法。

我有这个矩阵:

我想得到两个不同的矩阵。第一个矩阵是这样的:

这个“收敛矩阵”类似于 A 对其转置的乘法(在 R 中是这样的A%*%t(A)),但有一点扭曲,在求和期间获得每个单元格,我只想要正值的总和。例如,对于单元格 C23,常规总和将是:

(-1)(-1) + (0)(0) + (1)(-1) + (-1)(1) + (-1)(-1) = 0

,但我只想要正积的总和,在这个例子中,第一个 [(-1)(-1)] 和最后一个 [(-1)(-1)] 得到 2。

第二个矩阵是这样的:

这个“散度矩阵”与前一个类似,不同之处在于我只想对负值的绝对值求和。例如,对于单元格 D23,常规总和为:

(-1)(-1) + (0)(0) + (1)(-1) + (-1)(1) + (-1)(-1) = 0

,但我只想要负积的绝对值之和,在这个例子中,第三个 abs[(1)(-1)] 和第四个 abs[(-1)(-1)] 得到 2。

我一直在尝试应用、扫描和循环,但我做不到。感谢您的回复。