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: