For……..end

 

تكرار به تعداد معين

 

براي تعيين تعداد اين تابع بايد يك ماتريس سطري با همان تعداد

 

درايه معرفي كرد كه اين ماتريس را عموماً با(:) مــشخص مي

 

كنند كه ماتريس با فاصله درايه هاي يك مي سازد.

 

 

For  i=1:10

دستورات

End

مي بينيد كه در خط اول تعيين تعداد تكرار با تعريف ماتــريس I

 

انجام مي شود.

 

هر بار تكرار مربوطبه يك درايه ميباشد ودر آن مرحله پـــارامتر

 

مشخص شده مقدار درايه را دارد .

 

مثلاً در مثال بالا در اولين مرحله مقدار i، 1مي باشد ودر دومين

 

 

مرحله مقدارi 2 و …

 

 

حال به اين مثال توجه كنيد :

 

 

For  i=[1,4,8,4,3]

Disp(‘level’)

Disp(i)

End

 

كه اين برنامه در مرحله اول مقدار 1 را كه در پارامتر i است چاپ

 

مي كند ودر مرحله دوم مقدار دومين درايه را در داخل I قرار داده

 

ودر خط سوم چاپ مي كند كه 4 است ودر مرحله سوم  8و…

 

 

While…..end        تكرار تا صادق بودن شرط

 

در اين دستو دقيقاً مانند if شرطي وارد مي شود ولـــي نحوه

 

كنترل روند برنامه بدين صورت است كه تا وقتي كه شــــــرط

 

صادق باشد دستورات داخل عبارت while تكرار خواهنـــد شد

 

(اگر برنامه اشتباهي داشته باشدكه هميشه شرط بـــــر قرار

 

باشد سيستم در شرط باقي خاهد ماند).

 

 

a=input(‘ Please enter  a number:’)

while a~=1

if  a>1

a=a-1;

end

if  a<1

a=a+1;

end

disp(a);

end

 

برنامه ارائه شده  را اجرا كـــــنيد و پس از دیدن پاسخ نحوه كار

 

while را بررسی كنيد.

 

براي اجراي برنامه ها كافي است همه راcopy كرده ودر past

 

….m-file كنيد وF5 را بزنید.

 

Continue

 

اين دستور در چرخه هاي تكرار استفاده مي شود .

 

در مواقعي كه مي خواهيم مرحله اي از چرخه انجام نـشود و

 

مراحل بعدي انجام شود از اين دستور استفاده مي كنيم.

 

 

For i=1:10

If i==5

Disp(‘ this level  was jump ‘);

Continue

End

i

end

 

مي بينيد كه مر حله پنجم را نادديده گرفته وادامه مي دهد.

 

Break

 

با اجراي لين دستور مسبر برنامه در هر حالتي كه باشد كاملاً از

 

داخل حلقه خارج خواهد شد.

 

For i=1:10

If i==5

Disp(‘in this level path of running  was jump out of statement’);

Break;

end

i

end

مي بينيد كه چاپ رشته تا 10 بايد ادامه داشته باشد ولي در

 

مرحله پنجم از حلقه بیرون مي پرد.

 

منطق در شرط

 

گاهي اوقات ممكن است لازم باشد چندين شرط را تر كيب كنيم .

 

اين عمل با استفاده از عبارت هاي منطقي قابل انجام است.

 

اگر بخواهيم دو شرط در بك زمان بر قرار باشد از(&) ودر صورتي

 

كه بخواهيم يكي از دو يا چند شرط صدق كند از( | ) استـــفاده

 

مي كنيم .

 

به مثال زير توجه فرماييد:

 

a=input(‘please  a number’);

b=input(‘please enter a number’);

if  a>0 & b>0

disp(‘a and  b  are  postive’)

elseif  a<0 & b<0

disp(‘a and  b  are negative’)

elseif  a>0 | b<0

disp(‘a is  positive or b is negative’)

elseif  a<0 | b>0

disp(‘a is  negative e or b is positive’)

end

اين برنامه را اجرا كنيد وجواب ارائه شده را با تحـــليل خودتان از

 

برنامه مقايسه كنيد.

 

FORMAT

 

بوسيله اين تابع مي توانيم دقت پاسخ ارائه شده را از طــــرف

 

سيستم را تنظيم كرد.

 

اين دستور بدين گونه استفاده مي شود:

 

Format  kind

 

كه بايد format را بنويسيم وبر اساس دقت مربـــــــوطه نوع

 

فرمت را بنويسيم.

 

Kind  نوع دقت معرفي شده مي باشد.

 

Format  short

 

اين دستور تا چهار رقم اعشار مقادير را نشان مي دهد.

 

نحوه ي كار برد فرمت هم به اين صورت است كه فقـــط دستور

 

را بنويسيم و enter كنيم اين دستور هيچ پاسخي نـــــدارد ولي

 

دستور اجرا شده است.

 

 

>>format long

>>pi

Ans=

3.14159265358979

Format short

Ans=

3.1415

گرد كردن

بعضي اوقات لازم است كه مقادير  را بر اسـاس مقادير خاصي

 

گرد كنيم.

 

در متلب جعبه ابزار تقزيباً كاملي براي اين كار تهيه شده است.

 

در پايين اين توابع را مي بينيم.

 

fix:

 

عدد را به سمت صفر گرد ميكند

 

floor  :

 

عدد را به سمت منفي بينهايت  گرد ميكند

 

ceil:

 

عدد را به سمت مثبت بينهايت گرد ميكند

 

round:

 

عدد را به سمت نزديكترين همسايگي گرد ميكند

 

نوعي ديگر از اين توابع كه مقدار باقیمانده از بالا و پايين را نشان

 

مي دهد.

 

mod   :

 

باقيمانده پس از تقسيم از بالا

 

rem:

 

باقيمانده پس از تقسيم از پايين

 

در صورتي كه علامت دو متغير ورودي برابر باشد بــــراي mod

 

, rem يكي است .

 

 

 

توابع عددی

 

اعداد اولprimes

 

این تابع اعداد اول از صفر تا عدد وارد شده را ارا ئه میکند .

 

>>primes(11)

 

Ans=

2    3    5     7      11

 

factor         تجزیه به اعداد اول

 

این تابع عدد وارد شده را به اعداد اول تجزیه میکند

 

 

>> factor(100)

 

Ans=

2    2    5    5

 

 

فاکتوریلfactorial

 

مقدار فاکتوریل عدد وارد شده را می دهد .

 

>>farctorial(6)

 

Ans=

3628800

 

 

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

 

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

 

دهد .

 

 

 

>>gcd(12,36)

 

Ans=

12

 

 

>>gcd(12,20)

 

Ans=

4

 

 

کوچکترین مضرب مشترک                      lcm

 

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

 

 

>>lcm(6,22)

 

Ans=

66

 

>>lcm(2,5)

 

Ans=

10

 

توابع مختلط

 

قدر مطلق   abs

 

مقدار قدر مطلق (مثبت) مقدار ورودی را می دهد .

 

>>abs(-2)

 

Ans=

2

 

>>abs(-i)

 

Ans=

1

همان ثابت موهومی است .iدر مثال دوم منظوراز

 

ساخت عدد مختلطcomplex

 

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

 

مربوطه را  می سازد .

 

 

>>A=complex(2,4)

 

A=

2.0000+4.0000i

 

تعداد ممیز در مثال بالا فقط به  format    بستگی  دارد .

 

 

imag   قسمت موهومی عدد مختلط

 

 

با این دستور می توان به قسمت حقیقی عدد مختلط دست یافت .

 

 

>>a=complex(2,3);

>>imag(a)

 

Ans=

3

 

real      قسمت حقیقی عدد مختلط

 

 

این دستور قسمت حقیقی عدد مختلط را به ما نشان می دهد .

 

 

>>real(a)

 

Ans=

2

 

angle  مقدار زاویه قطبی مختلط

 

این تابع مقدار زاویه قطبی را در دستگاه مختلط ارائه می دهد .

 

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

 

بر اساس عدد وارد شده و مبدا را می دهد .

 

 

>>angle(1+0i)

 

Ans=

0

>>angle(-1+0i)

 

Ans=

3.1415

>>angle(1+i)

 

Ans=

0.785

 

 

conj     مزدوج مختلط

 

مقدار مزدوج مختلط را ارائه میکند .

>>conj(2-4i)

 

Ans=

2.0000+4.0000i

توابع نمایی

 

rqrt      ریشه دوم

 

مقدار ریشه دوم یا همان جذر مقدار وارد شده رامی دهد .

>>sqrt(9)

 

Ans=

3

 

sqrtm     ریشه دوم ماتریس

 

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

 

 

nthroot     ریشه   n ام   عدد

 

ریشه   n ام عدد را محاسبه میکند .

>>nthroot(8,3)

 

Ans=

2

power    توان

 

مقدار اول را به توان مقدار دوم می رساند .

>>power(2,3)

 

Ans=

 

8

 

pow2     توان بر مبنای دو

 

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

>>pow2(3)

 

Ans=

8

 

 

exp     تابع نمایی

 

مقدار تابع نمایی یا همان  e به توان x  را محاسبه میکند .

>>exp(1)

 

Ans=

 

2.7183

مقدار عدد نپر بدست آمد (همان e^l  را نوشتیم).

 

 

log    log2    log10         لگاریتم

 

log        همان لگاریتم طبیعی یا بر مبنای e  است .

 

log2      لگاریتم بر مبنای دو است .

 

log10    لگاریتم بر مبنای ده است .

 

>>log(2.7183)

 

Ans=

1

 

Logm   لگاریتم ماتریس را می دهد .

 

 

توابع مثلثاتی

 

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

 

مورد توابع مثلثاتی وجود دارد که رفته رفته کامل می شود.

 

توابع     sin   cos   tan   cot  مقادیر سینوس کســینوس تانژانت

 

و کتانژانت مقدار را می دهد .

 

توابع    asin    acos   atan   acot  مقادیر معکوس توابـــع بالا را

 

می دهد .

 

توابع    sinh   cosh   tanh   coth  مقادیر هیپربولیک توابع بالا را

 

می دهد .

 

توابع    asinh   acosh  atanh  acoth  مـــــــقادیر معکوس توابع

 

هیپربولیک را می دهد .

 

نحوه استفاده از توابع مثلثاتی بدین گونه است که مقدار را بر

 

حسب رادیان مقابل تابع مینویسیم.

 

 

>>sin(pi/2)

 

Ans=

1

 

>>asin(1)

 

Ans=

1.5708

 

که دومین پاسخ همان pi/2   است.

 

در متلب 7 وبالاتر توابع مربوط به درجه نیز گذاشته شده است که

 

درادامه دستور فقط حرف d  می گذارد .

>>sind(90)

 

Ans=

1

 

>>asind(1)

 

Ans=

90

 

 

دستورات منطقی

 

isempty          خالی است یا نه

 

بیشتر اوقات از input  برای انتخاب یکی از چند موضوع عنوان شده

 

بکار میرود در این موارد باید چند عدد خاص را وارد کرد .

 

فرض کنید در برنامه ای روش روبرو را بکار ببرید که با وارد کــــــــردن

 

عددی به صفحه ای برود و اگر هیچ عددی وارد نشود و enter شود

 

یک عدد را خود به خود در نظر گیرد .

1  goto first page

 

2go to second page

 

3 exit

 

Please enter(1-3)[1]

 

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

 

سه عدد 1  2  3  را وارد کرد در آخرین خط می بینید که [1] نوشته

 

شده است این بدین معنی است که اگر بدون وارد کردن عــــــددی

 

{enter} کردیم به عنوان ورودی شماره 1 را بر می دارد .

 

این کار با دستور isempty انجام می شود بدین گونه که دســتور

 

مقدار وارد شده را نگاه می کند اگر خالی باشد در پاسـخ 1 واگر

 

خالی نباشد 0 خواهد داد .

 

 

>>a=input(‘please number:’);

 

Please enter the number

 

>>isemty(a)

 

ans=

1

 

 

isempty           عدد است یا نه

 

این دستور نیز مانند isempty می باشد فقط عـــدد بودن مقدار را

 

بررسی می کند.

>>a=8

>>isnumeric(a)

ans=

1

 

>>a=’ali’

>>isnumeric(a)

 

Ans=

 

0

 

isequal               برابر است یا نه

 

این دستور نیز مانند دو دستور قبل هستند ولی دو مقدار را مقایسه

 

می کنند.

>>a=3

>>isequal(a,4)

 

Ans=

 

0

 

 

isreal               حقیقی است یا نه

 

حقیقی بودن ورودی را بررسی میکند .

 

همه می دانیم یک عدد مختلط x+iy است که اگرy یعنی قسمت

 

موهومی 0 باشد عدد حقیقی میشود .

 

>>A=1

>>isreal(a)

 

Ans=

1

 

 

 

 

 

isprime         عدد اول بودن

 

با اجرای این فرمان عدد اول بودن مقدار وارد شده بررسی میشود .

 

>>isprime(3)

Ans=

1

 

 

توابع زمانی

 

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

 

>>clock

 

Ans=

1.0 e+003*

2.006    0.007    0.0260    0.0010    0.0360    0.0179

 

 

date       تاریخ را به صورت نوشتاری می دهد .

 

>>date

 

Ans=

26-jul-2006

 

tictoc      گرفتن زمان در بازه مشخص

 

از زمان شروع یعنی اجرای tic زمان گیری شروع می شود تا وقتی

 

که toc اجرا شود .

 

 

زمان بر حسب ثانیه است .

>>tic

>>……….

>>toc

Elapsed time is 10.031000 seconds