Open In App

Matrix or Grid or 2D Array - Complete Tutorial

Last Updated : 10 Dec, 2024
Summarize
Comments
Improve
Suggest changes
Share
200 Likes
Like
Report

Matrix or Grid is a two-dimensional array mostly used in mathematical and scientific calculations. It is also considered as an array of arrays, where array at each index has the same size.

Introduction-to-Matrix

Representation of Matrix Data Structure:

As you can see from the below image, the elements are organized in rows and columns. As shown in the image, the cell a[0][0] is the first element of the first row and first column.

Representation-of-Matrix


Declaration of Matrix Data Structure :

Declaration of a Matrix or two-dimensional array is very much similar to that of a one-dimensional array, given as follows.

C++
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    // Defining number of rows and columns in matrix
    int rows = 3, cols = 3;

    // Vector of vectors declaration
    vector<vector<int>> arr(rows, vector<int>(cols));

    return 0;
}
C Java Python C# JavaScript

Initializing Matrix Data Structure:

In initialization, we assign some initial value to all the cells of the matrix. Below is the implementation to initialize a matrix in different languages:

C++
#include <iostream>
#include <vector>
using namespace std;

int main() {
  
    // Initializing a 2-D vector with values
    vector<vector<int>> arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    
    return 0;
}
C Java Python C# JavaScript

Operations on Matrix Data Structure:

We can perform a variety of operations on the Matrix Data Structure. Some of the most common operations are:

  • Access elements of Matrix
  • Traversal of a Matrix
  • Searching in a Matrix
  • Sorting a Matrix

1. Access elements of Matrix Data Structure:

Like one-dimensional arrays, matrices can be accessed randomly by using their indices to access the individual elements. A cell has two indices, one for its row number, and the other for its column number. We can use arr[i][j] to access the element which is at the ith row and jth column of the matrix.

C++
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    // Initializing a 2-D vector with values
    vector<vector<int>> arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

    // Accessing elements of 2-D vector
    cout << "First element of first row: " << arr[0][0] << "\n";
    cout << "Third element of second row: " << arr[1][2] << "\n";
    cout << "Second element of third row: " << arr[2][1] << "\n";

    return 0;
}
C Java Python C# JavaScript

2. Traversal of a Matrix Data Structure:

We can traverse all the elements of a matrix or two-dimensional array by using two for-loops.

C++
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // Initializing a 2-D vector with values
    vector<vector<int>> arr = { { 1, 2, 3, 4 },
                                { 5, 6, 7, 8 },
                                { 9, 10, 11, 12 } };

    // Traversing over all the rows
    for (int i = 0; i < arr.size(); i++) {
      
        // Traversing over all the columns of each row
        for (int j = 0; j < arr[i].size(); j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}
C Java Python C# JavaScript

Output
1 2 3 4 
5 6 7 8 
9 10 11 12 

3. Searching in a Matrix Data Structure:

We can search an element in a matrix by traversing all the elements of the matrix.

Below is the implementation to search an element in a matrix:

C++
#include <bits/stdc++.h>
using namespace std;

bool searchInMatrix(vector<vector<int> >& arr, int x)
{
    int m = arr.size(), n = arr[0].size();

    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (arr[i][j] == x)
                return true;
        }
    }
    return false;
}

// Driver program to test above
int main()
{
    int x = 8;
    vector<vector<int> > arr
        = { { 0, 6, 8, 9, 11 },
            { 20, 22, 28, 29, 31 },
            { 36, 38, 50, 61, 63 },
            { 64, 66, 100, 122, 128 } };

    if (searchInMatrix(arr, x))
        cout << "YES" << endl;
    else
        cout << "NO" << endl;

    return 0;
}
Java Python C# JavaScript

Output
YES

4. Sorting Matrix Data Structure:

We can sort a matrix in two-ways:

Related Article:


Next Article
Article Tags :
Practice Tags :

Similar Reads