我有一个问题,基本上,我有两个矩阵(矢量),一个巨大的矩阵和一个较小的矩阵。我有分割大量基质成块有趣的算法来比较两个矩阵?
因此,例如(小块的大小的)(我使用的测试数据在这里),所以大量的矩阵尺寸是一种算法:4x4和小矩阵是2×2和那么我将特定块(在当前位置)传递给一个函数,该函数检查小矩阵是否等于大块(在该特定位置),如果是,则返回true,否则返回false。
我可以输出每块这样的:
bool compareMatrix(vector<double> &theMatrix1, vector<double> &theMatrix2, int startRow, int startCol)
{
// I can output the matrix blocks like this:
cout << theMatrix1[startRow*2+startCol] << endl;
}
但我不太明白我怎么会比较块(在startingRow/COL)的小矩阵..
如何它将是这样的: 矩阵1:(4×4)
0 1 0 1
1 1 0 1
0 0 1 1
0 1 1 1
矩阵2:(2×2)
0 1
0 1
我然后块分割成2×2:
B1 =
0 1
1 1
是B1等于theMatrix2 - 无所以返回false
B2 =
0 1
0 1
是B2等于theMatrix2 - 是的,所以返回true
我真的很想尽我所能解释一些细节问题,希望有人能给我一些建议,因为我一直在努力研究这么久!
感谢
我不明白你在做什么。你是否试图检查更小的矩阵是否以较大的方式被“包含”?更严谨的问题陈述可以帮助您获得我认为的反馈。 – 2012-04-19 14:44:13
你可以定义一个'BOOL areEqual = true',然后遍历所有元素并单独比较它们,如果两个元素不相同,你可以设置'areEqual = false'并跳出循环。 – 2012-04-19 14:45:19
4x4矩阵有四个2x2矩阵?或九? – Memming 2012-04-19 14:46:16