我有一個問題,基本上,我有兩個矩陣(矢量),一個巨大的矩陣和一個較小的矩陣。我有分割大量基質成塊有趣的算法來比較兩個矩陣?
因此,例如(小塊的大小的)(我使用的測試數據在這裏),所以大量的矩陣尺寸是一種算法: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