Aritmetika dan Operasi Matriks
Lakukan perkalian elemen per elemen dan perkalian matriks, penjumlahan, serta pengurangan.
Aritmetika dan Operasi Matriks adalah pelajaran R Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar R Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus R Academy mencakup 4 pelajaran total.
Operasi Per Elemen vs Operasi Matrix
R membedakan operasi per elemen (menggunakan +, -, *, /) dan operasi matrix yang sebenarnya (menggunakan %*%). Memahami perbedaan ini sangat penting untuk aljabar linear yang benar.
A <- matrix(c(1,2,3,4), nrow = 2)
B <- matrix(c(5,6,7,8), nrow = 2)
cat('A:
'); print(A)
cat('B:
'); print(B)
# Element-wise multiply
cat('A * B (element-wise):
'); print(A * B)
# Matrix multiply
cat('A %*% B (matrix mult):
'); print(A %*% B)Penjumlahan dan Pengurangan Per Elemen
+ dan - di antara dua matrix dengan dimensi yang sama menjumlahkan atau mengurangkan elemen-elemen yang bersesuaian. Ini sepenuhnya merupakan operasi per elemen.
# Monthly revenue vs target (in thousands)
revenue <- matrix(c(120,135,110,98, 145,160,132,115),
nrow = 2, byrow = TRUE)
target <- matrix(c(130,130,130,130, 150,150,150,150),
nrow = 2, byrow = TRUE)
deviation <- revenue - target
cat('Revenue vs Target deviation:
')
print(deviation)
cat('Above target?:
')
print(revenue >= target)Pembagian dan Perkalian Per Elemen
Demikian pula, * dan / di antara matrix dengan ukuran yang sama beroperasi elemen demi elemen. Ini berguna untuk menskalakan, menormalkan, atau menggabungkan matrix per elemen.
# Scale a matrix by another (element-wise)
prices <- matrix(c(10, 20, 15, 25), nrow = 2)
quantities <- matrix(c(5, 3, 8, 2), nrow = 2)
total_cost <- prices * quantities
cat('Total cost per item:
')
print(total_cost)
# Normalise to row maximum
max_prices <- matrix(rep(apply(prices, 1, max), 2), nrow = 2)
norm_prices <- prices / max_prices
cat('Normalised prices:
')
print(norm_prices)Operasi Skalar pada Matrix
Anda dapat menerapkan operasi skalar (satu bilangan) pada setiap elemen matrix menggunakan operator aritmetika standar. Skalar akan diulang agar sesuai dengan dimensi matrix.
m <- matrix(c(10, 20, 30, 40, 50, 60), nrow = 2, ncol = 3)
cat('Original:
'); print(m)
cat('m + 5:
'); print(m + 5)
cat('m * 2:
'); print(m * 2)
cat('m / 10:
'); print(m / 10)
cat('m ^ 2:
'); print(m ^ 2)Perkalian Matrix Sebenarnya %*%
A %*% B melakukan perkalian matrix dalam aljabar linear. Agar dapat dilakukan, jumlah kolom pada A harus sama dengan jumlah baris pada B. Hasilnya memiliki dimensi (baris A) x (kolom B).
# 2x3 times 3x2 = 2x2
A <- matrix(c(1,2,3, 4,5,6), nrow = 2, byrow = TRUE)
B <- matrix(c(7,8, 9,10, 11,12), nrow = 3, byrow = TRUE)
cat('A (2x3):
'); print(A)
cat('B (3x2):
'); print(B)
cat('A %*% B (2x2):
'); print(A %*% B)rowSums() dan colSums()
rowSums(m) menghitung jumlah setiap baris; colSums(m) menghitung jumlah setiap kolom. Keduanya mengembalikan vector bernama jika matrix memiliki nama dimensi.
sales <- matrix(
c(120,135,110,98, 145,160,132,115, 88,95,102,78),
nrow = 3, byrow = TRUE,
dimnames = list(c('Q1','Q2','Q3'), c('Jan','Feb','Mar','Apr'))
)
cat('Sales matrix:
'); print(sales)
cat('Quarterly totals:', rowSums(sales), '
')
cat('Monthly totals: ', colSums(sales), '
')rowMeans() dan colMeans()
rowMeans(m) dan colMeans(m) masing-masing mengembalikan rata-rata setiap baris dan kolom. Keduanya lebih cepat daripada menerapkan mean() dengan apply() untuk tugas umum ini.
exam_scores <- matrix(
c(88,92,75,81, 79,85,90,73, 95,78,82,88),
nrow = 3, byrow = TRUE,
dimnames = list(c('Alice','Bob','Carol'), c('Math','Sci','Eng','Hist'))
)
cat('Student averages:
')
print(rowMeans(exam_scores))
cat('Subject averages:
')
print(colMeans(exam_scores))Operasi Perbandingan pada Matrix
Operator perbandingan (==, >, <=, dan lainnya) yang diterapkan pada matrix mengembalikan matrix logis dengan dimensi yang sama. Selanjutnya, Anda dapat menggunakan mask ini untuk membuat subset atau melakukan penghitungan.
scores <- matrix(c(88,45,92,61,73,55,84,79), nrow = 2)
cat('Scores:
'); print(scores)
# Which elements pass?
passing_mask <- scores >= 60
cat('Passing mask:
'); print(passing_mask)
cat('Number passing:', sum(passing_mask), '
')
cat('Passing scores:', scores[passing_mask], '
')apply() untuk Operasi Baris/Kolom Kustom
apply(m, MARGIN, FUN) menerapkan fungsi pada baris (MARGIN=1) atau kolom (MARGIN=2). Gunakan ini saat Anda memerlukan agregasi kustom selain rowSums/colMeans.
m <- matrix(c(3,1,4,1,5,9,2,6,5,3,5,8), nrow = 3)
cat('Matrix:
'); print(m)
# Max of each row
cat('Row max: ', apply(m, 1, max), '
')
# Range of each column
cat('Col range:
')
print(apply(m, 2, range))
# Custom: count values > 4 per row
cat('Values > 4 per row:', apply(m, 1, function(x) sum(x > 4)), '
')Menerapkan Vector ke Seluruh Baris
Saat Anda menjumlahkan atau mengalikan vector dengan matrix, R mengulang vector tersebut — menjalankannya berulang kali agar sesuai dengan panjang matrix. Pengulangan berlangsung kolom demi kolom, yang dapat menghasilkan hasil tak terduga jika Anda menginginkan operasi per baris.
m <- matrix(c(10,20,30, 40,50,60), nrow = 2)
cat('Matrix:
'); print(m)
# Add a 3-element vector: R recycles column-by-column
v <- c(1, 2, 3)
cat('m + c(1,2,3):
'); print(m + v)
# For row-wise scaling, use sweep()
row_weights <- c(0.5, 2.0) # scale row 1 by 0.5, row 2 by 2
cat('Row-wise scaled:
'); print(sweep(m, 1, row_weights, '*'))Ringkasan Operasi Aritmetika
Fungsi operasi matrix utama di R:
+,-,*,/— aritmetika per elemen%*%— perkalian matrix (aljabar linear)rowSums(),colSums()— total baris/kolomrowMeans(),colMeans()— rata-rata baris/kolomapply(m, 1, fn)/apply(m, 2, fn)— agregasi baris/kolom kustomsweep()— operasi per baris/kolom dengan vector
m <- matrix(c(4,9,16,25), nrow = 2)
cat('Original:
'); print(m)
cat('sqrt (element-wise):
'); print(sqrt(m))
cat('rowSums:', rowSums(m), '
')
cat('colMeans:', colMeans(m), '
')Pemeriksaan Singkat
Apa yang dihitung oleh A * B ketika A dan B merupakan matrix 2x2 di R?
Ringkasan: Aritmetika Matrix
Kerja bagus! Hal-hal penting dari pelajaran ini:
+,-,*,/pada matrix bekerja per elemen%*%adalah perkalian matrix yang sebenarnya (baris × kolom)rowSums(),colSums(),rowMeans(),colMeans()melakukan agregasi berdasarkan baris/kolom- Operator perbandingan mengembalikan matrix logis dengan bentuk yang sama
apply(m, 1, fn)menerapkan fungsi per baris;apply(m, 2, fn)menerapkannya per kolom- Gunakan
sweep()untuk penskalaan baris/kolom secara tervectorisasi
# Final: compute grade curve (add 5 to all scores, cap at 100)
raw <- matrix(c(88,55,92,73,60,45,78,95), nrow = 2)
curved <- pmin(raw + 5, 100) # pmin applies min element-wise
cat('Raw:
'); print(raw)
cat('Curved:
'); print(curved)Pertanyaan yang Sering Diajukan
Apakah pelajaran “Aritmetika dan Operasi Matriks” gratis?
Ya — teks lengkap “Aritmetika dan Operasi Matriks” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus R Academy, upgrade ke CoddyKit PRO. Kursus R Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Aritmetika dan Operasi Matriks”?
Lakukan perkalian elemen per elemen dan perkalian matriks, penjumlahan, serta pengurangan. Kamu berlatih R Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai R Academy?
Tidak diperlukan pengalaman sebelumnya. R Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Aritmetika dan Operasi Matriks” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran R Academy ini?
Ya. Setiap pelajaran R Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membuat Matriks dengan matrix()
- Pengindeksan dan Subset Matriks
- Aritmetika dan Operasi Matriks
- Mentransposisi dan Mengubah Bentuk Matriks