Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work...

119
Matrix laboratory (Matlab) توضی ح مخت ص اصلی متلبای موجود در صفحه ی ه ر از پنجرهCommand window جره ی فرمان پن هر گونه محاسبه مثل4 اصلی را در عملر بریزیک متغیز در یل را نیعماصل این انیم حاین میتوا کنیم . هم چنده مشاهیتوانیم پنجره م این م.Current directory مسیر پیش فرضبل عوض کردن استن مسیر قا شود . ایره مین مسیر پیش فرض ذخیم ، در اییم ذخیره کنی میخواهسیم ونوی را که میمه ای برناwork space ی که درر های متغیام تمcommand window هد.شان می د جا ندیم را در اینعلوم کر مCommand history ام دست تم برویم.ورات قبلی نما به دستای جهت از کلید هستفاده انیم باین میتوای شود . همچننجا ذخیره مده ایم در ایات قبلی که اجرا کر ور در اگرwork space ز متغیر هاوی هر کدام ا ر برclick است.ز جنس ماتریس اشان میدهد . مث را ن، مشخصات آن کنیمت سادخی دستورا این قسمت بر دری گفته می شود : ه و مقدماتClc : کل پنجره ی این دستورcommand window میکند . پاک را های موجود در از متغیرکیم ی اگر بخواهیwork space زیر: دستور کنیم، به صورت پاک راClear a متغیرa ازwork space پاک میشود .Clear a b متغیرa و متغیرb میکند. پاک را از متغیر هاه ی کردن کلی پاکwork space : Clear all یاclear فاوتند .چک و بزرگ متف کو متلب حرو در

Transcript of Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work...

Page 1: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Matrix laboratory (Matlab)

ر از پنجره های موجود در صفحه ی اصلی متلبصح مختتوضی

Command window

پنجره ی فرمان

م.این پنجره میتوانیم مشاهده کنیم . هم چنین میتوانیم حاصل این اعمال را نیز در یک متغیر بریزی عمل اصلی را در 4گونه محاسبه مثل هر

Current directory

مسیر پیش فرض

برنامه ای را که مینویسیم و میخواهیم ذخیره کنیم ، در این مسیر پیش فرض ذخیره می شود . این مسیر قابل عوض کردن است

work space

معلوم کردیم را در این جا نشان می دهد. command windowتمام متغیر هایی که در

Command history

ورات قبلی که اجرا کرده ایم در اینجا ذخیره می شود . همچنین میتوانیم با استفاده از کلید های جهت نما به دستورات قبلی برویم.تمام دست

کنیم، مشخصات آن را نشان میدهد . مثال از جنس ماتریس است. clickبر روی هر کدام از متغیر ها work spaceاگر در

ه و مقدماتی گفته می شود :در این قسمت برخی دستورات ساد

Clc :

را پاک میکند . command windowاین دستور کل پنجره ی

را پاک کنیم، به صورت دستور زیر: work spaceاگر بخواهیم یکی از متغیر های موجود در

Clear a

پاک میشود . work spaceاز aمتغیر

Clear a b

را پاک میکند. bو متغیر aمتغیر

:work spaceپاک کردن کلیه ی متغیر ها از

Clear all یا clear

در متلب حروف کوچک و بزرگ متفاوتند .

Page 2: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

.شود به عنوان یک متغیر حساب میهر متغیری که به آن عددی اختصاص یابد .تعیین ابعاد آن نیستدر متلب الزم به تعیین نوع متغیر و

می توان برای عنوان گذاری از حروف یونانی استفاده کرد . که در مباحث (plot)پشتیبانی نمیکند . فقط در قسمت ترسیم ها متلب حروف یونانی را

بعدی توضیح داده می شود .

Pi=3.1416

که تعداد ارقام بیشتری را رقم اعشار نمایش داده می شوند . اگر بخواهیم به فرمت طوالنی تر تبدیل کنیم، 4به صورت پیش فرض در متلب اعداد تا

Format long :نشان دهد

Format short اگر بخواهیم به فرمت قبل برگردد:

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

رقم اعشار : 4برای نمایش اعداد تا

Format bank

.اگر جلوی هر کدام بگذاریم به صورت نماد علمی نشان می دهد

Format longe

فرمت کسری :

Format rat

Ex:

Format rat

Pi

Ans

355/113

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

Format hex

فرمت فشرده :*****

Format compact

ه تر می شوند.برای حذف کردن خط اضافه ی بین هر دو خط . یعنی خطوط فشرد

Page 3: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

برای بازگشت به حالت قبل:

Format loose

برای تعیین دقت محاسبه از تابع زیر استفاده می کنیم:

Vpa: variable precision arithmetic

همه ی توابع در متلب ورودی میخواهند که این ورودی باید داخل پرانتز نوشته شود.

Vpa(pi,n)

رقم اعشار نمایش می دهد. nرا تا عدد

و در آخر ticاستفاده می کنیم بدین صورت که قبل از دستوراتی که میخواهیم زمانش را بفهمیم، tic tocبرای محاسبه زمان دستورات از دستور

مینویسیم . tocمجموعه دستورات

یدهد.زمان کامپیوتر را به ما م clockو همچنین با تایپ دستور

به عنوان مثال:

Format rat

Clock

Ans

2011 9 2 4 15 3223/87

و یا با فرمت دیگر

format long

>> clock

ans =

1.0e+003 *

2.01100000000000 0.00900000000000 0.00200000000000 0.00400000000000 0.01700000000000

0.04654600000000

ماتریس

در برنامه ، باید از کروشه استفاده کنیم: سبرای وارد کردن ماتری

Ex:

Page 4: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

[1 2 3 4 5 6 7 8 9]

ans =

1 2 3 4 5 6 7 8 9

برای جدا کردن سطر ها باید مطابق زیر عمل کنیم :

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

ans =

1 2 3

4 5 6

7 8 9

دو کاربرد دارد یکی در همینجا که سطر های یک ماتریس را به وسیله ی آن مشخص می کنیم و دیگری در برنامه ها است که اگر در آخر هر ;نماد

تور نمایش داده نمی شود.استفاده کنبم، نتیجه ی آن خط دس ;دستور از

استفاده میشود. sizeبرای یافتن تعداد سطر و ستون ماتریس از تابع

Size(a)

را نمایش می دهد. Aتعداد سطر و ستون ماتریس

bو تعداد ستون ها میرود در aاگر به شکل زیر تعریف کنیم، تعداد سطر ها میردو در

[a b]=size(q)

استفاده می کنیم: lengthا همان طول ماتریس از تابع برای فهمیدن تعداد سطر ها ی

Length(a)

تالع دترمینان:

Det(a)

برای استفاده از این تابع، ماتریس حتما باید مربعی باشد.

زیر مواجه میشویم: errorاگر مربعی نباشد با

Page 5: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

??? Error using ==> det

Matrix must be square.

معکوس یک ماتریس:

Inv(a)

ترمینان یک ماتریس، صفر باشد معکوس آن ماتریس تعریف نشده است.اگر د

برای اعمال یک سری تغییرات در ماتریس از دستورات زیر استفاده می کنیم:

Triu(a) :

باال مثلثی

Trid(a) :

پایین مثلثی

Diag(a) :

قطر اصلی

Flipud(a) :

چرخش از باال به پایین

Fliplr(a) :

چرخش از چپ به راست

برای یافتن قطر فرعی میتوانیم دو تابع را ادغام کنیم :

diag(fliplr(a))

ماتریس های خاصی که در متلب تعریف شده اند:

Eye(n,m) .ماتریس واحد به ما می دهد

N تعداد سطر

M تعداد ستون

دهد .واحد می n*n، ماتریس eye(n)اگر ماتریس واحد مربعی بخواهیم

Ex: eye(3,5)

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

Page 6: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Ones(a,b)

است. 1که همه ی درایه هایش n*mیک ماتریس

Zeros(a,b)

که همه ی درایه هایش صفر است. n*mیک ماتریس

Ex:

Zeros(3)

ans=

0 0 0

0 0 0

0 0 0

ول برنامه قالب ماتریس را معلوم کنیم و بعد درایه ها را تغییر بدهیم.مثال وقتی میخواهیم ا

آدرس دهی ماتریس:

X(n,m)

برای مقدار دهی درایه و یا تغییر مقدار آن:

Ex:

Ones(3)

Ans=

1 1 1

1 1 1

1 1 1

Page 7: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Ans(1,3)=4

Ans=

1 1 4

1 1 1

1 1 1

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

A(1:2,3:6)

یعنی سطر اول تا دوم و ستون سوم تا ششم

A(:)

همه ی عناصر را ستونی نشان می دهد .

برای حذف یک قسمت از ستون ها یا سطر ها آن ها را برای تهی قرار می دهیم :

A(1:3,4)=[]

randاعداد تصادفی:

Rand .بین صفر و یک است

Rand(n,m)

می دهد. n*mیک ماتریس تصادفی

اگر مثال بخواهیم اعداد تصادفی بین صفر تا نه باشند:

9*rand(n,m)

اگر بخواهیم اعشار نداشته باشد :

Round

مثال:

Round(rand(5,9))

دلخواه خودمان باشد، rangeاگر بخواهیم اعداد تصادفی بین

Min<rand<max

Min+(max-min)*rand

permutationجایگشت های تصادفی اعداد:

Randperm(n)

Page 8: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

به صورت تصادفی جایگشت مینویسد: nاز یک تا

Ex:

( randperm(13

Ans=

1 11 9 6 3 5 8 10 13 1 11 7 4

اعداد تصادفی با توزیع نرمال:

randn(x)

داد خیلی بزرگ یا خیلی کوچک ندارد.هستند اع 1میدهد که با توزیع نرمال همه ی اعداد در اطراف x*xماتریس

اگر بخواهیم اعداد تصادفی با میانگین و واریانس دلخواه داشته باشیم:

M+s^2(randn(x))

میانگین است. mهمان واریانس و s^2که

Sum(a)

از هر ستون جمع میگیرد. aاز ماترس

Sum(a(:))

جمع همه ی درایه ها

Prod(a) را ضرب می کند. از هر ستون همه ی درایه ها

prod(a(:))ضرب همه ی درایه ها:

استفاده میکنیم. 'Aاگر بخواهیم از هر سطری بگیرد و جمع یا ضرب کند، از

Sqrt .جذر میگیرد

Nthroot(x,n) n امین ریشه یx .را میگیرد

aوارد شود سپس بر روی مقدار عددی aواهیم مقداری مثل استفاده میکنیم . مثال میخ inputبرای اینکه بخواهیم از کاربر مقداری دریافت شود، از

اعمالی انجام شود:

A=input('please insert a=')

مثال:

Page 9: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

ز آن ماتریس را نمایش دهد.یبرنامه ای بنویسید که کاربر یک ماتریس را به طور دلخواه وارد کرده و برنامه، حاصل جمع تمام درایه ها و سا

باز کنیم: mfileابتدا باید یک برای شروع برنامه نویسی

شود(. saveشود) اول باید runمیزنیم تا f5بعد از نوشتن برنامه

ها را با نام عدد ذخیره نکنیم و همچنین با اسم توابع نیز ذخیره نشود. mfileباید توجه داشت که

Page 10: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

توابع رسم:

ایجاد یک سری نقاط با گام های مختلف:

T=0:10 0 1 2 3 4 5 6 7 8 9 10 گام پیش فرض

T=0:2:10 0 2 4 6 8 10

ایجاد نقاط با فواصل خطی:

Linspace(a,b)

عدد انتهاست. bعدد ابتدا و aکه

نقطه تعریف ند. 100پیش فرض این است که

Linspace(1,5,5) 1 2 3 4 5 5 .نقطه می دهد، با فواصل یکسان

تا نمونه به ما بدهد. 100یعنی در هر ثانیه 100با فرکانس نمونه برداری 1ا ت 0زمان

Fs=100

T=0:1/fs:1

Sin()

Sin .ورودی را رادیان می بیند

Sind() .ورودی را درجه می بیند

.180تا 0را میبرد به 1تا 0ضرب کنیم، از pi*2اگر یک

رسم:

Plot(x,fx)

Page 11: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 12: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

شکل ظاهری نمودار های رسم شده: تغییراتی در

plot(t,y,'.') .شکل را بدون اینکه نقاط را به هم وصل کند رسم می کند

نمایش می دهد. استفاده کنیم به شکل دایره دایره oاگر به جای . از

و اشکال دیگر به صورت زیر می باشند:

Plot(t,y,'x')

Page 13: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Plot(t,y,'+')

نیز میتواند تغییر کند: plotو همچنین رنگ

R قرمز b آبی k مشکی g سبز y زرد m صورتی c الجوردی

Plot(t,y,'vc) ( به رنگ صورتی و شکل مثلثیv)

Page 14: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

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

Sin,cos,tan,cot

Log(x) که همانln(x) .است

Log10(x) که همانlog است. 10در پایه ی

Log2(x) ن که هماlog است. 1در پایه ی

Exp(x)=e^x

sind,cosd,sinh,coshو توابع مثلثاتی بر حسب درجه:

.را نگه می دارد plotاستفاده کنیم ، تصویر Hold onاز plotاگر بعد از هر

بنویسیم که اگر نام را ننویسیم به و نام مورد نظر را هم جلوی آن figureبنویسیم plotجدید باز کند میتوانیم قبل از figureاگر بخواهیم یک

صورت پیش فرض با عدد شماره گذاری می شود.

Page 15: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

بنویسیم، تمام پنجره های قبلی بسته می شود. close allاگر اول برنامه

ها انجام داد: plotاعمالی که میتوان بر روی

Title('onvan')

عنوان مورد نظر به شکل اضافه می شود.

Xlabel(' ')

Ylabel(' ')

برای محور ها برچسب گذاشته میشود.

Axis off & axis on .محور های مختصات را خاموش و روشن میکند

Grid on & grid off .شکل را به صورت شبکه ای نمایش می دهد

Axis equal زمان محور های مختصاتx وy .را مساوی میگیرد

Axis normal میگرداند . به حالت عادی بر

Axis tight مختصات را به روی شکلfit .میکند

برای هر نمودار یک برچسب مشخص می کند . legendاستفاده از دستور

Legend(' ',' ')

و در مختصات خاصی ه مورد نظر ما است یک متنی نوشته شود: plotاگر بخواهیم داخل

Text(x,y,'matn')

مورد نظرماست.همان مختصات yو xکه

که می رویم هر جا کلیک کنیم متن را برایمان مینویسد. figureاستفاده کنیم ، بر روی gtext('matn') اگر از دستور

Rem reminder باقیمانده ی تقسیمa برb rem(a,b)

Floor(a) .به سمت عدد کوچکتر گرد می کند . همان براکت است

Fix(a) .قسمت اعشار را حذف میکند

Min(a) .مینیموم هر ستون را می دهد

Max(a) .برای هر ستون یک متکسیمم می دهد

maxهمه ی مقادیر را به دست بیاوریم و بعد تمام مقادیر را تقسیم بر آن maxاگر بخواهیم مقادیر ی ماترس را نرمالیزه کنیم برای این کار ابتدا باید

میکنیم.

Sort(a) .تمام ستون ها را از کوچک به بزرگ مرتب می کند

Page 16: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Mean(A) .میانگین تمتم ستون ها را به ما می دهد

Meanz(a) .میانگین تمام درایه ها را به ما می دهد

Dot(a,b) .ضرب داخلی که نتیجه ی آن یک عدد است

Cross(a,b) .ضرب خارجی که نتیجه ی آن یک بردار است

Gcd(a,b) Greatest common divisor

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

Lcm(a,b) least common multiplier

دو عدد را نمایش می دهد. کوچکترین مضرب مشترک

تا این تابع انجام پذیرد را می بینیم. که نوشته شده mfileرا بزنیم کل دستورات open selectionو اگر روی یک تابع راست کلیلک کنیم

استفاده بکنیم. /.و *.برای اینکه در کار با ماتریس ها بخواهیم ضرب یا تقسیم درایه ها را نظیر به نظیر انجام بدهیم باید از

Isprime(b)

آیا عدد اول هست یا نه

یعنی عدد اول نبوده است. اگر یک بدهد یعنی عدد مورد نظر اول بوده است و اگر صفر بدهد

مثال:

را مشخص کنید: 1000تا 1اعداد اول

Clc

Clear all

T=1:1000;

A=isprime(t);

r=t.*A;

r'

میگذاریم تا ستونی نمایش دهد و راحت تر ببینیم. 'عالمت

اعداد مختلط:

Page 17: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

به عنوان متغیر قبالً استفاده نشده باشند( jو i)باید .نمایش داده میشوند a+b*iو یا a+b*j اعداد مختلط در متلب به صورت

Z=complex(a,b) .عدد مختلط را می خواند

Real(z) برای مشاهده ی قسمت حقیقی

Imag(z) برای مشاهده و قسمت موهومی

Abs(z) .اندازه ی عدد مختلط را به ما می دهد

Angle(z) زاویه زاویه ی عدد مختلط را به ما می دهد . بر حسب

X*(180/pi) .رادیان را به زاویه میبرد

golden rectangleمثال:رسم مستطیل طالیی:

این مستطیل برای معماری کاربرد دارد.در این مستطیل نسبت طول به عرض برابر است با:

1+sqrt(5))/2)

1/6که حاصل آن برابر است با تقریبا

زیبا تر به چشم می آیند.اگر بنا ها با این نسبت ساخته شوند خیلی

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

طریقه ی ایجاد :

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

باز می کنیم: mfileابتدا یک

clc clear all phi=(1+sqrt(5))/2; x=[0 phi phi 0 0] y=[0 0 1 1 0] plot(x,y) x1=[1 1] y1=[0 1] hold on plot(x1,y1) axis off text(-0.05,0.5,'1') text(0.5,-0.05,'1') text(phi/2,1.05,'\phi') text(1+(phi-1)/2,-0.05,'\phi-1') text(1.05,0.5,'1') set(gcf,'color','w')

Page 18: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

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

در رسم مستطیل باال. phiمطابق

Page 19: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 20: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

: figureدر یک plotرسم چند

Subplot(n,m,x)

است. plotشماره ی xها تعداد ستون m تعداد سط ها ، nکه در این جا

این کار را انجام بدهیم. plotگذاشتن در اینجا باید بعد از هر labelو یا titleبرای

رسم کنید: tanسوم plotدوم لگاریتمی و در plotپنجم سینوسی و در plotقسمتی، در figure 6در یک

clc clear all close all fs=100; t=-1:1/fs:1; y1=sin(2*pi*t); subplot(2,3,5) plot(t,y1),xlabel('time') y2=log(t) subplot(2,3,2) plot(t,y2) y3=tan(t) subplot(2,3,3) plot(t,y3)

Page 21: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

های دیگر باشد، از روش زیر استفاده میکنیم.در مثال subplotباشد یعنی بزرگتر از subplot 1 ها مثال به اندازه ی subplotاگر بخواهیم یکی از

هاست. plotسومی در دو جایگاه سوم و چهارم قرار میگیرد و به اندازه ی دو برابر سایر plotپایین

clc clear all close all fs=100; t=0:1/fs:1; x1=sin(2*pi*t); x2=exp(-t); x3=(x1.*x2); subplot(2,2,1) plot(t,x1) subplot(2,2,2) plot(t,x2) subplot(2,2,3:4) plot(t,x3)

Page 22: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

نمودار میله ای:

bar(x,f(x))

نمودار گسسته:

Stem(x,f(x))

نمودار پلکانی:

Stairs(x,f(x))

نمودار هیستوگرام:

Hist(f(x),x)

Page 23: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

توابع سمبولیک یا آنالوگ:

polynomialچندجمله ای:

A=[2 4 6 8] است. 3معرف چند جمله ای درجه

A=[an,a(n-1),a(n-2),…,a0]

است. nجمله ای درجه معرف ضرایب چند

X=roots(a) که در آنa .یک بردار است، ریشه ها را به ما می دهد

Poly(x) .ضرایب را به ما میدهد

برعکس هم عمل میکنند. polyو rootsبه طوری که

شود. an 1میکند تا ضریب anمیگیرد و بقیه را تقسیم بر ضریب 1را an استفاده کنیم، همیشه ضریب polyهر گاه از

به سمبولیک: polynomial برای تبدیل

poly2sym()

A=[2 4 6 8]

Poly2sym(a)

Ans=

2*x^3+4*x^2+6*x+8

Syms x بعد از نوشتن این عبارتenter میزنیم وx .را به عنوان یک سمبل در نظر میگیرد

حاال میتوان از این سمبل استفاده کرد و سمبل های دیگر ساخت.

Y=sin(x)

سم توابع سمبولیک:ر

Ezplot(y)

Page 24: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

و یا هر عبارت داخل پرانتز باید سمبولیک باشد. yکه در اینجا

Syms x

Y=sin(x)

Ezplot(y)

رسم میکند. 2piو 2pi-به صورت پیش فرض بین

Page 25: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

اگر بخواهیم پیش فرضش را تغییر بدهیم:

Ezplot(y,[-10,10])

Page 26: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

قرار بدهیم. ''سمبولیک نشده باشد میتوانیم داخل اگر متغیر قبال

Ezplot('z^3')

هم مختصات تعریف بکنیم. yکه در این حالت میتوانیم برای

Page 27: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Pretty(a)

به حالت دست نویس نشان میدهد.

Page 28: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Simple(y) .بسط ها را نشان می دهد

Factor(a) باشد از آن فاکتور میگیرد.اگر سمبلی قابل فاکتور گرفتن

Page 29: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Conv(a,b) که در آنa وb ضرائب چند جمله ای هستند، ضربconvolution .انجام می دهد

Convolution .وقتی به حوزه ی فرکانس برود به ضرب تبدیل میشود. برای فیلتر کاربرد دارد

Deconv(a,b) .تقسیم است

ی:مشتق چند جمله ای در بحث چند جمله ا

Polyder(a)

ضرایب چند جمله ای ست. aکه در این جا

Page 30: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Polyder(a,b)

مشتق ضرب چند جمله ای است.

[A B]=polyder(a,b)

مشتق تقسیم چند جمله ای است.

ارزیابی چند جمله ای ها:

Page 31: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Polyval(a,x0)

مقدار دهی میکند. aرا در چند جمله ای x0عدد با بردار

Page 32: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

دهی در حالت سمبولیک:مقدار

Subs(f,'x',a)

قرار می دهد. xبه جای fرا در تابع aعدد

می توانیم به جای یک متغیر چند مقدار مختلف بگذاریم:

مثال :

F=x^z-sin(x+z)

Subs(f,'[x y z]',[1 pi/2 2])

Page 33: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

: polyfitتابع

از یک سری نقطه: nاستخراج چند جمله ای درجه

polyfit(x,y,n)

درجه ی چند جمله ای باید از تعداد نقاط حداقل یکی کمتر باشد.

Page 34: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

مجهول برای حالت سمبولیک: nمعادله nحل معادله ی

solve(' ',' ',' ',…………..)

یک معادله را می نویسیم. ' 'داخل هر کدام از نماد های

سمبولیک کنیم. ..……,a,b,xقبیل که الزم است قبل از آن تماد مجهول ها را از

مثال:

Page 35: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

برای حالت غیر سمبولیک:

AX=B

ماتریس مجهول هاست. Xماتریس ضرائب است و Aکه در این جا

X=A(-1)*B که در اینجاA(-1) همان وارون ماتریسA .است

Page 36: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Rats(x) .اعداد را می گیرد و به صورت کسری نمایش می دهد

Rat(x) است. 1اعداد را می گیرد و به صورت کسرهایی نمایش می دهد که صورت آن ها

Page 37: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Vpa(a,n) عددa را تاn .رقم نشان می دهد و بقیه را گرد می کند

n جه ی 0حل یک معادله با در

Solve(d)

D .را برابر صفر می گیرد و معادله را حل می کند

استفاده می کنیم. ''کنیم اگر که سمبولیک نبود از نماد باید از توابع سمبولیک استفاده

Page 38: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 39: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

مقادیر ویژه ی ماتریس:

Eig(a)

Det(SI-A)=0

ماتریس یکه است. Iکه در آن

در قسمت فضای حالت کاربرد دارد. 1در درس مدار

اگر

A ماتریس حالت

B ماتریس ورودی

C ماتریس خروجی

D ماتریس انتقال

X التمتغیر های ح

U متغیر های ورودی

Y متغیر های خروجی باشند ، مقادیر ویؤه ی ماتریسA .فرکانس های طبیعی شبکه هستند

x.=Ax+Bu

y=Cx+Du

ا رابطه ی زیر حساب برنامه ای بنویسید که کاربر یک ماتریس مربعی با ابعاد دلخواه وارد کرده و برنامه یک بار مقادیر ویژه را با این تابع و یک بار هم ب

کند.

Det(SI-A)

Page 40: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 41: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

معادالت دیفرانسیل در حالت سمبلیک: حل

Dsolve('………','…','…','x')

آخر هم برای xهای بعدی شرایط اولیه را که باید تعدادشان برابر با درجه ی معادله باشد. و ''اید معادله دیفرانسیل را بنویسیم و در اول ب ''که در نماد

است. xاین است که معادله بر حسب

بزرگ ( استفاده کنیم. D) حتما Dبرای نشان دادن مشتق باید از

نظر میگیرد.در tبه صورت پیش فرض ، متغیر مستقل را

مثال:

Page 42: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

ترکیب توابع سمبولیک:

F(g(x))=fog

Compose(f,g)

Page 43: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

حد توابع سمبولیک:

Limit(f,x,a)

Page 44: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

helpتعریف نشده است . همانطور که در را نمایش می دهد که نشانگر NaNدر مواقعی که حد چپ و حد راست با هم برابر نیست ، اگر حد بگیریم

می باشد. not a numberمخفف عبارت NaNنرم افزار متلب توضیح داده است

استفاده کنیم: leftو rightاگر بخواهیم حد راست و یا حد چپ گرفته شود باید از

Page 45: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

مشتق توابع سمبولیک:

Diff(f)

است. xخواهد داشته باشد مشتق بر حسب مشتق می گیرد. ورودی هر چند متغیری که می xبه صورت پیش فرض ، بر حسب

diff(f,'y')اگر بخواهیم بر حسب متغیر دیگری مشتق بگیرد :

Page 46: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

ام: nمشتق مرتبه ی

Diff(f,n)

Page 47: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

انتگرال عبارات سمبولیک:

Int(f)

Indefinite integral

انتگرال نا معین

Int(f,a,b) انتگرال معین

int(f,y)ی انتگرال گیری انجام شود : اگر بخواهیم بر حسب متغیر دیگر

برای انتگرال چندگانه میتوانیم ازچند انتگرال داخل هم استفاده کنیم:

Page 48: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 49: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

سری تیلور برای توابع سمبولیک:

Taylor(f) .بسط تیلور حول نقطه ی صفر است

x0و حول نقطه ی mتا taylor(f,m,x0)بسط مک لورن:

یکی sin(x)را حول نقطه ی صفر حساب کند و مشخص کنید تا جمله ی چندم مشتق با شکل خود تابع sin(x)ویسید که بسط تیلور تابع برنامه ای بن

میشود.

برنامه را به شکلی مینویسیم که کاربر عدد را وارد کند و برنامه بسط تیلور را تا آن عدد محاسبه کند:

وارد می کنیم و بعد افزایش میدهیم تا جایی که شکل ها یکی شوند. 5نوان مثال از را اول به ع aمطابق شکل های زیر، عدد

Page 50: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 51: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

وارد می کنیم: 10را برابر با aعدد

Page 52: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 53: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

وارد می کنیم: 13را aعدد

Page 54: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

وارد می کنیم: 14را aعدد

با اندکی خطا دو شکل شبیه هم شدند. 14برابر با aبا در نظر گرفتن عدد

Page 55: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

استفاده کنیم : hold onبرای اینکه دو شکل را منطبق بر هم ببینیم میتوانیم از

A=14

Page 56: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

ها را زیاد میکنیم مطابق شکل زیر plotو برای اینکه دقیق بتوانیم خطا را ببینیم محدوده ی

Page 57: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Dirac(x) ضربه

Heaviside(x) لهپ

تبدیل فوریه برای توابع سمبولیک:

Fourier(f)

Page 58: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

را فوریه بگیریم شیفت میدهد. expاگر

عکس تبدیل فوریه:

Ifourier(f)

است که دوگان همند. sincو rectبه عنوان مثال کاربرد آن در تبدیل

Sinc در متلی تعریف شده است . برای ساختنrect :

Page 59: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

هر کدام ، تبدیل فوریه ی دیگری است ، از برنامه ی زیر استفاده میکنیم: rectو sincشان دادن این که برای ن

Page 60: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 61: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

jacobian(f)

Curl()

و.....

یک سری از توابع در متلب هستند که برای موضوع های خاص به کار می روند. مثال برای مغناطیس و...

و برای مشاهده توابع خاص از help elfunاز رد. برای مشاهده ی توابع ابتدایی متلب استفاده ک helpمیتوان از قسمت برای مشاهده ی توابع در متلب

help specfun .استفاده میشود

Page 62: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 63: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 64: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

تبدیل الپالس:

Laplace(f(t))

به ما می دهد. sجواب را بر حسب متغیر

laplace(f(x),m)نمایش دهد: mاگر بخواهیم بر حسب ماغیر دیگری مثال

عکس تبدیل الپالس:

Ilaplace(F(s))

Page 65: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

عکس تبدیل الپالس غبارت زیر را به دست آورید:

(S^2+2*s+3)/(s+1)^3

Page 66: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

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

Residue(a,b)

ضرائب مخرج میباشد. bضرائب صورت و aغیر سمبولیک است و

ب قطب کمتر به بیشتر را می دهد. برای ریشه های مککر هم از کمترین توان می دهد.به ترتیب اول ضرائ

:zتبدیل

Ztrans(f(t))

:zعکس تبدیل

iztrans()

بعدی: 3ترکیبات

الف: توابع پیوسته )سمبلیک(

Ezplot3()

معادالت پارامتری خط یا منحنی:

Ezplot('x','y','z')

Page 67: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

ک در نظر میگیرد.قرار میدهیم سمبلی ''چون بین دو

را هم بدهیم: Tمیتوانیم مختصات

ezplot3('x','y','z',[tmin tmax])

به عنوان مثال معادله ی فنر به صورت زیر است:

Page 68: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

رسم سطوح سه بعدی:

Ezsurf(z)

متلب آمده است: helpشکل زیر مثالی است که در

Page 69: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

مثالی از رسم یک صفحه:

Page 70: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

مثالی از رسم یک منحنی:

Page 71: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

یک روش ابتدایی برای رسم کره که البته مناسب هم نیست:

وارد شده است: r=5شکل زیر مربوط به زمانی ست که

Page 72: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 73: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

نرم افزار متلب تابعی دارد برای رسم کره:

Sphere(a)

عددی است که بعداد خانه ها را نشان می دهد. aکه

Page 74: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 75: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

رسم استوانه:

Cylinder

ب:توابع گسسته )غیر سمبلیک(:

Page 76: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Plot3(…,…,…)

: tباید اول نقاط را تعریف کنیم برای

برای رسم سطوح:

Surf(z)

[x y]=meshgrid(-5:5)

یک فضا برایمان تعریف می کند.

ن تابع استفاده کنیم.نمونه برداری کنیم و بعد از ای meshgridابتدا باید با استفاده از

Waterfall(z) .نمودار آبشاری را رسم میکند

Contour(z) و contour3(z) . سطوح تراز هستندmeshc(z) .حالت مش بندی با کانتر است

محور های لگاریتمی:

Semilogx(x,f(x)) محورx .را اگاریتمی می کند

Semilogy(x,f(x)) محورy .را اگاریتمی می کند

Loglog(x,f(x)) .هر دو محور را لگاریتمی می کند

Linspace(a,b) نقطه بین صدa وb .در نظر می گیرد

Page 77: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

دستورات برنامه نویسی:

برای تکرار انجام دستورات: forحلقه ی -1

For i=1:100

دستور را انجام بده

End

را دو میگیرد دستورات را انجام می دهد و به همین ترتیب مثال تا صد که در iمیدهد و بعد را یک میگیرد دستورات را انجام iبدین صورت که اول

اینجا نوشته شده .

مثال:

را نمایش دهد: aتا 1را از کاربر دریافت کرده و حاصلجمع aبرنامه ای بنویسید که عدد

Page 78: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

ifدستور شرطی

If

عبارت منطقی

دستورات

Else

تدستورا

Page 79: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

End

و به شکل زیر نیز میتوان نوشت:

if

1شرط

1دستورات

Else if

1شرط

1دستورات

Else if

.

.

.

End

End

End

. را نمایش دهد noو اگر اول نباشد yesبرنامه ای بنویسید که عدد را در ورودی بگیرد اگر عدد اول باشد عبارت

جای دهد. 5*4عضو از کاربر دریافت کند و به ترتیب در ماتریس 10برداری با برنامه ای بنویسید که

Page 80: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

برای شکستن حلقه: breakدستور

Page 81: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

For ………….

If…….

Break

مثال:

متوقف شود. بیشتر شد، برنامه 1000تا آن عدد را حساب کند اما اگر این عدد از 1برنامه ای بنویسید که عددی را از کاربر بگیرد و حاصل جمع

Page 82: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 83: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

وید.برنامه ای بنویسید که یک عدد از کاربر دریافت کرده و تمام مقسوم علیه های آن عدد را نشان دهد و هم چنین تعداد مقسوم علیه ها را بگ

whileدستور

While

شرایط

دستورات

End

د.تا زمانی که شرط برقرار است دستورات را انجام ده

Page 84: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

عبارت های شرطی:

A=[1 2 3 4 5 6]

A>4

[0 0 0 0 1 1]

هر جا شرط برقرار باشد به جایش یک میگذارد.

q=a>4 Q=q.*A

Q=[0 0 0 0 5 6]

>=

<=

==

~=

And(…,…)

Or(…,…)

Xor(…,…)

مقال:

کی ازشان کم کند و بقیه اعداد را خودشان را نمایش دهد:بود، ی 8را بگیرد ، اگر درایه ها زوج بود یا بزرگتر از aبرنامه ای بنویسید که ماتریس

Page 85: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Continue کنترل اجرای کد را به تکرار بعدی از حلقه ی :for یاwhile .منتقل می کند

مثال:

را که قبال کاربر وارد qرا نمایش دهد اما در این حاصلضرب عدد aتا 1و ضرب کل اعداد را از کاربر دریافت کرده aبرنامه ای بنویسید که عدد

کرده حساب نکند.

Page 86: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

دوران یک ماتریس:

Rot90(a)

درجه خالف جهت عقربه های ساعت می چرخاند)کاربرد در پردازش تصویر است(. 90

Rot90(a,3) 170 .درجه می چرخاند

Rot90(a,-1)

در جهت عقربه های ساعت.

تغییر سایز ماتریس:

Reshape(a,m2,n2)

M2 تعداد سطر های جدید وn2 .تعداد ستون های جدید می باشد

m1*n1=m2*n2

آرایه ها:

a={…….}

Double یعنی فرمت اعداد حقیقی با دقت ممیز شناور

می بیند. doubleدر متلب به طور پیش فرض همه ی اعداد را به صورت

A{1}

همه ی عناصر عنصر اول آرایه را به ما نشان می دهد.

ام از عناصر آؤایه خود می توانند یک آرایه باشند.هر کد

Cell(m,n)

Page 87: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

آرایه ی تهی ایجاد می کند:

ایجاد منو برای انتخاب ورودی:

Menu('aaaa','…','…','…')

.ها گزینه ها هستند …متن و aaaaکه در این جا

Magic(n)

Page 88: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

برابرند. رعی با هممی دهد که جمع سطر و ستون و قطر اصلی و قطر ف n*nماتریس

Page 89: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

مثال:

کردن، در با اجرا کردن برنامه ی فوق منوی زیر باز می شود و به کاربر این امکان را می دهد که یکی از گزینه ها را انتخاب کند و بعد از انتخاب

command window ده می گزینه ی انتخاب شده نمایش دا

شود

Page 90: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 91: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

: swith case دستور

توجه به مقدار یک متغیر ، در مورد اجرای کد های مختلف تصمیم گیری می کند. با

Page 92: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

هدف: افزودن نویز به سیگنال و فیلتر کردن آن:

س و فرکان 0.3نمونه برداری شده است، نویزی سینوسی با دامنه ی 1000bit/secکه با نرخ 3hzو فرکانس 15به یک سیگنال سینوسی به طول

40hz .اضافه کرده سپس نویز را حذف کنید

Page 93: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Filter(a,b,f) که در آن :a ، ضرائب صورتb ضرائب مخرج وf .سیگنالی است که میخواهیم فیلترش کنیم

فیلتر باترورث:

[a b]=butter(n,d) که در آنn درجه ی فیلتر وd .فرکانسی ست که میخواهیم قطع کند

را نیز به عبارت باال اضافه می کنیم. 'high'اشد اگر بخواهیم باالگذر ب

Page 94: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

پردازش تصویر:

مشخصه ی یک تصویر دیجیتال:

Pixel picture cell

نقاط بسیار ریز مربعی شکل

Resolution یک تصویر : غلظتpixel هاست که هر چه بیشتر باشدresolution باشد:بیشتر است و واحد آن به صورت زیر می

Page 95: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Dot per inch (dpi)

نقطه ها در هر اینچ

تصویر آنالوگ: دوربین های عکاسی قدیمی که نگاتیو داشت.

تصاویر سیاه و سفید:

Pixel هایشان فقط دو حالت دارند یا صفر و یا یک که صفر نمایانگر پایین ترین سطح روشنایی یا همان رنگ مشکی است و یک باالترین سطح

رنگ سفید است.روشنایی و معرف

تا سطح مختلف روشنایی را می تواند از هم تفکیک کند . 156تصاویر سطوح خاکستری: در حالت عادی چشک انسان

تا سطح روشنایی تبدیل می کند. 156در طراحی دوربین ها هر منظره ای را به

ذخیره می کند. byteرا در یک pixelهر

فراخوانی یک تصویر:

Y=imread('address\name.format')

آدرس، اسم تصویر و پسوند آن را وارد می کنیم .

Imshow(y)

تصویر را می بینیم.

Page 96: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Imview اطالعات هرpixel .را نیز نشان می دهد به صورتی که هرگاه با موس بر روی تصویر برویم مشخصات می دهد

Page 97: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Y1=im2bw(y) سفید است. 1تا 0.5سیاه و 0.5تا 0سفید می برد. که تصویر را به حالت صفر و یک یا سیاه و

جدید باز می شود. figureندارند . خودش در ی figureبسته نمی شوند و نیازی به نوشتن close allبا imviewتصاویر باز شده به وسیله ی

Im2bw(y,0.3)

ید می کند.ها را سف 0.3را به باینری تبدیل می کند به صورتی که باالی yتصویر

: RGB red green blueتصاویر رنگی

سیستم های بصری انسان به کمک سه نوع حسگر رنگی موجود در شبکه از طیف نور مرئی نمونه برداری می کند. این حسگر ها بیشترین شدت پاسخ

رنگ قرمز و سبز و آبی معروفند. پس در طراحی سیستم های نانومتر دارند که به ترتیب به سلول های حساس به 410و 530و 560را در طول موج های

اشند.تصویرگیر و نمایشگر الزم است سه نوع سنسور رنگی در سیستم قرار داده شود تا به رنگ های قرمز و سبز و آبی بیشترین حساسیت را داشته ب

Page 98: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

سفید و بینش رنگ مورد نظر است. 155مشکی و 0که را به خود اختصاص دهند . 155تا 0هر کدام از این رنگ ها می توانند عددی بین

عدد برای قرمز و سبز و آبی به وجود می آید. 3از ترکیب pixelهر

بیت. 14بایت یعنی 3درایه نیاز داریم . pixel 3برای هر

Tif.jpg.png.bpm .پسوند تصاویر هستند بسته به حالتی که تصویر روی حافظه ذخیره می شود

Size(y) یز ماتریس که حاصلضرب سطر و ستون آن میشود تعداد ساpixel .ها

)نمایه گذاری شده( indexتصاویر

تعریف می کنند. indexرا به rgbبرای کاهش حافظه ی تصویر

مشخص میکند.اشاره می کند . ستون اول مقادیر قرمز ستون بعدی مقادیر سبز و ستون بعدی مقادیر آبی را k*3یه یک ماتریس pixelرنگ هر

Y1=rgb2gray(y) .تصویر را به خاکستری تبدیل می کند

Help imdemos .کل تصاویری که متلب دارد را به ما نشان می دهد

نشان داده شده است: help imdemosاین تصویر نمایانگر تعدادی از اسامی تصاویری است که با استفاده از

Page 99: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 100: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

ر متلب و فرمت ذخیره ی آن ها:کالس های مختلف دیتا د

Range توضیح Data type

Int8 عدد صحیح عالمت دار integerبیتی 8 - 128تا127 7^2-تا 7-1^2

Int16

Int32

Uint8 عدد صحیح بدون عالمت 155تا 0 1-8^2تا 0

Uint16

Uint32

double اعداد حقیقی با دقت ممیز شناور

logical اعداد منطقی

ها را می توان به دیگری تبدیل کرد. هر کدام از این فرمت

نمودار هیستوگرام یک تصویر:

imhist(y)

نمودار افقی شدت رنگ است و نمودار عمودی شدت نور.

(contrastیکنواخت کردن هیستوگرام)افزایش

Histeq

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

Page 101: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

:نباشد باید مسیر آن مشخص شود( current directory)اگر عکس در به عنوان مثال تصویر رنگی زیر

Page 102: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 103: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

چرخاندن یک تصویر:

imtotate(y,t) که در اینجاt رجه ی چرخش است . اگر مثبت باشد پادساعتگرد و اگر منفی باشد به طور ساعتگرد چرخانده می شود.د

Imcrop(y) .تصویر را برش می دهد

وقتی اینتر را بزنیم با موس میتوانیم انتخاب کنیم که کجای تصویر را برش بزنیم . همچنین می توانیم مختصات بدهیم.

Imwrite(y,'address\title.fmt') .تصویر را در هارد ذخیره می نماید

برای یکنواخت کردن تصاویر رنگی:

Imadjust(y,[a1,b1],[a2,b2])

A1 حد پایین تصویر ورودی

B1 حد باالی تصویر ورودی

A2 حد پایین تصویر خروجی

B2 حد باالی تصویر خروجی

مثال:

[0.1,0.7],[0.2,0.5]

0.1را می برد به 0.1مقادیر کمتر از

نگاشت می دهد. 0.5را به 0.7و خود 0.7ادیر بیشتر از مق

نگاشت می دهد. 0.5و 0.1را بین 0.7و 0.1مقادیر بین

Page 104: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

افزودن نویز به تصاویر:

Y1=imnoise(y,'noise type',noise quantity)

نویز معروفی است. salt&pepperدر پردازش تصویر نویز

ها را سیاه می کند و بعضی ها را سفید می کند. pixelبه طور تصادفی بعضی

% تصویر نویزی 5است یعنی 0.05ها خراب می شوند. مقدار پیش فرض pixel% است پس همه ی 100باشد 1تغییر می کند . اگر 1تا 0مقدار نویز از

می شود.

Page 105: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

salt&pepperفیلتر میانه برای حذف نویز

Y2=medfilt2(y1)

ن سطح و پایین ترین سطح را حذف می کند.باالتری

طراحی فیلتر برای تصاویر:

Page 106: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

F=fspecial('filter type')

Imfilter(y,f)

Page 107: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

پردازش صدا:

ی می خواهیم به کمک یک میکروفن صدای یک شخص را که یک سیگنال آنالوگ است ، به کامپیوتر ببریم که صدا به صورت موج پیوسته منتشر م

شود.

که استاندارد است: waveفشرده سازی و تبدیل به فرمت های مختلف مثل

Dsp= digital signal processing

باید به بیت های رقمی یا دیجیتال تبدیلش کنیم تا به کامپیوتر برود.

ویژگی های صدای دیجیتال:

نرخ نمونه برداری: -1

بیت نمونه برداری می کند تا صدا را دیجیتال کند. 44100شخص را تولید می کند. در هر ثانیه بیت بر ثانیه حالت ایده آل صدای 44100استاندارد

bit/sec 8191و 11015و 11050نرخ های نمونه برداری دیگری نیز هستند:

تعداد بیت در هر نمونه ) دقت نمونه ها( -1

کاناله بودن صدا ) استریو ( 1کاناله بودن صدا ) مونو ( یا 1 -3

ثانیه شنیده می شود: 11.33بیت بر ثانیه نمونه برداری شده است به مدت 44100تا نمونه که با نرخ 500000یجیتالی با صدای د

500000/44100=11.33

را پخش می کند. waveمتلب فرمت

برای پخش صدا:

wavereadخواندن صدا:

اگر مونو باشد یک ستون دارد و از یک باند پخش می شود. است که اکر استریو باشد دو ستون دارد و 1تا 1-صدا در متلب بین

waveplay(y,fs)پخش صدا:

Y بردار صدا می باشد وfs .فرکانس نمونه برداری است

است. fs 11015پیش فرض

Page 108: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

را بزنیم طول صدا را به ما می دهد. command window ،length(y)اگر در

کند.تند تر پخش می fs*2بزنیم fsاگر به جای

بزنیم ، کند تر پخش می کند. fs/2و بر عکس اگر

اگر بخواهیم یک کانال را پخش کند :

X=y(:,1);

کانال اول را جدا می کند و از یک بلندگو بیرون می آید.

ایجاد موج صوتی:

هرتز می باشد. 10000تا 10گوش انسان قادر به شنیدن صدا با فرکانس بین

ضرب کردیم تا صدا بلند تر به گوش ما برسد. 5هرتز است که برای پخشآن موج را در عدد 100تصویر باال ساخت موج

هر چه فرکانس را زیاد کنیم ، صدا نازک تر می شود و هر چه فرکانس را کم کنیم صدا بم تر می شود.

سر هم شنیده شود: می توانیم از فرکانس های مختلف ترکیبی از نت ها را ایجاد کنیم تا به صورت چند نت پشت

Page 109: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

می خواهیم به وسیله ی میکروفن صدا را به کامپیوتر بدهیم:

Wavrecord(n,fs,m,'double')

N .تعداد نمونه هاست

Fs .فرکانس نمونه برداری است

M باشد. 1یا 1تعداد کانال هاست که می توان

Double بیتی باشد. 16بیتی یا 8هم میتواند

Wavwrite(y,fs,'address\title.fmt')

در علم تشخیص گفتار به کار می رود.

Page 110: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

برنامه ای بنویسید که اثر انگشت را از کاربر دریافت کند ، اگر کج بود آن را صاف کند و بعد کادر اضافه ی دور آن را ببرد:

ی زیر را نوشته و ذخیره می کنیم. ابتدا برنامه

برنامه اجرا شده و تصویر آن را در زیر میبینید:برای نمونه این

Page 111: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 112: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

و حاال برنامه ی زیر را می نویسیم تا ویرایش های الزم بر روی تصاویر اعمال شود.

Page 113: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه
Page 114: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

مقدمه ای سیستم های کنترلی:

Tf: transfer function

Zpk مدل صفر و قطب و بهره

Zpk(zero,pole,gain)

به هم تبدیل کرد. این دو حالت را میتوان

Pzmap(h) نمایش صفر ها و قطب ها

مثال:

rlocus(h)

مکان هندسی ریشه های تابع انتقال حلقه باز:

Page 115: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Bode(h) :نمودار بود

Page 116: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Nyquist(h) :نمودار نایکوئیست را نمایش می دهد

Nichols(h) :نمودار نیکولز را نمایش می دهد

Page 117: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Series(h1,h2) ا سری می کند.دو تابع ر

Parallel(h1,h2) .موازی می کند

Feedback(h1,h2) فیدبک منفی

Feedback(h1,h2,+1) فیدبک مثبت

Impulse(h) .پاسخ ضربه را نمایش می دهد

Step(h) پاسخ پله

Page 118: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه

Gensig پاسخ سیستم به ورودی دلخواهgeneral signal

Lsim(h,u,t) که در آنh .تابع انتقال است

به صورت کمرنگ ورودی را نمایش می دهد و پر رنگ خروجی را نمایش می دهد.

Page 119: Matrix laboratory (Matlab) - uni-site.iruni-site.ir/khuelec/wp-content/uploads/Matlab4.pdf · work space.ه یم ناشن اج نیا ا میک مولعم command window هک ییاه