【发布时间】:2012-04-19 15:54:28
【问题描述】:
我有问题。我正在做一个任务,试图在另一个矩阵(向量)中找到一个矩阵(向量),矩阵的大小是:
海量矩阵:1024x768 小矩阵:36x49
基本上,我的理论是将大矩阵分割成与小矩阵大小相同的块,这意味着我能够看到小矩阵是否存在于哪个块中,然后输出该块。但是,它不会平均分割,但我需要一种方法来确定小矩阵是否确实存在于大矩阵中。
作为一个例子,我将使用测试数据:
M1 =
0 1 0 0
1 1 1 1
0 0 0 0
1 0 1 1
M2 =
0 1
1 1
然后我会将矩阵拆分为 2x2 的块,然后以这种方式检查。这很简单,因为我只使用一个小矩阵,并且矩阵可以平均分割,而上面的问题要理解和弄清楚要复杂得多。
本质上,我需要能够将 (1024x768) 拆分为 (36x49) 的块大小,以便进行检查以确定该特定矩阵的位置。我一直在使用这个算法:
// Assume:
// matrix1ColSize = 768
// matrix2ColSize = 49
const int ROW_BOUNDS = matrix1.size() - matrix2.size();
const int COL_BOUNDS = matrix1ColSize - matrix2ColSize;
bool found = false;
for(int i=0; (i < ROW_BOUNDS); i++)
{
bool matchFound = false;
for(int j=0; (j < COL_BOUNDS); j++) {
// logic here
}
cout << endl;
}
有人可以提供任何建议吗?这真的让我很烦:(!
【问题讨论】:
-
好像和你的previous question有关,有区别吗?如果有,您应该强调它是什么,并将问题链接为相关。如果是同一个问题.. 好吧 - 你不应该两次问同一个问题。
-
不是在比较矩阵,这实际上是在拆分它们。基本上,我可以比较它们,但是它们没有正确拆分。
-
我没有指责你任何事情,只是表明你应该参考你的旧问题。如果他们有更多的背景知识,回答者更有可能了解您真正想要达到的目标,并且因此您会得到更好的答案!
-
嘿,谢谢,很抱歉,如果最后一条评论是以这种方式出现的 - 这不是故意的 :) 只是这个问题现在真的让我很恼火,哈哈 - 我从没想过会这么复杂。跨度>