MATLAB/Simulink Channel
1.18K subscribers
16 photos
8 files
1 link
Download Telegram
نکته

چنانچه یک ماتریس به دستور sort داده شود، دستور sort عناصر را در یکی از ابعادی که مشخص می کنیم، مرتب خواهد نمود. اگر هیچ بعدی را مشخص نکنیم، دستور sort ، عناصر را در جهت ستون ها مرتب خواهد نمود.

به مثال زیر توجه کنید :
مثال

عناصر ماتریس A را در جهت ستون ها، مرتب می کنیم :

clear all
close all
clc

A=[5 9 7; 3 1 4; 6 2 8]
B=sort(A)
نتیجه :

A =

5 9 7
3 1 4
6 2 8


B =

3 1 4
5 2 7
6 9 8
مثال

عناصر ماتریس A را در جهت ردیف ها، مرتب می کنیم :

clear all
close all
clc

A=[5 9 7; 3 1 4; 6 2 8]
B=sort(A,2)
نتیجه :

A =

5 9 7
3 1 4
6 2 8


B =

5 7 9
1 3 4
2 6 8
-#مربع های (ماتریس های) #جادویی (magic squares) در متلب

نگاهی به ماتریس زیر بیندازید :

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

به این ماتریس، مربع جادویی (ماتریس جادویی) (magic square) می گویند و در گذشته، مردم اعتقاد داشتند که این ماتریس، خواص جادویی دارد. در ادامه شرح خواهیم داد که چرا مردم، در گذشته چنین باوری داشته اند.

با کدهای زیر، ماتریس فوق را با نام A ، در متلب تعریف می کنیم و همچنین خواص ویژه این ماتریس را به شما نشان خواهیم داد :

A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]
B=sum(A)
نتیجه :

A =

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1


B =

34 34 34 34
دستور sum ، برای محاسبه مجموع عناصر هر ستون یک ماتریس به کار می رود. بنابراین مثلا عنصر دوم از بردار B ، برابر مجموع تمامی عناصر ستون دوم ماتریس A می باشد. مشاهده می کنید که مجموع عناصر هر ستون ماتریس A برابر عدد 34 می باشد.

اما این بار، مجموع عناصر هر ردیف ماتریس A را محاسبه می کنیم :

A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]
A'
B=sum(A')'
نتیجه :

A =

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1


ans =

16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1


B =

34
34
34
34
مشاهده می کنید که مجموع عناصر هر ردیف ماتریس A نیز برابر همان عدد 34 می باشد. دقت کنید که علامت ' چنانچه پس از نام یک ماتریس بیاید، نتیجه همان ماتریس است که جای ستون ها و ردیف های آن عوض شده باشد و به این دلیل، از این علامت استفاده کرده ایم که دستور sum برای محاسبه جمع عناصر ستون ها می باشد، نه ردیف ها.

حال می خواهیم مجموع عناصر روی قطر اصلی ماتریس A را محاسبه کنیم. برای این منظور، ابتدا باید دستور diag را معرفی کنیم. دستور diag ، برداری را برمی گرداند که عناصر آن همان عناصر ماتریس اصلی می باشد. بنابراین برای مشخص کردن عناصر روی قطر اصلی ماتریس A ، کدهای زیر را اجرا می کنیم :

A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]
B=diag(A)
نتیجه :

A =

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1


B =

16
10
7
1
بنابراین با دستورات زیر، می توانیم مجموع عناصر قطر اصلی ماتریس A را محاسبه کنیم :

A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]
B=sum(diag(A))
نتیجه :

A =

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1


B =

34

مشاهده می کنید که مجموع عناصر قطر اصلی ماتریس A ، برابر همان عدد 34 می باشد.
حال با دستور زیر، مجموع عناصر روی قطر غیراصلی ماتریس A را محاسبه می کنیم :

A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]
B=sum(diag(fliplr(A)))
نتیجه :

A =

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1


B =

34

باز هم نتیجه برابر عدد 34 شد.

بنابراین توانستیم خواص ویزه ماتریس A را با استفاده از نرم افزار متلب ، مشاهده کنیم .
-ساخت #مربع های #ماتریس #جادویی (ماتریس های جادویی) (magic squares) در متلب :

دستور magic در متلب، برای ساخت مربع های جادویی (magic squares)، با هر اندازه دلخواه، به کار می رود. به مثال زیر توجه کنید :
مثال

یک مربع جادویی (magic square) با 5 ردیف و 5 ستون می سازیم :

A=magic(5)
B=sum(A)
C=sum(A')'
D=sum(diag(A))
E=sum(diag(fliplr(A)))
نتیجه :

A =

17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9


B =

65 65 65 65 65


C =

65
65
65
65
65


D =

65


E =

65

با نتایج بالا، ثابت کردیم که ماتریس A ، یک مربع جادویی (magic square) می باشد.
ام فایل ها در متلب:

چنانچه بخواهید برنامه ای طولانی و پیچیده بنویسید، دیگر پنجره Command جوابگوی نیاز شما نیست و به محیطی فراتر از آن برای نوشتن دستورات و تصحیح کردن آنها نیاز دارید. متلب برای این گونه موارد، امکان ساخت m-file ها را فراهم کرده است. شما می توانید در یک m-file ، تمامی دستورات خود را نوشته و تنها بر روی یک دکمه گرافیکی کلیک کرده و سپس نتیجه اجرای دستورات را در پنجره Command ببینید.
ساخت یک m-file در متلب :

برای ساخت یک m-file جدید می توانید از هر یک از روش های زیر استفاده کنید :
1- در بالای پنجره اصلی نرم افزار متلب، بر روی گزینه New script کلیک کنید. این گزینه به شکل matlab photo 10 می باشد.
2- با نگه داشتن کلید Ctrl و فشار دادن کلید N از کیبورد، این کار را انجام دهید.
3- در پنجره Command بنویسید edit و سپس کلید enter از کیبورد را فشار بدهید.
هر یک از روش های بالا را که انتخاب کنید، نتیجه این است که متلب یک پنجره خالی باز می کند که می توانید در آن، دستورات خود را اجرا کنید.
توصیه می شود اولین دستوری که در یک m-file می نویسید، دستور clear all باشد تا تمامی متغیرهایی که قبلا در متلب تعریف شده است را پاک کند و اختلالی در روند اجرای برنامه ایجاد نشود.
باید دقت داشته باشید که در نرم افزار متلب، m-file ها برای دو هدف اصلی به کار می روند، کاربرد اول آن نوشتن برنامه های پیچیده و طولانی و کاربرد دوم آن ساخت تابع می باشد. ساخت تابع با استفاده از m-file را در مباحث بعدی توضیح خواهیم داد. در این مبحث تنها در مورد نوشتن برنامه در m-file ها صحبت خواهیم کرد.
پس از آنکه دستورات برنامه را در m-file نوشتیم، ابتدا باید با استفاده از گزینه Save در بالای همان پنجره m-file ، آن را ذخیره کنیم. همچنین با نگه داشتن کلید Ctrl و فشار دادن کلید S ، می توانید این کار را انجام دهید.
سپس برای اجرای برنامه، باید بر روی گزینه Save and run که به شکل می باشد، کلیک کنید تا نتایج برنامه در پنجره Command نمایش داده شود. همانطور که از نام این گزینه مشخص است، این گزینه، عمل ذخیره کردن را هم انجام می دهد، یعنی اگر تغییراتی در برنامه ایجاد کنید و سپس بر روی این گزینه کلیک کنید، این تغییرات در m-file ذخیره می شود. اگر قبلا فایل ذخیره نشده باشد، ابتدا از شما می خواهد که نامی برای آن انتخاب کرده و سپس آن را ذخیره کنید.
m-file ها دارای پسوند m می باشند (به عنوان مثال : program.m).
اجرای دستورات درون یک m-file بدون باز کردن آن :

حتی بدون باز کردن یک m-file نیز می توان برنامه نوشته شده در آن را اجرا کرد. برای این منظور باید ابتدا پنجره Current Folder به گونه ای باشد که فولدر حاوی m-file مورد نظرمان را نمایش بدهد (البته می توان مسیر فایل را به نرم افزار متلب اضافه کرد، ولی فعلا در این مورد توضیحی نمی دهیم). فرض کنید نام m-file حاوی برنامه، program.m باشد، بنابراین باید نام فایل program.m را در پنجره Current Folder ببینیم. سپس تنها کافی است که در پنجره Command بنویسیم program و سپس کلید enter از کیبورد را فشار دهیم. دقت شود که نباید پسوند .m نوشته شود. نتیجه اجرای دستورات در پنجره Command نمایش داده خواهد شد.
نوشتن توضیحات در m-file :

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

در متلب چنانچه از علامت درصد (%) استفاده کنیم، تمامی نوشته های بعد از علامت درصد، به صورت توضیح در نظر گرفته می شوند. به مثال زیر توجه کنید :
مثال

x=2
% ali 123456
y=3
نتیجه :

x =

2


y =

3
همان طور که مشاهده می کنید، ali 123456 به عنوان دستور در نظر گرفته نشده و در خروجی نیز نمایش داده نشده است.
باید دقت داشته باشید که متلب نوشته های بعد از علامت درصد را تنها در خط فعلی، به صورت توضیح در نظر می گیرد و نوشته های خط بعد را به صورت دستور (نه توضیح) در نظر خواهد گرفت. بنابراین چنانچه بخواهیم توضیحاتی را در چند خط پشت سرهم بنویسیم، باید در ابتدای هر کدام از آن خط ها، از علامت درصد استفاده کنیم. به مثال زیر توجه کنید :
مثال

x=2
% ali 123456
% this is a simple code
y=3
نتیجه :

x =

2


y =

3
محاسبه #کانولوشن (Convolution)، با دستور conv ، در متلب

دستور conv در متلب، برای محاسبه کانولوشن (Convolution) به کار می رود.

دستور زیر را در نظر بگیرید :

w = conv(u,v)

دستور فوق بر اساس فرمول زیر محاسبه می شود :
مثال

clear all
close all
clc

u = [7 1 5 4 8 9]
v = [2 7 3 9 5 6]
w = conv(u,v)
نتیجه :

u =

7 1 5 4 8 9


v =

2 7 3 9 5 6


w =

14 51 38 109 103 178 154 149 145 93 54
ترسیم #شکل در متلب با دستور plot

دستور plot ، بردارهایی از اعداد را دریافت کرده و آنها را به صورت شکل ترسیم می کند. در واقع دستور plot مقادیر گسسته را که هر کدام به صورت یک نقطه می باشند، پشت سرهم قرار می دهد و سپس آنها را با خط به هم وصل می کند تا بتوانیم آنها را به صورت یک شکل پیوسته ببینیم و بدین ترتیب به ارتباط کلی آنها پی ببریم. به مثال زیر توجه کنید :
مثال

x=[1 2 3 4 5]
y=[3 4 5 4 3]
plot(x,y)
نتیجه :
حال فرض کنید بخواهیم تابعی بر حسب متغیر x را برای بازه ای از تغییرات x رسم کنیم، ابتدا باید متغیر x را به صورت برداری از نقاط آن بازه تعریف کنیم. بازه مورد نظر ما پیوسته است و شامل تعداد بینهایت عدد می باشد، اما ما باید تعداد نقاط را به گونه ای انتخاب کنیم که حداقل تعدادی باشند که شکل تابع را به خوبی نمایش بدهند. به مثال زیر توجه کنید :
مثال

x=-1:0.1:1;
plot(x,x.^2-2.*x)
نتیجه :
در دستور فوق، دقت کنید که در تعریف تابع، پس از x یک علامت نقطه (.) نوشته شده است. وجود این علامت، ضروری است و مشخص می کند که هر عنصر بردار x باید به توان 2 برسد، نه این که کل بردار x به توان 2 برسد.