#ماتریس
علاوه بر تابع
dim()
برای ساختن ماتریس می توان از تابع
#matrix()
به شکل زیر استفاده کرد
matrix( c() , ncol=a, nrow=b,byrow=T or F )
که در ان
بردار
c( )
که میخوایم به ماتریس تبدیل کنیم
Ncol
تعداد ستون ها
Nrow
تعداد سطر ها
Byrow =T
نيز ترتيب پر
کردن
ماتریس را به صورت سطري انجام می دهد بدین معنی که ابتدا تمام درایه های سطر اول پر می شود
سپس به سطر دوم می رود و ...
@R_Experts
علاوه بر تابع
dim()
برای ساختن ماتریس می توان از تابع
#matrix()
به شکل زیر استفاده کرد
matrix( c() , ncol=a, nrow=b,byrow=T or F )
که در ان
بردار
c( )
که میخوایم به ماتریس تبدیل کنیم
Ncol
تعداد ستون ها
Nrow
تعداد سطر ها
Byrow =T
نيز ترتيب پر
کردن
ماتریس را به صورت سطري انجام می دهد بدین معنی که ابتدا تمام درایه های سطر اول پر می شود
سپس به سطر دوم می رود و ...
@R_Experts
#کار_بر_روی_ماتریس_ها
برای نام گذاری سطر ها
برای نام گذاری ستون ها
ترانهاده_یک_ماتریس
ضرب_ماتریس_ها
برای محاسبه معکوس یک ماتریس و یا حل یک معادله ی ماتریس از تابع
استفاده میشود .
اگر در تابع فقط ماتریس را وارد کنیم معکوس ماتریس را به ما می دهد
ولی اگر علاوه بر ماتریس بردار جواب را نیز وارد کنیم جواب معادله
را می دهد.
@R_Experts
برای نام گذاری سطر ها
rownames(c())
برای نام گذاری ستون ها
colnames(c())
ترانهاده_یک_ماتریس
t()
ضرب_ماتریس_ها
A %*% B
برای محاسبه معکوس یک ماتریس و یا حل یک معادله ی ماتریس از تابع
solve()
استفاده میشود .
اگر در تابع فقط ماتریس را وارد کنیم معکوس ماتریس را به ما می دهد
ولی اگر علاوه بر ماتریس بردار جواب را نیز وارد کنیم جواب معادله
AX=b
را می دهد.
@R_Experts
#تمرين_٢
برنامه اي بنويسيد كه ١٠٠٠ عدد تصادفي از توزيع دلخواه
"rnorm(1000)"
بگيرد و انها را در ماتريسي
10(row)*100(col)
قرار داده و واريانس
var( )
هر ستون را محاسبه
و انها را در خروجي در يك ماتريس
100(row)*1
قرار دهد
سپس با مقايسه هر كدام از درايه هاي ماتريس "همه درايه ها " اگر
ai1<aj1
عدد صفر را تخصيص و اگر
ai1>aj1
بود عدد 1 را تخصيص دهد
"ترتيب قرار گيري مهم است يعني اينكه
a11,a21
a21,a11
متفاوت است و هر دو مقايسه بايد صورت گيرد،"
و پس از پايان مجموع اين اعداد را در يك شي دخيره كند.
جواب تمرين در صورتي كه جواب صحيح ارسال شود در كانال گذاشته ميشود
@Analyst20
@javad_vhd
@hamedrezaei2
با تشكر 💎🌷💎
https://telegram.me/R_Experts
برنامه اي بنويسيد كه ١٠٠٠ عدد تصادفي از توزيع دلخواه
"rnorm(1000)"
بگيرد و انها را در ماتريسي
10(row)*100(col)
قرار داده و واريانس
var( )
هر ستون را محاسبه
و انها را در خروجي در يك ماتريس
100(row)*1
قرار دهد
سپس با مقايسه هر كدام از درايه هاي ماتريس "همه درايه ها " اگر
ai1<aj1
عدد صفر را تخصيص و اگر
ai1>aj1
بود عدد 1 را تخصيص دهد
"ترتيب قرار گيري مهم است يعني اينكه
a11,a21
a21,a11
متفاوت است و هر دو مقايسه بايد صورت گيرد،"
و پس از پايان مجموع اين اعداد را در يك شي دخيره كند.
جواب تمرين در صورتي كه جواب صحيح ارسال شود در كانال گذاشته ميشود
@Analyst20
@javad_vhd
@hamedrezaei2
با تشكر 💎🌷💎
https://telegram.me/R_Experts
Telegram
|R| Experts
@R_Experts
🔴آمار علم جان بخشیدن به دادههاست.
🔷ارتباط با ما
@iamrezaei
لینک یوتیوب و اینستاگرام و ویرگول:
https://zil.ink/expertstv
🔴آمار علم جان بخشیدن به دادههاست.
🔷ارتباط با ما
@iamrezaei
لینک یوتیوب و اینستاگرام و ویرگول:
https://zil.ink/expertstv
#سرگرمی
با دستور ساده زیر می توان #رنگین_کمان کشید
n <- 2000
pie(rep(1,n ),labels = "",border = NA,col = rainbow(n),main = " R_Experts")
@R_Experts
با دستور ساده زیر می توان #رنگین_کمان کشید
n <- 2000
pie(rep(1,n ),labels = "",border = NA,col = rainbow(n),main = " R_Experts")
@R_Experts
#ginv( )
تابعی در پکیج
MASS
برای محاسبه ی معکوس ماتریس به کار میرود که
معکوس تعمیم یافته هست و زمانی که ماتریس مربعی نباشد میتوان از این دستور استفاده کرد و معکوس ماتریس را بدست اورد
#Example
تابعی در پکیج
MASS
برای محاسبه ی معکوس ماتریس به کار میرود که
معکوس تعمیم یافته هست و زمانی که ماتریس مربعی نباشد میتوان از این دستور استفاده کرد و معکوس ماتریس را بدست اورد
#Example
dat1 <- c(3,4,5,2,1,3,6,5,4)
matrix1 <- matrix(dat1, nrow = 3, ncol = 3, byrow = TRUE)
matrix1
[,1] [,2] [,3]
[1,] 3 4 5
[2,] 2 1 3
[3,] 6 5 4
library(MASS)
ginv(matrix1)
[,1] [,2] [,3]
[1,] -0.4074074 0.3333333 0.25925926
[2,] 0.3703704 -0.6666667 0.03703704
[3,] 0.1481481 0.3333333 -0.18518519
#مقاذیر_ویژه_بردارهای_ویژه
در مثال قبل :
@R_Experts
در مثال قبل :
eigen(matrix1)
$values
[1] 11.238947 -2.088872 -1.150075
$vectors
[,1] [,2] [,3]
[1,] -0.6017346 -0.3458537 -0.4307244
[2,] -0.3305706 -0.5288292 0.8445517
[3,] -0.7270754 0.7750644 -0.3181336
@R_Experts
#Example_2
گزاره هاي منطقي هستند
كه ارزش درست يا نادرست ميگيرند.
@R_EXperts
> A <- matrix(c(2,3,-2,1,2,2),3,2)
> A
[,1] [,2]
[1,] 2 1
[2,] 3 2
[3,] -2 2
> is.matrix(A)
[1] TRUE
> is.vector(A)
[1] FALSE
is.matrix( )
is.vector( )
گزاره هاي منطقي هستند
كه ارزش درست يا نادرست ميگيرند.
@R_EXperts
#Example_3
@R_Experts
> A = matrix(
+ c(2, 4, 3, 1, 5, 7), # the data elements
+ nrow=2, # number of rows
+ ncol=3, # number of columns
+ byrow = TRUE) # fill matrix by rows
> A # print the matrix
[,1] [,2] [,3]
[1,] 2 4 3
[2,] 1 5 7
> A[2, 3] # element at 2nd row, 3rd column
[1] 7
> A[2, ] # the 2nd row
[1] 1 5 7
> A[ ,3] # the 3rd column
[1] 3 7
> A[ ,c(1,3)] # the 1st and 3rd columns
[,1] [,2]
[1,] 2 3
[2,] 1 7
> dimnames(A) = list(
+ c("row1", "row2"), # row names
+ c("col1", "col2", "col3")) # column names
> A # print A
col1 col2 col3
row1 2 4 3
row2 1 5 7
> A["row2", "col3"] # element at 2nd row, 3rd column
[1] 7
@R_Experts
#cbind
ترکیب ستونی کنار یکدیگر
@R_Experts
ترکیب ستونی کنار یکدیگر
> x = cbind(c(10, 20), c("[]", "[]"), c("[[1,2]]","[[1,3]]"))> x
[,1] [,2] [,3]
[1,] "10" "[]" "[[1,2]]"
[2,] "20" "[]" "[[1,3]]"
@R_Experts
#rbind
ترکیب سطری کنار یکدیگر
@R_Experts
ترکیب سطری کنار یکدیگر
> x = rbind(c(10, "[]", "[[1,2]]"), c(20, "[]", "[[1,3]]"))
> x
[,1] [,2] [,3]
[1,] "10" "[]" "[[1,2]]"
[2,] "20" "[]" "[[1,3]]"
@R_Experts
#chol
تجزیه چولسکی
#Example
@R_Experts
تجزیه چولسکی
#Example
> x <- matrix(c(8,1,1,4),2,2)
> x
[,1] [,2]
[1,] 8 1
[2,] 1 4
> y <- chol(x)
> y
[,1] [,2]
[1,] 2.828427 0.3535534
[2,] 0.000000 1.9685020
> x <- matrix(rep(1:4),2,2)
> x
[,1] [,2]
[1,] 1 3
[2,] 2 4
> y <- chol(x)
Error in chol.default(x) :
the leading minor of order 2 is not positive definite
@R_Experts
|R| Experts
#rbind & #cbind در صورتی که بخواهیم با وصل کردن چند بردار یا چند ماتریس به هم ماتریس یا بردار جدید بسازیم از توابع #rbind() و #cbind() استفاده میکنیم. تابع #rbind() بردار ها یا ماتریس ها را به صورت سطری کنار هم قرار می دهد و تابع #cbind() این کار را به…
#تذکر
اگر طول بردار ها با هم متفاوت باشد نرم افزار هشدار میدهد
ولی باز عملیات را اجرا میکند در حالی که بردار کوچکتر
را باز تکرار میکند و در کنار بردار بزرگتر قرار می هد
@R_Experts
اگر طول بردار ها با هم متفاوت باشد نرم افزار هشدار میدهد
ولی باز عملیات را اجرا میکند در حالی که بردار کوچکتر
را باز تکرار میکند و در کنار بردار بزرگتر قرار می هد
@R_Experts