py list matrix 2d sub

16 Feb 2022 • viridi | history ▶ 

Pengurangan dua buah matriks dalam Python dapat menggunakan pustaka NumPy [1] atau cukup dengan list. Pemanfaatan list dalam pengurangan dua buah matriks dan bagaimana menampilkan isinya disajikan di sini secara sederhana dan ringkas. Matriks yang dimaksud adalah matriks 2d.

matrix substraction

Terdapat matriks

\begin{equation}\label{eqn:matrix-a} A = \left[ \begin{array}{ccc} a_{11} & a_{12} & a_{13} \newline a_{21} & a_{22} & a_{23} \end{array} \right] \end{equation}

dan

\begin{equation}\label{eqn:matrix-b} B = \left[ \begin{array}{ccc} b_{11} & b_{12} & b_{13} \newline b_{21} & b_{22} & b_{23} \end{array} \right] \end{equation}

yang akan dikurangkan, tepatnya matriks pertama dikurang matriks kedua

\begin{equation}\label{eqn:matrix-c=a-b} C = A - B \end{equation}

dengan hasilnya

\begin{equation}\label{eqn:matrix-c} C = \left[ \begin{array}{ccc} c_{11} & c_{12} & c_{13} \newline c_{21} & c_{22} & c_{23} \end{array} \right]. \end{equation}

Dan berlaku

\begin{equation}\label{eqn:matrix-substraction} c_{ij} = a_{ij} - b_{ij}, \end{equation}

yang mengaitkan setiap elemen dari ketiga matriks pada Persamaan \eqref{eqn:matrix-a}, \eqref{eqn:matrix-b}, dan \eqref{eqn:matrix-c} melalui operasi penjumlahan dua buah matriks pada Persamaan \eqref{eqn:matrix-c=a-b}, di mana detil operasinya diberikan oleh Persamaan \eqref{eqn:matrix-substraction}. Dan hubungan ini yang dapat diterapkan dalam suatu bahasa pemrograman tertentu.

a code

Sebuah pustaka Python bernama matrix.py yang sekurangnya berisikan

# matrix.py
# Simple matrix library using list
# 20220216 Create this example.

# print only two-dimension matrix in form of a list
def printmat(m):
    # assume that all rows have the same columns
    row = len(m)
    col = len(m[0])

    # iterate through rows then colums
    for r in range(row):
        for c in range(col):
            print(m[r][c], end='\t')
        print()

akan dipanggil oleh program berikut ini

# 0480-matrix-no-numpy-sub.py
# Substract two matrices
# 20220216 Create this example.

import matrix as mat

# substract two two-dimension matrices in form of a list
def submat(m1, m2):
    # assume both matrices have the same dimension
    row = len(m1)
    col = len(m1[0])

    # create empty matrix
    m3 = []

    # iterate through rows then colums
    for r in range(row):
        newrow = []
        for c in range(col):
            newcol = m1[r][c] + m2[r][c]
            newrow.append(newcol)
        m3.append(newrow)
    
    return m3
    

# define a list as two-dimension matrix
m1 = [
    [1, 2, 3],
    [4, 5, 6]
    ]

m2 = [
    [1, -2, -3],
    [1, -4, 3]
    ]

m3 = submat(m1, m2)


# display results
print("m1:")
mat.printmat(m1)
print("m2:")
mat.printmat(m2)
print("m3 = m1 - m2:")
mat.printmat(m3)

sehingga memberikan

==== RESTART: 0480-matrix-no-numpy-sub.py ====
m1:
1	2	3	
4	5	6	
m2:
1	-2	-3	
1	-4	3	
m3 = m1 - m2:
0	4	6	
3	9	3

sebagai hasilnya. Perhatkan bahwa berkas matrix.py perlu diletakkan pada folder yang sama dengan berkas utama 0480-matrix-no-numpy-add.py saat berkas utama dijalankan.

Modifikasi kode di atas, sehingga mat dapat tetap digunakan, dapat dijalankan di OneCompiler 3xtjp5dbp, yang memerlukan definisi suatu namespace mat berisikan fungsi yang diperlukan untuk menggantikan baris import matrix as mat

#import matrix as mat
class mat:
  # print only two-dimension matrix in form of a list
  def printmat(m):
      # assume that all rows have the same number of columns
      row = len(m)
      col = len(m[0])
  
      # iterate through rows then colums
      for r in range(row):
          for c in range(col):
              print(m[r][c], end='\t')
          print()

agar tidak perlu mengubah baris kode yang lain. Penggunaan pustaka matrix ini adalah untuk menyembunyikan fungsi-fungsi yang bukan menjadi fokus pembahasan di sini sehingga contoh program dapat masih cukup ringkas.

exer

  1. Apa syarat Persamaan \eqref{eqn:matrix-substraction} berlaku?
  2. Apakah terdapat perbedaan yang cukup besar selain operatornya saja antara pengurangan dan penjumlahan matriks?

note

  1. Akashkumar17, “Adding and Subtracting Matrices in Python”, GeeksforGeeks, 30 Dec 2020, url https://www.geeksforgeeks.org/adding-and-subtracting-matrices-in-python/ [20220216].

comments

#bug0482

— Sparisoma Viridi (@6unpnp) February 16, 2022

 

1) dimensi kedua matriks harus sama;   2) tidak;