اعمال روی ماتریس در متلب (MATLAB)

تعریف ماتریس در متلب

برای تعریف ماتریس در متلب از [] استفاده می ­شود و برای تعریف یک سطر از ” , ”و برای رفتن به سطر بعد از” ; ” استفاده میشود. به عنوان مثال اگر بخواهیم یک ماتریس مانند [۱,۲,۵,۹,۸]=a  تعریف کنیم صرفا کافیست مثل همین تایپک را در command window استفاده نماییم. البته متلب به جای ” , ” کلید space را نیز تعریف نموده است لذا شما می توانید به صورت زیر ماتریس a را تعریف نمایید [۸ ۹ ۵ ۲ ۱]=a شکل زیر نشان­گر این موضوعات می باشد.

ماتریس در متلب

شکل زیر نیز تعریف یک ماتریس حاوی بیش از یک سطر را نشان می­دهد به عنوان مثال ماتریس:

matrics

برای تعریف چنین ماتریسی کافیست [a=[1 2 3;4 5 6;7 8 9 را در قسمت command window تایپ نمایید.” ; ”  برای جدا کردن سطرها از هم می باشد  که در زیر نشان داده شده است:

ماتریس در متلب 2

خوشبختانه متلب نسبت به زبان برنامه ­نویسی c به فاصله بین حروف و …  حساس نیست، لذا فاصله­ ی اضافی مشکل ­زا نمی ­باشد.

بعد از تعریف ماتریس a به صورت بالا،اگر به قسمت workspace هم نگاه کنید شکل زیر را خواهید دید که نشان از تعریف به صورت ماتریسی a در حافظه متلب می­ باشد.

ماتریس در متلب 3

برای تعریف ماتریس ها می توان از ” : “نیز استفاده نمود بدین صورت که اگر ماتریس مورد نظر ترتیب و رند خاصی دارد به عنوان مثال سطر اول حاوی اعداد ۲، ۴، ۶، ۸، ۱۰ است یعنی از ۲ شروع و تا عدد ۱۰ مقدار دو تا دو تا افزایش یافته است می توانید از دستور زیر برای تعریف سطر اول استفاده نمایید [۲:۲:۱۰] که عدد اول شروع سطر ، عدد وسطی مقدار فاصله و عدد آخر انتهای ماتریس را نشان می دهد. شکل زیر نشان گر مثالی از این نوع تعریف ماتریس می باشد.

ماتریس در متلب 4

توابع ماتریسی ones و zeros در متلب

برخی توابع ماتریسی نیز وجود دارند که کاربرد فراوانی دارندکه در ادامه به آن­ها نیز پرداخته می شود و صرفا در این قسمت به تعریف آن ها می پردازیم. ماتریسی به نام zeros که البته نمی توان ماتریس نامید بلکه یک تابع ماتریسی است و خروجی های صفر را برای داده های ماتریس نمایش می دهد. به عنوان مثال می خواهید یک ماتریس ۱۰*۱۰ صفر داشته باشید، به جای اینکه ۱۰۰ درایه ماتریس را یکی یکی بنویسید، کافی است از دستور زیر استفاده نمایید (zeros(10,10 . خروجی این دستور در شکل زیر ارائه شده است.

ماتریس صفر در متلب

این تابع در تعریف مکان اولیه برای متغیرهای برنامه خیلی کارآیی دارد و منجر به کاهش زمان اجرای برنامه خواهد شد که در ادامه به آن ها پرداخته خواهد شد. یکی دیگر از این ماتریس ها که کاربرد بیش تری در برنامه نویسی متلب دارند مربوط به تابع ماتریسی ones یا همان ماتریس واحد است که همه ی درایه های آن ۱ می باشند به عنوان مثال می خواهید یک ماتریس ۱۰*۱۰  با درایه های یک تولید کنید، کافیست از دستور زیر استفاده نمایید (ones(10,10 شکل زیر نتیجه ی این تابع خواهد بود.

ماتریس واحد در متلب

کار با ماتریس ها در متلب

اعمال ضرب و تفریق در متلب برای ماتریس­ها نیز همانند عمل ضرب و تقسیم بین دو عدد اسکالر می باشد، ولی در این میان باید توجه شود که سطر و ستون دو ماتریس با هم برابر باشند در غیر اینصورت خطا ایجاد خواهد شد که شکل زیر نیز نمایانگر این موضوع است.

matlab-matrics

همانطور که می­ بینید در برنامه خطا ایجاد شده است و خطا مربوط به برابر نبودن سطر و ستون ماتریس ها می باشد. لذا در جمع و تفریق ماتریس ها در متلب باید توجه ویژه ای به سطر و ستون نمود.

مثال: فرض کنید ماتریس در متلب به صورت [a=[2:2:6;3:4:11;1:2:5 تعریف نموده اید و می خواهید درایه های ستون ها را در هم ضرب و در یک ماتریس دیگر تعریف نمایید. برای این موضوع می توانید از تابع prod استفاده نمایید. این تابع درایه های ستون ها را در هم ضرب و در یک ماتریس سطری دیگر ذخیره می کند. اعمال این روش در شکل زیر مشاهده می شود.

ضرب ماتریس

اگر بخواهیم این موضوع بر روی سطرهای ماتریس انجام بگیرد کافی ­است از دستور زیر استفاده نماییم (prod(a,2 این منجر به ضرب سطری ماتریس­ شده و نتیجه را در یک ماتریس ستونی قرار می دهد در واقع بر عکس حالت قبل عمل می کند مثال زیر راببینید.

ضرب سطری ماتریس در متلب

حال اگر بخواهیم همین ماتریس حاصل را به صورت سطری بنویسیم باید از پرایم ” ‘ “استفاده کنیم که این مورد نیز در زیر ارائه شده است.

ضرب درایه های سطری ماتریس

پس یادمان باشد هر موقع یک ماتریس سطری داشتیم می­ توانیم از طریق دستور ” ‘ ” بدیل به ستونی کنیم و بالعکس (ترانهاده ماتریس).

برای ضرب ماتریس ها بر هم به صورت درایه به درایه از دات ” . ” استفاده می شود. یعنی اگر بخواهید دو ماتریس را درایه به درایه به هم ضرب نمایید، می توانید از دستور  ” *. ” استفاده کنید که در شکل زیر مثالی از این استفاده را می توان مشاهده نمود.

ضرب ماتریس ها در متلب

همان طور که مشاهده می شود درایه ها به هم ضرب شده اند. این مدل ضرب با ضرب ریاضی تفاوت دارد. در اینجا درایه ۱*۱ از a با درایه ۱*۱ از b به هم ضرب و در ماتریس پاسخ یعنی ans قرار داده شده است.

برای تقسیم نیز مثل ضرب عمل می شود البته این تقسیم نیز سطر به سطر صورت می گیرد. مثالی برای این مورد نیز با ماتریس های a و b را مشاهده می کنید

تقسیم ماتریس ها در متلب

یک تابع دیگری در متلب وجود دارد به نام  dot که با این تابع می­توان حاصل جمع، حاصلضرب درایه­ های متناظر دو ماتریس را محاسبه نمود. به عنوان مثال:

[A=[5 8 9

[B=[3 8 4

 

حال اگر بخواهیم پاسخ (C=A(1)*B(1)+A(2)*B(2)+A(3)*B(3 را محاسبه نماییم فقط کافیست بنویسیم (C=dot(A,B که نتیجه­ ی این عمل نیز در شکل زیر اورده شده است:

ضرب وجمع ماتریس در متلب

همین مسئله را می­ توان برای ماتریس ­های حاوی اعداد مختلط نیز انجام داد که مثال زیر کاربرد این موضوع را نشان می­دهد

 

جمع و ضرب دوماتریس در متلب

مسئله ی دیگر برای ماتریس ها، ضرب دو ماتریس به هم است که به صورت ضرب طبیعی از آن استفاده می شود. یعنی کافیست از  ” * ” استفاده نمایید، اما دقت کنید که ضرب دو ماتریس زمانی صورت می گیرد که تعداد ستون های ماتریس اول با تعداد سطرهای ماتریس دوم برابر باشد در غیر اینصورت برنامه خطا نشان خواهد داد. مثال اگر بخواهیم ماتریس  [a=[4 5 6;7 8 9;1 2 3 را با ماتریس [b=[1 2 3;4 5 6;7 8 9 ضرب کنیم که شکل زیر نشان دهنده ی این موضوع است.

ضرب ماتریس در matlab

یکی دیگر از نکات موجود در ماتریس ها تکرار کنار هم ماتریس است. به عنوان مثال فرض کنید یک ماتریس را بخواهید کنار هم بنویسید یا دو بار کنار هم و دو بار زیر هم؛ برای انجام چنین کاری در متلب کافیست اسم ماتریس را در سطر و ستون وارد نمایید. به عنوان مثال اگر ماتریس a را تعریف نموده اید و می خواهید این ماتریس دو بار کنار هم و سه بار زیر هم نوشته شود کافی است دستوری مثل زیر را وارد نمایید [b=[a a;a a;a a یعنی دو تا کنار هم و سه تا زیر هم. نتیجه این مورد را هم در شکل زیر مشاهده می کنید.

ضرب ماتریس ها در متلب 3

حال سوال اینجاست؟؟ اگر بخواهید یک ماتریس را ۲۰ بار کنار هم و ۱۰ بار زیر هم بنویسید چه کار می کنید؟ نوشتن ۲۰ بار کنار هم و ۱۰ بار زیر هم یک ماتریس با روش بالا کار سختی است به همین دلیل متلب تابعی تحت عنوان repmat تغریف کرده است که کافیست بعد از تعریف ماتریس از این تابع استفاده نمایید. طریقه استفاده از این تابع بدین صورت است که ابتدا repmat( نوشته سپس اسم ماتریس، بعدا چند بار کنار هم و در نهایت چند بار زیر هم را قید می کنید. جواب سوال چنین می شود (repmat(a,20,10 نتیجه را در شکل زیر مشاهده می کنید.

ماتریس در متلب 5

ملاحظه می کنید در این شکل توانستیم ماتریس را به تعداد دلخواه کپی کنیم البته شکل کامل را نذاشتیم و اگر شما همین دستور را تایپ نمایید به طور کامل مشاهده خواهید نمود.

مباحث کامل در رابطه با ماتریس ها را در ویدیو می توانید مشاهده نمایید که در این ویدیو به طور کامل همراه با مثال های زیاد و توابع دیگر و مناسب ماتریسی جهت آموزش استفاده شده است.

اگر رشته ی شما مهندسی برق می باشد، به شما پیشنهاد می کنیم از فایل ویدیویی “آموزش الگوریتم ژنتیک در مهندسی برق” ما در لینک زیر استفاده کنید. که حاوی سرفصل های زیر می باشد:

1- مقدمات متلب همه ی موارد بالا و آموزش کامل متلب از مقدماتی تا پیشرفته با مثال های متنوع

2- پخش بار پسرو – پیشرو

3- الگوریتم ژنتیک

4- جایابی خازن و منابع تولید پراکنده و هر دو به صورت همزمان

این آموزش حدود 7 ساعت توسط مهندس ” سید باقر مرتضویان” فارغ التحصیل کارشناسی ارشد مهندسی برق قدرت از دانشگاه علم و صنعت برای آموزش کامل الگوریتم ژنتیک و کاربرد آن در مهندسی برق آماده شده است.

آموزش الگوریتم ژنتیک در مهندسی برق

آموزش مقدماتی متلب توسط ” میرباقر مرتضویان” فارغ التحصیل کارشناسی ارشد مهندسی برق قدرت – سیستم از دانشگاه علم و صنعت ایران تهران.

بازدیدها: 14

تهران آموزش - 29 posts

سلام. من پشتیبانی آنلاین تهران آموزش هستم . هرگونه مشکلی در فرایند خرید یا دانلود داشتید با من در میان بگذارید
شماره ارتباط در تلگرام و واتس آپ : 09332978858

آموزش متلب

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *