آموزش نرم افزار متلب برای رشته برق – ایجاد ماتریس ها( بخش دوم)
در بخش قبلی در مورد ایجاد ماتریس ها در متلب صحبت شد. ادامه این بحث را در این پست دنبال می کنیم. برای مطالعه بخش اول به ایجاد ماتریس ها( بخش اول) مراجعه نمایید.
ایجاد ماتریس ها( بخش دوم)
تابع magic ماتریسی را ایجاد می کند که مجموع اعضای هر ستون، هرسطر و دو قطر مورب آنها باهم برابر است. برای یک ماتریس (4⨯4) مقدار این مجموع برابر با 34 است. حال اعضای سطر 2 را بر 2 تقسیم و سپس اعضای ستون 2 را با ستون 4 جمع و نتیجه را با ستون 4 جایگزین می کنیم:
برای صفر کردن اعضای مورب ماتریس اصلی بدین شکل عمل می شود:
برای جایگزین کردن اعضای مورب ماتریس اصلی با مقدار 5، از دستورات زیر استفاده می شود:
برای جایگزین کردن مقادیر 11، 23، 54 و 61 با اعضای مورب ماتریس z می توان نوشت:
متلب سایت سیم پاور
متلب سایت سیم پاور دوتابع دارد که برای ایجاد ماتریس هایی که با تکرار یک اسکالر می توان ایجاد کرد، به کار برده می شوند. این توابع عبارتند از : repmat و meshgrid، شکل اصلی repmat عبارت است از:
repmat(x,y,c) <<
که x یک اسکالر، بردار یا ماتریس است و r تعداد تکرای است که سطرهای x جایگزین می گردند و c تعداد تکرار ستون های جایگزین شده x است. به طور مثال، تابع repmat می تواند یک بردار ستونی یا سطری با طول دلخواه که اعضای بردار دارای مقادیر عددی یکسانی هستند را ایجاد کند.
بنابراین، برای ایجاد یک بردار سطری w متشکل از 6 مقدار عددی 45.72 می توان نوشت:
w=repmat(45.72,1,6) <<
w= 45.72 45.72 45.72 45.72 45.72 45.72
این بردار را همچنین همانگونه که در سایت سیم پاور توضیح دادم می توان به شکل زیر ایجاد کرد:
; w(1,1:6)=45.72 <<
ایجاد یک ماتریس
برای ایجاد یک ماتریس (3⨯3) با این مقادیر می توان نوشت :
; w=repmat(45.72,3,3)<<
همچنین همانگونه که در سایت سیم پاور توضیح دادم می توان این ماتریس را به شکل زیر ایجاد کرد:
; w(1:3,3:1)=45.72<<
هرکدام از این عبارات در پنجره فرمان، ماتریس زیر را تولید می کنند:
حال به بردار زیر توجه کنید:
S = [a1 a2 a3 a4]
عبارت v = repmat(s,3,1) معادل عددی ماتریس زیر را ایجاد می کند.
سه سطر بردار v را ایجاد می کند که هر سطر دارای چهار ستون است.
عبارت repmat(s,3,2) معادل عددی ماتریس زیر را ایجاد می کند.
به عبارت دیگر، دستور زیر یک ماتریس سه ستونی معادل عددی بردار ستونی s ́ را ایجاد می کند، که هر ستون دارای چهار سطر است.
; v=repmat(s ́,1,3) <<
عبارت repmat(s ́,1,3) معادل عددی ماتریس زیر را نتیجه می دهد.
اگر دو بردار t و s سطری باشند، آنگاه عبارت
[u,v]=meshgrid(s,t) <<
نتیجه یکسانی مانند دوسطر زیر را ارائه می دهد:
u=repmat(s,length(t),l) <<
v=repmat(t ́,length(s)) <<
به عبارت دیگر، u و v ماتریس هایی از مرتبه(length(t)⨯length(s)) می باشند. بنابراین اگر
s = [s1 s2 s3 s4]
t = [t1 t2 t3]
آنگاه دستور زیر معادل عددی دو ماتریس (3⨯4) را ایجاد می کند.
[u,v]=meshgrid(s,t) <<
تابع meshgrid
تابع meshgrid همچنین همانگونه که در سایت سیم پاور توضیح دادم می تواند تنها یک ماتریس مانند زیر را برگرداند:
w=meshgrid(s,t) <<
که w=u را ایجاد می کند که u ماتریس است.
حال دو تابع fliplr(a)و flipud(a) که به ترتیب برای جابجایی سطرها و ستون ها به کار می روند، معرفی میشوند. ماتریس (2⨯5) زیر را ملاحظه کنید:
که با جمله زیر ایجاد می گردد:
a= [a11 a12 a13 a14 a15; a21 a22 a23 a24 a25] <<
بنابراین
توابع fliplr(a)و flipud(a)
همچنین همانگونه که در سایت سیم پاور توضیح دادم می توان نتایج توابع fliplr(a)و flipud(a)را با علامت دو نقطه (:) به دست آورد. به طور مثال :
c=fliplr(a)<<
نتیجه یکسان با عبارت زیر را ایجاد می کند.
c=a(:,length(a):-1:1) <<
….. به بردار زیر توجه کنید:
دو سطر یکسان و همانند 5 و 6 را ایجاد می کند. حذف یکی از این سطرها، با مجموعه یک سطر مقدار خالی مانند عبارت [] انجام می شود که فضای بین براکت ها خالی است. بنابراین عبارت
[]= c(length(a),:) <<
[]= c(length(a)+1,:) <<
بردار زیر را ایجاد می کند:
که c یک ماتریس (9⨯2) است. عبارت c(length(a),:)=[] به این معنی است که تمام ستون های سطر با عدد length(a) در c با مقدار [] تعیین شده اند. ( در این مورد، حذف شده اند). اگرچه میدانیم طول a، 5 است این مزیت خوبی است که متلب سایت سیم پاور اجازه انجام شمارش را میدهد. از این رو، از تابع length(a) استفاده میشود.
علائم فوق را با معرفی نتایج سه عملگر مختلف متلب سایت سیم پاور بیشتر توضیح میدهیم. اول، دو ماتریس (2⨯5) با نام a و b را به صورت زیر در نظر بگیرید.
کاربرد این سه عملگر را در بخش سوم مشاهده می نمایید.
برای دانلود این آموزش به صورت پی دی اف بر روی لینک زیر کلیک کنید.