Aritmetik dan Operasi Matriks
Lakukan pendaraban unsur demi unsur dan matriks, penambahan serta penolakan.
Aritmetik dan Operasi Matriks ialah pelajaran R Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran R Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus R Academy merangkumi sejumlah 4 pelajaran.
Operasi Elemen demi Elemen berbanding Operasi Matriks
R membezakan antara operasi elemen demi elemen (menggunakan +, -, *, /) dengan operasi matriks sebenar (menggunakan %*%). Memahami perbezaan ini penting untuk algebra linear yang betul.
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)Penambahan dan Penolakan Elemen demi Elemen
+ dan - antara dua matriks yang mempunyai dimensi yang sama menambah atau menolak elemen yang sepadan. Ini ialah operasi yang sepenuhnya dilakukan elemen demi 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)Pembahagian dan Pendaraban Elemen demi Elemen
Begitu juga, * dan / antara matriks yang sama saiz beroperasi elemen demi elemen. Ini berguna untuk menskalakan, menormalkan atau menggabungkan matriks secara elemen demi 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 Matriks
Anda boleh menggunakan operasi skalar (satu nombor) pada setiap elemen matriks dengan operator aritmetik standard. Skalar akan diulang supaya sepadan dengan dimensi matriks.
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)Pendaraban Matriks Sebenar %*%
A %*% B melaksanakan pendaraban matriks algebra linear. Untuk operasi ini berfungsi, bilangan lajur dalam A mesti sama dengan bilangan baris dalam B. Hasilnya mempunyai dimensi (baris A) x (lajur 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) mengira jumlah setiap baris; colSums(m) mengira jumlah setiap lajur. Kedua-duanya mengembalikan vector bernama jika matriks mempunyai 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 purata setiap baris dan lajur. Kedua-duanya lebih pantas daripada menggunakan mean() dengan apply() untuk tugas biasa 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 Matriks
Operator perbandingan (==, >, <=, dll.) yang digunakan pada matriks mengembalikan matriks logik dengan dimensi yang sama. Anda kemudiannya boleh menggunakan topeng ini untuk pemilihan subset atau pengiraan.
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/Lajur Tersuai
apply(m, MARGIN, FUN) menggunakan fungsi pada baris (MARGIN=1) atau lajur (MARGIN=2). Gunakannya apabila anda memerlukan pengagregatan tersuai yang melebihi 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)), '
')Menyiarkan Vector Merentasi Baris
Apabila anda menambah atau mendarabkan vector dengan matriks, R mengulang vector tersebut — mengitarinya supaya sepadan dengan panjang matriks. Pengulangan berlaku lajur demi lajur, yang boleh menghasilkan hasil tidak dijangka jika anda mahukan operasi mengikut 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 Aritmetik
Fungsi operasi matriks utama dalam R:
+,-,*,/— aritmetik elemen demi elemen%*%— pendaraban matriks (algebra linear)rowSums(),colSums()— jumlah baris/lajurrowMeans(),colMeans()— purata baris/lajurapply(m, 1, fn)/apply(m, 2, fn)— pengagregatan baris/lajur tersuaisweep()— operasi mengikut baris/lajur 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), '
')Semakan Pantas
Apakah yang dikira oleh A * B apabila A dan B ialah matriks 2x2 dalam R?
Imbas Kembali: Aritmetik Matriks
Kerja yang bagus! Perkara penting daripada pelajaran ini:
+,-,*,/pada matriks adalah elemen demi elemen%*%ialah pendaraban matriks sebenar (baris × lajur)rowSums(),colSums(),rowMeans(),colMeans()melakukan pengagregatan merentas baris/lajur- Operator perbandingan mengembalikan matriks logik dengan bentuk yang sama
apply(m, 1, fn)menggunakan fungsi mengikut baris;apply(m, 2, fn)mengikut lajur- Gunakan
sweep()untuk penskalaan baris/lajur secara tervector
# 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)Pelajari R dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 43
- Pelajaran
- 159
Soalan Lazim
Adakah pelajaran “Aritmetik dan Operasi Matriks” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran R Academy, termasuk “Aritmetik dan Operasi Matriks”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus R Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Aritmetik dan Operasi Matriks”?
Lakukan pendaraban unsur demi unsur dan matriks, penambahan serta penolakan. Anda berlatih R Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan R Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran R Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Aritmetik dan Operasi Matriks” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran R Academy ini?
Ya. Setiap pelajaran R Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mencipta Matriks dengan matrix()
- Pengindeksan dan Pensubsetan Matriks
- Aritmetik dan Operasi Matriks
- Mentranspos dan Membentuk Semula Matriks