查找给定矩阵的所有子矩阵

时间:2014-02-05 11:59:47

标签: c++ matrix multidimensional-array

我有一个2D矢量,它包含一个整数矩阵,如下所示:

    vector<vector<int>> Members;

我想要找到的是如何提取NxN矩阵的每个可能的子矩阵的方法。

例如,如果我有一个2x2矩阵:

    0 -2
    9  2

它会输出:

    0

   -2

    9

    2

    0
    9

   -2
    2

    0 -2
    9  2

1 个答案:

答案 0 :(得分:0)

子矩阵取决于左上角和右下角,因此您可以提供所有可能的位置并逐个打印,如下所示:

//data stored in mat[max][max]
int max=5;//size of matrix
int i,j,m,n;

for(i=0;i<=max-1;i++)
    for(j=0;j<=max-1;j++)
        for(m=i;m<=max-1;m++)
            for(n=j;n<=max-1;j++)
                print(i,j,m,n);//a simple function