در قسمت پنجم از آموزش رایگان متلب به ادامه کدهای کاربردی مربوط به ماتریس ها یعنی اتصال سطری و ستونی دو ماتریس، حذف سطر یا ستون خاص از ماتریس، جا به جایی نسبت به سطر و ستون وسط ماتریس، تغییر ابعاد و تکرار ماتریس، تشخیص عناصر غیر صفر و عناصر قطری یک ماتریس می پردازیم. در انتهای جلسه چهارم، اتصال دو ماتریس متفاوت را یاد گرفتیم. فرض کنید قرار باشد که دو ماتریس را به صورت سطری یا ستونی به هم متصل نماییم. در این صورت به ترتیب از دو دستور horzcat و vertcat استفاده می کنیم. به مثال زیر توجه نمایید:

A=[1 2 3;4 5 6;7 8 9]

P=[10 11 12;13 14 15;16 17 18]

Q=horzcat(A,P)         ⇒⇒⇒   Q=[1 2 3 10 11 12;4 5 6 13 14 15;7 8 9 16 17 18]

همین قضیه برای دستور اتصال عمودی نیز وجود دارد. فقط توجه شود که باید در دستور horzcat تعداد سطور دو ماتریس با هم برابر باشد و در دستور vertcat نیز تعداد ستون ها یکسان باشد.

در ادامه کدی برای سنجش برابری دو ماتریس ارائه می شود. فرض کنید بخواهیم ببینیم که دو ماتریس A و P در بالا برابر هستند یا نه؟ در این صورت از دستور isequal(A,P) استفاده می کنیم. این دستور دو ماتریس را آرایه به آرایه بررسی کرده و اگر برابر باشند عدد ۱ را در خروجی ظاهر می کند و در غیر این صورت عدد صفر را بر می گرداند.

فرض کنید گاهی لازم باشد سطر یا ستونی خاص از ماتریس مثلا A را حذف کنیم. در این صورت از دستور زیر استفاده می نماییم:

A(:,3)=[]

این دستور نشان می دهد که هدف ما حذف ستون سوم از ماتریس بالاست. اگر هدف سطر باشد که عدد مورد نظر (معادل با سطر مورد نظر) را در ابتدا می نویسیم. توجه شود که “:” باید وجود داشته باشد گذاشته شود. چرا؟ (در کلیپ ببینید)

در ادامه جا به جایی سطری و ستونی ماتریس نسبت به سطر یا ستون وسط بررسی شده است. به این کار اصطلاحا فلیپ کردن گفته می شود. برای جا به جایی سطرها نسبت به سطر وسط از دستور flipud و برای جا به جایی ستون ها نسبت به ستون وسط از دستور fliplr استفاده می نماییم. به مثال زیر توجه کنید:

Q=flipud(A)         ⇒⇒⇒   Q=[7 8 9;4 5 6;1 2 3]

اگر هدف ما تکرار ماتریس A باشد از دستور repmat استفاده می کنیم. در این حالت باید مشخص کنیم که ماتریس مورد نظر را چند مرتبه در جهت سطرها و چند مرتبه در جهت ستون ها قصد تکرار داریم. به مثال توجه نمایید:

Q=repmat(A,2,3)         ⇒⇒⇒   Q=[1 2 3 1 2 3 1 2 3;4 5 6 4 5 6 4 5 6;7 8 9 7 8 9 7 8 9;1 2 3 1 2 3 1 2 3;4 5 6 4 5 6 4 5 6;7 8 9 7 8 9 7 8 9]

برای تغییر ابعاد ماتریس به ابعاد دلخواه از دستور reshape استفاده می کنیم. اگر نوشته شود

Q=reshapr(A,3,3)

یعنی ماتریس A را بصورت مربعی ۳ در ۳ نوشته شود اما آرایه ها جا به جا شوند. اعداد متناسب با ابعاد ماتریس اولیه تنظیم می شوند و ماتریس خروجی آرایه مشابه حالت اول اما بصورت تصادفی جا به جا شده دارد (برای فهم دقیق تر موضوع کلیپ زیر را ببینید)

دو دستور آخر بررسی شده در ادامه اختصاص به تشخیص عناصر غیر صفر در ماتریس و همچنین تشخیص عناصر قطری دارد که به ترتبیب از دستورات nnz و diag می توان استفاده کرد. مثال های زیر گویا هستند:

Q=nnz(A)         ⇒⇒⇒   Q=0

Q=diag(A)        ⇒⇒⇒   Q=[1;5;9]

به نظر شما برای تشخیص عناصر صفر چه می توان کرد؟ پاسخ در کلیپ زیر داده شده است.

آپارات  آپارات

همچنین بخوانید: آموزش متلب – قسمت چهارم

بازدید مطلب:۲۲۴بار