【发布时间】:2018-11-11 08:25:52
【问题描述】:
我有一个很大的二进制矩阵。我想通过使用 knn 近似来减小这个矩阵的大小。我的想法是将矩阵聚类为 4 个邻居组,如果组中 1 的数量大于或等于零的数量,则将该组替换为 1。
具体来说,设矩阵为
1 0 0 1 0
0 1 1 0 0
1 1 0 0 0
0 1 1 1 0
0 0 1 1 0
1 0 0 1 0
首先我想创建邻居组
1 0 |0 1| 0|
0 1 |1 0| 0|
------------
1 1 |0 0| 0|
0 1 |1 1| 0|
------------
0 0 |1 1| 0|
------------
然后我要生成的最终矩阵是
1 1 0
1 1 0
0 1 0
通过用多数分数替换组。 MATLAB 如何有效地做到这一点?
【问题讨论】:
-
几个问题: 1) 您的矩阵是否总是将余数分成块? 2) 您使用的是哪个 MATLAB 版本? 3)你有图像处理工具箱吗? 4) 你是否已经尝试过(例如
mat2cell)? -
1) 不。如图所示,剩余部分被分组到剩余大小中。 2) 我使用的是 2016b 版。 3) 是的,我有图像处理工具箱。 4)不。除了使用循环拆分之外,我没有尝试任何其他方法。
标签: matlab matrix binary-data knn downsampling