ماتریس در زبان R اشیایی هستند که عناصر در آنها بهصورت یک آرایش مستطیلیِ دوبعدی ذخیره میشوند. تمام عناصر یک ماتریس از یک نوع اتمی (atomic type) یکسان هستند. گرچه میتوان ماتریسی شامل تنها کاراکترها یا مقادیر منطقی ایجاد کرد، اما معمولاً کاربرد چندانی ندارند. در عمل، بیشتر از ماتریسهایی با عناصر عددی برای انجام محاسبات ریاضی استفاده میکنیم.
یک ماتریس با استفاده از تابع matrix() ساخته میشود.
نحو (Syntax)
ساختار پایه برای ایجاد ماتریس در زبان R به صورت زیر است:
1 |
matrix(data, nrow, ncol, byrow, dimnames) |
توضیح پارامترها:
-
data: بردار (vector) ورودی که عناصر ماتریس را تشکیل میدهد.
-
nrow: تعداد سطرهایی که باید ساخته شوند.
-
ncol: تعداد ستونهایی که باید ساخته شوند.
-
byrow: یک مقدار منطقی (logical). اگر TRUE باشد، عناصر بردار بهترتیب در سطرها قرار میگیرند.
-
dimnames: نامهایی که به سطرها و ستونها اختصاص داده میشوند.
مثال
ایجاد یک ماتریس با استفاده از یک بردار عددی
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# عناصر بهترتیب در سطرها قرار میگیرند. M <- matrix(c(3:14), nrow = 4, byrow = TRUE) print(M) # عناصر بهترتیب در ستونها قرار میگیرند. N <- matrix(c(3:14), nrow = 4, byrow = FALSE) print(N) # تعریف نام ستونها و سطرها. rownames = c("row1", "row2", "row3", "row4") colnames = c("col1", "col2", "col3") P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames)) print(P) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[,1] [,2] [,3] [1,] 3 4 5 [2,] 6 7 8 [3,] 9 10 11 [4,] 12 13 14 [,1] [,2] [,3] [1,] 3 7 11 [2,] 4 8 12 [3,] 5 9 13 [4,] 6 10 14 col1 col2 col3 row1 3 4 5 row2 6 7 8 row3 9 10 11 row4 12 13 14 |
دسترسی به عناصر ماتریس در زبان R
عناصر یک ماتریس را میتوان با استفاده از اندیس (index) سطر و ستون آن عنصر به دست آورد. در اینجا از ماتریس P که در بخش قبل ساخته شد برای نمونه استفاده میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# تعریف نام سطرها و ستونها rownames = c("row1", "row2", "row3", "row4") colnames = c("col1", "col2", "col3") # ساخت ماتریس P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames)) # دسترسی به عنصر ستون سوم و سطر اول print(P[1,3]) # دسترسی به عنصر ستون دوم و سطر چهارم print(P[4,2]) # دسترسی فقط به سطر دوم print(P[2,]) # دسترسی فقط به ستون سوم print(P[,3]) |
1 2 3 4 5 6 |
[1] 5 [1] 13 col1 col2 col3 6 7 8 row1 row2 row3 row4 5 8 11 14 |
محاسبات ماتریسی
در R میتوان انواع عملیات ریاضی را با استفاده از عملگرها روی ماتریسها انجام داد. نتیجه این عملیات نیز یک ماتریس خواهد بود.
نکته: ابعاد ماتریسها (تعداد سطر و ستون) باید یکسان باشند تا عملیات روی آنها معتبر باشد.
جمع و تفریق ماتریسها
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# ایجاد دو ماتریس 2x3 matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2) print(matrix1) matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2) print(matrix2) # جمع دو ماتریس result <- matrix1 + matrix2 cat("Result of addition","\n") print(result) # تفریق دو ماتریس result <- matrix1 - matrix2 cat("Result of subtraction","\n") print(result) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[,1] [,2] [,3] [1,] 3 -1 2 [2,] 9 4 6 [,1] [,2] [,3] [1,] 5 0 3 [2,] 2 9 4 Result of addition [,1] [,2] [,3] [1,] 8 -1 5 [2,] 11 13 10 Result of subtraction [,1] [,2] [,3] [1,] -2 -1 -1 [2,] 7 -5 2 |
ضرب و تقسیم ماتریسها
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# ایجاد دو ماتریس 2x3 matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2) print(matrix1) matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2) print(matrix2) # ضرب دو ماتریس (عنصر به عنصر) result <- matrix1 * matrix2 cat("Result of multiplication","\n") print(result) # تقسیم دو ماتریس (عنصر به عنصر) result <- matrix1 / matrix2 cat("Result of division","\n") print(result) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[,1] [,2] [,3] [1,] 3 -1 2 [2,] 9 4 6 [,1] [,2] [,3] [1,] 5 0 3 [2,] 2 9 4 Result of multiplication [,1] [,2] [,3] [1,] 15 0 6 [2,] 18 36 24 Result of division [,1] [,2] [,3] [1,] 0.6 -Inf 0.6666667 [2,] 4.5 0.4444444 1.5000000 |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۶ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس