Ad

Monday, July 16, 2007

Merging Two-Dimensional Arrays (Matrices)

In the article Merging One Dimensional Arrays, we discussed how to merge one-dimensional arrays, in this article we will be discussing about the merging of two-dimensional arrays. Merging as you know is the process of combining two similar things. In the context of arrays, it means to form a big array from two smaller arrays which has all the elements from both the arrays.

In case of one-dimensional arrays there is only one way in which two arrays can be merged but in case of two-dimensional arrays there are two ways.

Suppose, we have the following two 2d arrays (matrices):

mat1={
      {1, 2, 3},
      {4, 5, 6},
      {7, 8, 9}
     }

and

mat2={
      {10, 11, 12},
      {13, 14, 15},
      {16, 17, 18}
     }
then they can be merged in the following two ways:
merge_row={
           {1, 2, 3, 10, 11, 12},
           {4, 5, 6, 13, 14, 15},
           {7, 8, 9, 16, 17, 18}
          }
merge_col={
           {1,  2,  3},
           {4,  5,  6},
           {7,  8,  9},
           {10, 11, 12},
           {13, 14, 15},
           {16, 17, 18}
          }

Now that you know the funda, we move on to the example program to illustrate this:

  // example program to illustrate
  // merging of two-dimensional or
  // 2d arrays(matrices)  
  #include<iostream.h>

  #define ROW1 3
  #define ROW2 3
  #define COL1 3
  #define COL2 3

  void main(void)
  {
   int i,j;
   int matrix1[ROW1][COL1];
   int matrix2[ROW2][COL2];

   // these will store merged
   // matrices
   int merge_row[ROW1][COL1+COL2];
   int merge_col[ROW1+ROW2][COL1];

   // input the elements
   cout<<"Input elements for MATRIX 1:\n";
   for(i=0;i<ROW1;i++)
   {
    cout<<"ROW "<<i+1<<":\n";
    for(j=0;j<COL1;j++)
    cin>>matrix1[i][j];
   }

   cout<<"\nInput elements for MATRIX 2:\n";
   for(i=0;i<ROW2;i++)
   {
    cout<<"ROW "<<i+1<<":";
    for(j=0;j<COL2;j++)
    cin>>matrix2[i][j];
   }
   //input complete

   // merge matrices
   // row merge starts
   for(i=0;i<ROW1;i++)
     for(j=0;j<COL1;j++)
       merge_row[i][j]=matrix1[i][j];

   for(i=0;i<ROW2;i++)
     for(j=0;j<COL2;j++)
       merge_row[i][j+COL2]=matrix2[i][j];
   // row merge complete

   // column merge starts
   for(i=0;i<ROW1;i++)
     for(j=0;j<COL1;j++)
       merge_col[i][j]=matrix1[i][j];

   for(i=0;i<ROW2;i++)
     for(j=0;j<COL2;j++)
       merge_col[i+ROW1][j]=matrix2[i][j];
   // column merge complete

   // show the merged martices
   cout<<"\nROW Merge:\n\n";
   for(i=0;i<ROW1;i++)
   {
    for(j=0;j<COL1+COL2;j++)
      cout<<" "<<merge_row[i][j];
   
    cout<<endl;
   }

   cout<<"\nCOLUMN Merge:\n\n";
   for(i=0;i<ROW1+ROW2;i++)
   {
    for(j=0;j<COL1;j++)
      cout<<" "<<merge_col[i][j];
   
    cout<<endl;
   }
  }

Good-Bye!

Related Articles:

4 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. Nice Topic

    I hope you take a look to my blog
    http://ebook44free.blogspot.com/

    It is about FREE programming eBooks also

    Thanks..,

    ReplyDelete
  3. This comment has been removed by a blog administrator.

    ReplyDelete
  4. @ reyt,

    Plz don't spam.

    ReplyDelete

You are free to comment anything, although you can comment as 'Anonymous' it is strongly recommended that you supply your name. Thank You.

Please don't use abusive language.