我有个问题。我正在执行一项任务,试图在另一个矩阵(向量)中找到一个矩阵(向量),矩阵的大小是:
大矩阵: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;
}
有人可以提供任何建议吗?这真的让我很烦:(!