ماتریسهای خاص در متلب
به نام خدا و سلام.
به جلسه هشتم آموزش نرم افزار متلب خوش آمدید. این جلسات آموزشی توسط وبسایت متلب پلاس به صورت کاملا رایگان ارائه میشود. از جلسه چهارم کار با ماتریسها در متلب را آغاز کردیم. به مباحث مهمی مانند ایجاد ماتریس، اندیس گذاری ماتریسها در متلب، تغییرشکل و اندازه ماتریس و عملیات ریاضی روی ماتریسها پرداختیم. در این جلسه نوبت به معرفی ماتریسهای خاص در متلب میرسد.
با متلب پلاس همراه باشید.
مقدمهای بر ماتریسهای خاص در متلب
تا اینجای کار بارها تکرار کردیم که اساس نرم افزار متلب را ماتریسها تشکیل میدهند. به همین دلیل ماتریسهای مختلف مانند؛ ماتریس صفر، ماتریس همانی، ماتریس یک و… اهمیت فراوانی دارند. این ماتریسهای خاص و ویژه بطور پیشفرض در متلب وجود دارند. در ادامه آموزش رایگان متلب به معرفی هرکدام از این ماتریسهای خاص در متلب میپردازیم.
ماتریس صفر zeros در متلب
ماتریس صفر در متلب کاربردهای فراوانی دارد. یکی از کاربردهای آن، مقداردهی به ماتریس صفر برای ایجاد یک ماتریس است. یعنی ابتدا یک ماتریس صفر ایجاد میکنیم، سپس به درایههای آن، مقدار مشخصی اختصاص میدهیم. این روند بیشتر در حلقههای محاسباتی استفاده میشود. نحوه ایجاد ماتریس صفر در متلب، استفاده از دستور zeros است. zeros(n) یک ماتریس مربعی n×n با درایههای صفر ایجاد میکند. zeros(m,n) نیز یک ماتریس صفر با m سطر و n ستون ایجاد میکند.
zeros(4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
zeros(2,3)
ans =
0 0 0
0 0 0
برای ایجاد بردار صفر در متلب نیز از دستور zeros استفاده میشود. فقط بایستی ابعاد بردار را به درستی وارد کنید. یک بردار در واقع ماتریسی است که یک سطر یا ستون آن بُعد یک دارد.
zeros(1,5)
ans =
0 0 0 0 0
zeros(4,1)
ans =
0
0
0
0
کاربرد ماتریس یا بردار صفر در متلب
در محاسبات تکراری درون حلقهها در واقع در هر دور از تکرار یک پاسخ مشخص محاسبه میشود. یکی از مهمترین کاربردهای ماتریسهای صفر در متلب، اختصاص پاسخ هر مرحله از حلقه به درایههای این ماتریس صفر است. در جلسات آینده که مبحث حلقه for در متلب را مطرح کنیم، حتما با ماتریسهای صفر سروکار خواهیم داشت. پس نگران کاربرد ماتریسهای صفر در متلب نباشید!
ماتریس همانی eye در متلب
دومین ماتریس خاصی که قصد معرفی آن را داریم، ماتریس همانی (Identity matrix) است. در دبیرستان با ماتریس همانی و کاربردهای آن آشنا شدیم. نمایش این ماتریس خاص در ریاضیات با حرف I است. ماتریس همانی یک ماتریس مربعی است که درایههای روی قطر اصلی آن یک و بقیه درایهها صفر میباشند. ضرب هر ماتریس A در ماتریس همانی (هم اندازه خودش) برابر با ماتریس A است. برای ایجاد ماتریس همانی در متلب از دستور eye استفاده میکنیم. eye(n) یک ماتریس همانی n×n ایجاد میکند.
eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
گرچه در ریاضیات، ماتریس همانی همواره مربعی است اما در متلب میتوان ماتریس همانی غیرمربعی هم ساخت. eye(m,n) یک ماتریس همانی با m سطر و n ستون ایجاد کرده و درایههای روی قطر اصلی (تا جایی که وجود دارد) را یک قرار میدهد.
eye(4,3)
ans =
1 0 0
0 1 0
0 0 1
0 0 0
ماتریس یک ones در متلب
گاهی نیاز داریم تا یک ماتریس با درایهای یک ایجاد کنیم. برای ایجاد ماتریس یک در متلب، از دستور ones استفاده میکنیم. ones(n) یک ماتریس مربعی n×n با درایههای یک ایجاد میکند. ones(m,n) نیز یک ماتریس با عناصر یک، با m سطر و n ستون ایجاد میکند.
ones(5)
ans =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
ones(3,4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
برای ایجاد بردار یک در متلب بازهم از دستور ones استفاده میکنیم. در این حالت به ابعاد وارد شده دقت داریم که یکی از آنها حتما یک باشد.
ones(4,1)
ans =
1
1
1
1
ones(1,3)
ans =
1 1 1
ماتریس جادویی magic در متلب
احتمالا در مسائل بازی و ریاضی مسئلهای را دیدهاید که از شما میخواهد جدولی بسازید که مجموع اعدادش در هر راستا برابر باشد. حل این مسائل کار آسانی نیست. مخصوصا اگر تعداد سطر و ستون جدول زیاد باشد. اما در متلب دستوری داریم به نام magic که این کار را انجام میدهد. magic(n) ماتریس مربعیای ایجاد میکند که جمع درایههای سطری، ستونی و قطری آن باهم برابر است.
magic(3)
ans =
8 1 6
3 5 7
4 9 2
A = magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
در این ماتریسها، جمع درایههای هر سطر، ستون و قطر باهم برابر است.
ماتریسهای چند بُعدی در متلب
آریهای که بیش از دو بُعد داشته باشد، چند بُعدی نامیده میشود. آرایههای چند بُعدی در متلب، در واقع گسترش یافته آرایههای دو بُعدی هستند. همانطور که در جلسات گذشته هم دیدیم، آدرس دهی ماتریس دو بُعدی در متلب به صورت شکل زیر است.
مشابه با این آدرس دهی، برای ماتریس سه بُعدی، شمارنده صفحه در انتها قرار میگیرد. در واقع، در ابتدا شماره سطر، سپس شماره ستون و در نهایت شماره صفحه میآید. مثلا در ماتریس دو بُعدی، درایه اول (1,1) است، اما در ماتریس سه بُعدی (1,1,1) میباشد. به شکل زیر دقت کنید.
اما ماتریسهایی با ابعاد بالاتر نیز در متلب وجود دارند که امکان نمایش آنها در صفحه وجود ندارد.
نحوه ایجاد ماتریسهای چند بُعدی در متلب، مشابه با ماتریسهای دو بُعدی است. با این تفاوت که به تعداد بُعد، اندیس داریم. به عبارت دیگر، A(m,n) یک ماتریس دو بُعدی، B(m,n,k) یک ماتریس سه بُعدی، C(m,n,k,l) یک ماتریس چهار بُعدی و… میباشد.
A = ones(3,3)
A =
1 1 1
1 1 1
1 1 1
B = ones(3,3,3)
B(:,:,1) =
1 1 1
1 1 1
1 1 1
B(:,:,2) =
1 1 1
1 1 1
1 1 1
B(:,:,3) =
1 1 1
1 1 1
1 1 1
در مثال زیر یک ماتریس سه بُعدی را با وارد کردن تک تک درایههای آن، میسازیم.
A = [1 2; 3 4];
A(:,:,2) = [5 6; 7 8];
A(:,:,3) = [9 10; 11 12];
A
A(:,:,1) =
1 2
3 4
A(:,:,2) =
5 6
7 8
A(:,:,3) =
9 10
11 12
size(A)
ans =
2 2 3
همینطور که مشاهده میکنید، A یک ماتریس سه بُعدی است. این ماتریس سه بُعدی دارای 2 سطر، 2 ستون و 3 صفحه است.
تمرینات این جلسه
در انتهای این جلسه 3 تمرین متلب مربوط به مباحث این جلسه ارائه شده است. لطفا این تمرینها را حل کرده و با پاسخ آن مقایسه کنید. پاسخ تمرینات متلب این جلسه در کانال تلگرام متلب پلاس منتشر میشود. از آیکونهای سمت راست صفحه میتوانید در این کانال عضو شوید.
تمرین اول) یک ماتریس صفر به ابعاد 4×3 ایجاد کنید.
تمرین دوم) یک بردار ستونی 10 عضوی با درایههای یک ایجاد کنید. درایهها را به صورت دستی وارد نکنید.
تمرین سوم) یک ماتریس جادویی 4×4 ایجاد کنید. با ضرب این ماتریس در ماتریس همانی، نشان دهید که حاصل برابر با ماتریس اولیه است.
جمعبندی
خب، جلسه هشتم از سری جلسات آموزش نرم افزار متلب به پایان رسید. این جلسه درباره ماتریسهای خاص و ماتریسهای چند بُعدی در متلب صحبت کردیم. ماتریسهای خاص در برنامه نویسی متلب به ما کمک میکنند تا سریعتر و راحتتر کدنویسی کنیم. به همین دلیل مباحث این جلسه اهمیت ویژهای دارند. سعی ما انتقال مفاهیم به زبانی ساده و ارائه مثالهای متنوع بود. هدف اصلی تیم متلب پلاس ارائه آموزش متلب به صورت حرفهای و رایگان است. بی صبرانه منتظر نظرات، سوال و ابهامات شما عزیزان هستیم. سعی میکنیم تا هرگونه سوال یا ابهامی که در این باره دارید را پاسخ دهیم.
توصیه میشود که حتما تمرینات این جلسه را انجام بدید و اگر سوال و ابهامی دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست هم میتونید به بقیه جلسات دسترسی داشته باشید.
6 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
پروردگار همیشه پشت و پنهاتون
با سلام و عرض ادب
خیلی ممنون و متشکریم آرین عزیز.
در پناه حق باشید.
سلام وقت بخیر
من میخوام با متلب دترمینان یک ماتریس 3بعدی رو محاسبه کنم اما با ارور زیر برخورد میکنم
Input must be 2-D.
چجوری میتونم حلش کنم؟
ممنون میشم راهنماییم کنید
سلام و عرض ادب
دترمینان برای ماتریس دو بعدی محاسبه میشه. برای محاسبه دترمینان ماتریس سه بعدی در متلب، باید در اندیس دهی اون رو بصورت ماتریس دو بعدی بیان کنید. مثلا دترمینان بُعد اول، دوم و …. رو محاسبه کنید.
موفق باشید.
ممنون از مقاله خوبتون
می توان گفت در یک ماتریس جادویی n*n اعداد یک تا n^2 را در ماتریس به گونه ای می چینیم که مجموع اعداد هر سطر، هر ستون و هر یک از دو قطر با هم برابر و مساوی مقدار n*(n^2+1)/2 شود.