问题标签 [submatrix]
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++ 中确定给定 NxN 矩阵的所有平方子矩阵
给定一个 NxN 方阵,我想通过删除相等数量的行和列来确定所有可能的方子矩阵。
为了确定所有可能的 2x2 矩阵,我需要循环 4 次。同样,对于 3x3 矩阵,我需要循环 6 次,依此类推。有没有办法在 C++ 中生成代码,以便动态生成循环代码?我已经检查了一些与 C++ 中的代码生成相关的答案,但其中大多数都使用了 python。我对python一无所知。那么,是否可以编写代码以在 C++ 中生成代码?
matlab - 在 Matlab 中快速平均 3D 子矩阵
让我的矩阵的大小A
是sx x sy x sz
. 我想得到一个矩阵B
(大小与 相同A
),其中 B 的元素表示从 相同位置提取(x,y,z)
的子矩阵的平均值。n x n x n
A
我该怎么做?
我知道我可以使用convn
或使用 3 个for
循环来做到这一点,但它会很慢。
A
当我使用时,尺寸矩阵在我的机器上200 x 200 x 150
是double
精确的,n = 9
大约需要 20 到 30 秒。
algorithm - 二维矩阵中大小为 HxW 的最大子数组
给定一个正整数的二维数组,找到大小为 HxW 且总和最大的子矩形。矩形的总和是该矩形中所有元素的总和。
输入: 具有正元素的 2D 数组 NxN 子矩形的 HxW 大小
输出: HxW 大小的子矩阵,其元素之和最大。
我已经使用蛮力方法解决了这个问题,但是,我现在正在寻找具有更好复杂性的更好解决方案(我的蛮力方法的复杂度是 O(n 6 ))。
r - 如何使用 R 从更大的矩阵中提取子矩阵的维度?
我有以下矩阵:
我想知道如何提取元素等于 1 的子矩阵的 7x4 维度。
r - 如何在R中基于关系选择(邻接)矩阵中的子矩阵
我有一个矩阵,它代表各种工作之间的流动性:
这在社交网络分析中被视为有向加权邻接矩阵。网络的方向是从行到列:因此移动性被定义为从作业行到作业列。对角线是有意义的,因为可以换到另一家公司的同一份工作。
对于我的部分分析,我想选择一个由作业 1、作业 5 和作业 7 组成的子矩阵:
然而,这只给出了这三个工作之间的直接联系。我需要的是这个:
这里还包括工作 2 和 6,因为这两个工作也与工作 1、5 或 7 有直接联系。而工作 3 和 4 被排除在外,因为它们与工作 1、5 或 7 没有任何联系。
我不知道该怎么做。也许我必须将其转换为 igraph 对象才能到达任何地方?
然后也许使用 ego/neighborhood-function,也来自 igraph 包?但是我真的不确定如何。或者,如果这是最好的方法。
感谢您的时间,
埃米尔·贝格鲁普-布莱特
增强问题:
aichao 的答案非常适合所提出的问题,尽管事实证明还需要另一个步骤。当创建了包含与三个“感兴趣的工作”相关的工作的 work.list 时,在此示例中为工作 1、5、7。然后,对于真实数据,杂乱的数量使另一个步骤变得可取:只保留与三个感兴趣的工作之间的直接联系,而其他工作之间的联系被设置为零。
上面的数据并没有很好地描述这一点,所以我创建了上面的一个非常版本来演示这一点:
通过使用aichaos解决方案:
然后我们得到这个:
然而,工作 2 和工作 3 之间的联系是无关紧要的,只是用来掩盖利益联系。
在 job.dat.result 中,作业 3 和作业 2 之间的关联已被删除,无论是按行还是按列,但保留这两个作业与三个感兴趣的作业之间的关联。理想情况下,应该可以选择作业 2 和作业 3 的对角线是否也应为零。但最有可能的是,对于所有工作,我会将对角线设置为零,因此这不是必需的。但是会很好,如果没有别的,那么让我在更高的层次上理解这个逻辑。
除其他外,我想要实现的是这样的圆图:
因此,关系数量的简单性很重要。该图是这样复制的:
algorithm - 算法 - 网格图查找具有特定属性的子块数量
我有一个网格图 NxN。每个单元格的值可能为“0”或“1”。我正在尝试找到包含特定数量“1”的地图不同矩形子块的确切数量,这个数字可以在 1 到 6 之间。我考虑过搜索每个可能的矩形,但这很慢对于大小为 500x500 的地图,对于普通台式计算机,解决方案必须为 ~ 1 秒。有人可以告诉我一个相应的问题,这样我就可以寻找一个有效的算法,或者有人可以建议我一个解决这个问题的有效算法吗?谢谢大家!
r - 在两列上分组并执行多个计算
我目前正在使用一个包含大约 20 列和很多行的大型数据框。
简化后可以如下所示:
我想对特定的值集进行一些计算。这些是字母和数字的独特组合。因此,所有具有字母 A 和数字 1 的值都可以求和、计数(或 count_not_zero)、取最小值或其他(更复杂的)计算。我的目标是用这些独特的组合及其计算制作一个新的数据框。
我尝试以多种方式做到这一点。例如,用字母 A(在这种情况下)制作一个矩阵列表,然后在选择单个字母时使用聚合。然而,这变得非常大。
我尝试了几种 DPLYR 包的组合,但很难进行不同类型的计算,尤其是自制的。
indexing - 更新 Tensorflow 中的子矩阵
很简单,我想做的是以下
除了在 Tensorflow 中(矩阵可以是任意复杂的张量表达式)。既不是 Tensorflow 变量,也不是一个普通的张量A
。B
到目前为止我收集到的内容:张量是不可变的,所以我不能分配给子矩阵。tf.scatter_nd
是子分配的当前选项,但似乎不支持子矩阵,仅支持切片。
应该有效但可能并不理想的方法:
- 我可以用零填充 B,但我确信这会导致不必要的大 B 的实例化——它可以变得稀疏吗?
- 我可以使用填充的想法,但将其写为低秩分解,例如在 Numpy 中:
A+U.dot(B).U.T
其中U
是堆叠的零和单位矩阵。我不确定这实际上是否有利。 - 我可以拆分
A
为子矩阵,然后将它们堆叠在一起。可能是最有效的,但听起来代码会很复杂。
理想情况下,我想对逐渐变小的矩阵执行此操作 N 次,从而产生一个大的最终结果,但这是切线的。
我现在将使用其中一种技巧,但我希望有人能告诉我惯用的版本是什么!
arrays - 子矩阵/向量取决于数组中的值
我有一个A
大小为 20x500x68 的 3D 矩阵。我有两个向量携带关于这个矩阵的信息,它们是:(
B
包含零和一)大小为 1x68 和
C
(包含从 1 到 3 的数字)大小为 1x68
(长度都B
对应C
于 的第三维A
)。
我想创建一个A
只有第三维的“子矩阵”,其中B==1
和C==3
。
示意图:
有没有办法在没有循环的情况下做到这一点?