问题标签 [binary-matrix]

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 投票
2 回答
3867 浏览

c - 二进制矩阵向量乘法

我想将表示为无符号 64 位整数的 8x8二进制矩阵乘以由无符号字符表示的 8 位向量。但是,由于其他一些问题,矩阵必须按列排序,因此没有简单的字节匹配以便于乘法。

知道如何加快这样的计算吗?每个操作都很重要,因为我需要进行数十亿次这样的计算。

乘法是在一个 2 元素字段 (F-2) 上进行的。

0 投票
1 回答
1260 浏览

gnuplot - gnuplot 的八度二进制矩阵

我需要帮助来理解如何使用这个 octave 脚本

http://www.gnuplotting.org/code/save_binary_matrix.m

生成一个我想用 gnuplot 绘制的二进制矩阵。任何建议都将不胜感激,即使只是一个有助于我理解八度语法的网络链接

谢谢

马里亚诺

0 投票
1 回答
2905 浏览

c++ - 两个数组的内存地址重叠

我正在研究二进制矩阵。我的两个阵列正在重叠。(我检查了地址)。这只发生在少数大小的矩阵中。因此我得到错误的结果。我尝试使用 new 来分配数组,但是这样做时会出现分段错误。有没有办法避免内存重叠?我正在使用 g++ 编译器。

这就是我声明数组的方式

在下一步中,我将初始化所有这些。A 和 B 是操作数,C 将保存结果。

我在下一阶段使用自定义乘法算法。这是一个片段

根据我的观察TabC重叠。我通过打印它们来检查内存地址。它们在第二级 for 循环的第六次迭代中重叠。(n=9,m=3,size=9,cnm=3)。我没有C在两者之间使用过,我只在外循环中使用它。

0 投票
1 回答
194 浏览

excel - 将 ID 分配给二进制矩阵中的相同行

我有一个 1200x130 0-1 矩阵,其中一些行是相同的(一行中的 4 个,另一行中的 8 个等)。我试图找到一种有效的方法来将相同的 ID 分配给相同的行。

这是我在 Excel 中尝试过的:对于每一行,我将第 k 列条目乘以 2^k 并对所有列求和。从理论上讲,对于每个不同的行,这应该给我一个唯一的 ID,但是数字变得非常大 Excel 会混淆这些数字的比较。(我想这是因为它将它们存储为 3.234023490249 x 10^246 直到某个数字并忽略剩余的数字。)

所以我决定使用 VBA,但我能想到的唯一方法是对所有行和列进行成对比较。我相信应该有更有效的方法来处理这个问题。有什么建议吗?

(我不是在寻找特定于 Excel 或 VBA 的解决方案。任何建议都会有所帮助。)

提前致谢。

0 投票
3 回答
5064 浏览

r - R:所有可能的唯一结果的二进制矩阵

如何为“i”变量 X 的所有可能排列生成二进制矩阵,其中“i”可以是 1 到无穷大之间的任何数字。结果矩阵将有 2^i 个唯一行。

对于 i=2 ,变量 x1, x2 每个的可能值为 1 或 0,因此生成的矩阵将是:

R中是否有任何功能可以生成?

我尝试了以下功能:

但结果并未显示所有可能的值。

0 投票
2 回答
949 浏览

arrays - 给定一个按行排序的布尔矩阵。返回最大数量为 1 的行

我遇到了矩阵问题,但试图找出最佳解决方案。问题陈述是问题主题本身。进一步见下文

我的解决方案:现在由于行已排序,我想在每行中执行二进制搜索,第一次出现 1,然后计数为 1 total number of columns minus index of 1st 1

这将在 中完成O(m*logn),但我很想知道是否可以在线性时间内完成逻辑。

谢谢!

0 投票
1 回答
761 浏览

matlab - 在 Matlab 中:根据体积的轮廓制作遮罩

我一直在努力寻找一个好的解决方案来解决下面描述的问题。我想避免 for 循环,但觉得我的 Matlab 技能不足以做其他事情。我有一个大小为 329x230x105 的 3D 位置矩阵。这定义了 10000x7000x3100 米的 3d 体积。除子体积外,大多数 matix 元素为零:

在此处输入图像描述

我需要构建一个与我的原始矩阵相同大小的掩码,该掩码被划分为大型子矩阵,每个子矩阵定义一个 1000x1000x1000 米的常规子体积,并将 1 分配给包含至少一个元素的子矩阵中的所有元素(非零)来自我的原始矩阵。在 XY 中查看: 在此处输入图像描述

所以最终结果是一个 3D 蒙版(下图 XY),其中标记单元格(红色)内的所有元素都具有值 1 并且外部元素设置为 0 :

在此处输入图像描述

请注意,我对体积边界框或凸包顶点不感兴趣。

提前谢谢了。

添加信息,回答@grantnz:

好吧,我还不确定以下代码是否适用于所有情况,但这是我所做的(在我的笔记本电脑上需要将近 10 秒):

0 投票
1 回答
155 浏览

algorithm - 以 c 为模的二进制 nxm 矩阵的数量,每列最多 k 个连续的 1

我正在尝试计算每列中最多 k 个连续值为 1 的 nxm 二进制矩阵的数量。经过一些研究,我发现找到具有 1 列和 n 行的向量就足够了。例如,如果我们有 p 个向量,则所需的矩阵数量为 m^p。因为 n 和 m 非常大(< 2.000.000),我找不到合适的解决方案。我试图找到一个递归公式,以建立一个矩阵来帮助我计算答案。那么你能建议我任何解决方案吗?

0 投票
1 回答
1151 浏览

matrix - 如何在 Octave 中有效地存储和操作稀疏二进制矩阵?

我正在尝试在 GNU Octave 中操作稀疏二进制矩阵,它使用的内存比我预期的要多,并且相关的稀疏矩阵函数的行为不像我想要的那样。我看到这个关于在 MATLAB 中高于预期的稀疏矩阵存储的问题,这表明这个矩阵应该消耗更多的内存,但有助于解释(仅)这种情况的一部分。

对于稀疏的二进制矩阵,我想不出任何方法让 Octave不存储值数组(它们总是隐式1的,因此不需要存储)。这可以做到吗?Octave 似乎总是消耗值数组的内存。

演示这种情况的精简示例:创建随机稀疏矩阵,将其转换为“二进制”:

显示情况。如果创建存储类数组并且所有索引都是32 位(即,spones()double

- 不必要地存储这些值(所有1s 为doubles)超过了这个 3%-sparse 对象消耗的总内存的一半。

在撰写此问题时弄乱了这个(太久)之后,我发现了一些部分解决方法,所以我将“自我回答”(仅)部分问题的连续性(希望如此),但我没有想到对主要问题做出充分的回答:

如何在 Octave 中创建一个有效存储的(“无/隐含值”)二进制矩阵?

存储格式的其他背景如下...

Octave 文档说稀疏矩阵的存储格式使用格式Compressed Sparse Column (CSC)。这似乎意味着存储以下数组(扩展上述 SO answer,使用规范的耶鲁格式 labels列主要顺序的调整):

  • values ( A),存储类大小的非零数 (NNZ) 条目;
  • 行号IA),索引大小的 NNZ 条目(希望int64但也许int32);
  • 每列的开头( JA),列数加 1 个索引大小的条目)

在这种情况下,对于仅二进制存储,我希望有一种方法可以完全避免存储数组(A),但我想不通。

0 投票
1 回答
3676 浏览

r - 在 R 编程中将 arules 事务数据转换为项目矩阵

我有一个包含 100,000 行的数据集,交易格式如下

我想将其转换为如下矩阵格式(或 TRUE/FALSE 标志)

我尝试了以下步骤

但是,在我的列表转换中,我得到的输出为

所以有些行是完美的,但在某些行中,唯一 id 被添加到带有 \t 和 \n 的电影列表中

我想要以下格式的列表 9C05-EE9B44E8C18F c("Bruce Almighty","Iron Man","Toy Story")

这样我相信我会很容易地达到所需的结果。非常感谢您的帮助。