私は問題があります。私は別の行列(ベクトル)内の行列(ベクトル)を見つけようとするタスクに取り組んでおり、行列のサイズは次のとおりです。
マッシブマトリックス: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;
}
誰かアドバイスをいただけますか?これは今私を本当に苛立たせています:(!