آموزش برنامه نویسی متلب – مرور مفاهیم و دستورات

 

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

 

 

MATLAB یک زبان سطح بالا برای محاسبات فنی است که یک محیط آسان را برای انجام محاسبات حرفه ای، فراهم می کند که تجسم و برنامه نویسی را در کنار هم قرار می دهد. این امر سبب می شود که مشکلات و راهکارها در الگوریتم های ریاضی بررسی و برطرف شود. از کاربردهای این زبان می توان به موارد زیر اشاره نمود:

  • محاسبات ریاضی
  • توسعه و بهبود الگوریتم
  • مدل سازی، شبیه سازی و نمونه سازی
  • تجزیه و تحلیل داده ها، اکتشاف و تجسم
  • گرافیک علمی و مهندسی
  • توسعه برنامه، از جمله ساخت رابط گرافیکی کاربر

MATLAB یک سیستم تعاملی است که عنصر داده اولیه آن، یک آرایه است که به ابعاد آن نیازی ندارد و در حل بسیاری از مشکلات محاسبات فنی به شما کمک می کند، به خصوص کسانی که با فرمول های ماتریس و بردار سروکار دارند. باید به این نکته اشاره کرد که پایه اصلی زبان متلب زبان C است و تمام برنامه های نوشته شده در زبان متلب نهایتاً باید به زبان C تبدیل شود.

همانطور که مشخص است نام زبان متلب از ماتریکس گرفته شده است و به اختصار Matrix Laboratory می باشد که به معنی آزمایشگاه ماتریس بوده است.

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

MATLAB دارای یک خانواده از برنامه های کاربردی خاص به نام جعبه ابزار است که برای بسیاری از کاربران بسیار مهم است، جعبه ابزار به شما امکان می دهد تا تکنولوژی خاصی را یاد بگیرید. جعبه ابزار مجموعه ای جامع از توابع هستند که امکانات خاصی را در اختیار استفاده کننده خود قرار می دهد. این ابزارها شامل موضوعات متفاوتی هستند که عبارتند از:

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

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

برای برنامه نویسی با داشتن نرم افزار متلب و دانش برنامه نویسی با متلب، می توانید به راحتی پروژه های خود را انجام دهید، زیرا تعامل با این زبان بسیار راحت است. اگر شما از سیستم عامل ویندوز استفاده می کنید در این اموزش از نسخه R2013a استفاده می شود. همچنین شما می توانید با توجه به رشته مورد علاقه خود جعبه ابزار متلب را نصب کنید تا از امکانات آن بهره مند شوید. اگر شما از آن دسته هستید که علاقه مند به سیستم عامل لینوکس می باشید و به دنبال نسخه های رایگان متلب هستید می توانید از Freemat با حجم بسیار کم استفاده کنید. اکثر دستورات ترسیمی به راحتی در این برنامه اجرا می شود.

نکته: کامل ترین و جامع ترین منبع برای اموزش متلب help نرم افزار می باشد و شما نه تنها دستور مورد نظر را یاد می گیرید بلکه شما را تا هدف راهنمایی می کند،اما چگونه استفاده کردن از آن و کلماتی که جستجو می کنید به شما بستگی دارد و این خود یک مهارت می باشد.

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

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

الف)ماتریس یک در یک:

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

;A=4<<<

همانطور که در مثال بالا مشخص است مقداردهی به یک متغییر همان تعریف یک ماتریس یک در یک با فرم [۴] می باشد.

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

ب)ماتریس ۱*n

[A=[1 2 3 4<<<

A=1 2 3 4

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

نکته: برای فاصله بین دو عنصر ارایه از (،) نیز می توان استفاده کرد.

نکته: برای الحاق عمودی عناصر می توان از ; استفاده کرد.

مثال: ماتریس را در متلب ایجاد کنید.

;A=[1 2;3 4]<<<

مثال: دو ماتریس و را استفاده کرده و ماتریس را ایجاد نمایید.

 

;C=[B A]<<<

مثال: ماتریس A را ۵ بار به صورت افقی و ۴ بار به صورت عمودی تکرار کرده و ماتریس جدیدی ایجاد نمایید.

;repmat(A,4,5)<<<

نکته: برای پاک کردن صفحه نمایش از دستور CLC استفاده نمایید.

دستیابی به عناصر ماتریس:

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

نکته: اگر برای ماتریس ها متغیری در نظر نگیرید، نرم افزار بصورت پیش فرض مقادیر ماتریس را در متغییر ans خواهد ریخت.

C(2,3)<<<

=Ans

۷

محل قرار گیری عدد در در مثال بالا معرف سطر می باشد و به معنی سطر دوم است و محل قرار گیری عدد سه معرف ستون می باشد و معنی ستون سوم است.همچنین ماتریس c در مثال قبل محاسبه شده است.

مثال: عضو آخر ماتریس c را بدست آورید.

C(end,end)

=Ans

۴

بازه:

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

۱۰:۲۰<<<

=Ans

 

۲۰ ۱۹ ۱۸ ۱۷ ۱۶ ۱۵ ۱۴ ۱۳ ۱۲ ۱۱ ۱۰

ایجاد تصاعد حسابی با قدر نسبت d

نحوه تعریف => a:d:b

a: جمله اول دنباله حسابی

b: جمله آخر دنباله حسابی

d: قدر نسبت دنباله حسابی

نکته: برای تعریف دنباله نزولی کافی است جای a و b را تغییر دهیم و بجای d قرینه آن را قرار دهیم.

مثال:در ماتریس را در نظر بگیرید و موارد زیر را برآورده کنید.

الف)از سطر دوم ستون دون تا آخر سطر را نشان بدهد.

A(2,2:end)<<<

=Ans

۶ ۷ ۸

ب)کل سطر دوم را نمایش بدهد.

A(2,J)<<<

=Ans

۸ ۷ ۶ ۵

نکات:

A(i , j): عناصر سطر i ام، ستون j ام

A(i , :): عناصر سطر i ام

A(: , j): عناصر ستون j ام

A(i , j1:j2): عناصر سطر i ام، از ستون j1 تا j2

A(: , : )==A: هر کدام از این دو فرم در متلب یه تعریف دارد و آن نمایش کل ماتریس می باشد.

ترتیب شمارش در ماتریسها:

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

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

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

A(1)<<

=Ans

۱

A(3)<<

۹

A(end)<<

۱۲

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

نکته: اگر ماتریس سه بعدی باشد سطر، سپس ستون و در نهایت طبقه شمارش می شود.

نکته: اگر در متلب یک ماتریس به صورت A ( : ) نمایش داده شود، به این معنی است که تمام اعضای یک ماتریس را به صورت یک بعدی و بر اساس ترتیب شمارش و عمودی نمایش دهد. این روش برای تبدیل یک ماتریس به یک بردار روش مناسبی است.

( : )A<<

=Ans

۱

۵

۹

۲

۶

۱۰

۳

۷

۱۱

۹

۸

۱۲

نکته:اگر بخواهیم A( را به صورت افقی بنویسیم، کافی است که ماتریس را ترانهاده کنیم. دستور ترانهاده با ‘ انجام می شود.

’( : )A<<

=Ans

۱۲ ۸ ۹ ۱۱ ۷ ۳ ۱۰ ۷ ۶ ۲ ۹ ۵ ۱

اعمال ریاضی اصلی بر روی ماتریس

تابع جمع

اعضای ماتریس B=[3 4 5 7 8 9] را با هم جمع کنید.

B=[3 4 5 7 8 9]<<

Sum(B)<<

=Ans

۳۶

تابع ضرب

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

prod(B)<<

=Ans

۳۰۲۴۰

مثال: مجموع اعداد ۱ تا ۵۰ را بدست آورید.

Sum(1:50)<<

=Ans

۱۲۷۵

مثال:فاکتوریل ۵ را بدست آورید.

prod(1:5)<<

=Ans

۴۰۳۲۰

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

Sum(A)<<

=Ans

۲۴ ۲۱ ۱۸ ۱۵

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

مثال:

Doc Sum<<

نکته:

Sum(A,1) == sum(A)

نکته:

Sum(sum(A)) == sum( A( )

ایجاد یک ماتریس سه بعدی:

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

مثال:

C(: , : , 1) = [1 2 ; 3 4]<<

C(: , : , 2) = [5 6 ; 7 8]<<

همانطور که مشاهده می کنید ماتریس c که یک ماتریس دو بعدی بود و در مثال قبل آن را ایجاد کردیم با اضافه کردن طبقه سوم به یک ماتریس سه بعدی تبدیل شده است.

ساخت یک ماتریس n*m از روی یک ماتریس یک بعدی:

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

مثال: ماتریس یک بعدی که شامل اعداد ۱ تا ۱۶ است بصورت یک ۴ در ۴ تبدیل نمایید.

A = 1 : 16<<

=A

۱۶ ۱۵ ۱۴ ۱۳ ۱۲ ۱۱ ۱۰ ۹ ۸ ۷ ۶ ۵ ۴ ۳ ۲ ۱

reshap(A,4,4)<<

۴ ۳ ۵ ۱

۸ ۷ ۶ ۲

۱۲ ۱۱ ۴ ۳

۱۶ ۱۵ ۸ ۴

جدا کردن عناصر قطری از ماتریس:

diag(A)<<

ans=

۱

۶

۱۱

۱۶

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

diag ([1 3 5])<<

=ans

۰ ۰ ۱

۰ ۳ ۰

۵ ۰ ۰

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

diag(diag(A))<<

ایجاد یک ماتریس تصادفی:

برای ایجاد اعداد تصادفی از تابع rand استفاده می کنیم. دقت کنید تابع rand پیاده سازی های متفاوتی دارد که ما برخی از آن را بررسی کرده و برخی دیگر را نیز می توانید در help متلب فرا گیرید.

D= randi ([50 100],6,6)<<

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

آرگومان دوم تابع: معرف سطر ماتریس می باشد.

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

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

ویژگی ماتریس متقارن:

D=[dij]

۱ =< ij <=n

 

شرط اول: dij باید بزرگتر از صفر باشد. Dij>0

شرط دوم: عناصر بالا مثلثی و پایین مثلثی یکسان داشته باشد. dij= dji

شرط سوم: عناصر قطر اصلی ماتریس برابر صفر باشد. dij=0

مثال: ماتریس تصادفی D را که در مثال قبل ساختیم را متقارن نمایید.

D =(D + D’)/۲<<<

D=floor((D+D’)/۲)<<<

D=D-diag(diag(D))

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

گرد کردن:

ceil: گرد کردن به بالا

round: گرد کردن با رعایت تعادل بین نیمه بالا و پایین

floor: گرد کردن به پایین (همان جزء صحیح است)

Floor Round Ceil X
۱ ۱ ۱ ۱
۱ ۱ ۲ ۱٫۰۵
۱ ۱ ۲ ۱٫۴۵
۱ ۱ ۲ ۱٫۵۰
۱ ۲ ۲ ۱٫۵۵

 

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

del(A)<<<

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

eig(A)<<<

نکته: حاصلضرب مقادیر ویژه برابر دترمینان ماتریس می باشد.

ایجاد ماتریس تماما صفر:

(طبقه،ستون،سطر)zeros

Zeros(5,5)=zeros(5)

Zeros([3 4 3])=zeros(3,4,2)

ایجاد ماتریس تماما یک:

(ستون،سطر)ones

ایجاد ماتریس واحد:

همه عناصر غیر از قطر اصلی صفر است.

eye(n)

n: معرف سطر و ستون ماتریس می باشد.

ایجاد ماتریس بی نهایت در متلب:

مثال: یک ماتریس ۵*۳ با عناصر بی نهایت تشکیل دهید.

inf(3,5)<<<

=ans

Inf Inf Inf Inf Inf

Inf Inf Inf Inf Inf

Inf Inf Inf Inf Inf

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

repmat(inf,3,5)<<<

=ans

Inf Inf Inf Inf Inf

Inf Inf Inf Inf Inf

Inf Inf Inf Inf Inf

عنصر تهی در متلب:

با هیچ چیز برابر نیست حتی خودش (null).

Nan(not a number)

عملگرها

به عبارت هایی که عمل خاصی را بر روی عملوندها (عبارتی که قرار است عملی رو آن انجام شود) انجام می دهند عملگر می گویند. معمولا در هر زبان برنامه نویسی عملگرها را دسته بندی کرده و بر اساس نوع دسته بندی آن را بیان می کنند.

عملگرهای محاسباتی

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

عملگرهای مقایسه ای

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

توضیحات عملگر مقایسه ای
تساوی ==
نامساوی =~
بزرگتر مساوی =<
کوچکتر مساوی =>
بزرگتر <
کوچکتر >

 

عملگرهای منطقی

این عملگرها عبارت ها را بصورت منطقی مقایسه می کنند که عبارتند از:

not: اگر بخواهیم از طریق مجموعه ها تعریفی برای آن بیان کنیم، مجموعه ای است که اعضای آن در مجموعه جهانی قرار دارد اما در عملوند آن قرار ندارد.

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

Or: به معنی اجتماع درریاضی است. برقراری شرط در صورت تحقق یکی انجام می شود.

توضیحات حالت پیشرفته در متلب عملگر مقایسه ای
نقیض   N not
ترکیب عطفی && & and
ترکیب خطی || | or

 

AND پیشرفته:

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

OR پیشرفته:

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

معرفی برخی توابع در متلب:

Find: اعضای غیر صفر ماتریس را نشان می دهد .

find(B)<<

=Ans

۷ ۴ ۲ ۱

Sort: برای مرتب سازی از آن استفاده می شود.

sort( A > 5 & A < 10)<<<

=Ans

۹

۶

۷

Logical: در ماتریس مورد نظر جستجو کرده مقادیری که بزرگتر از صفر باشد را به یک تبدیل می کند.

logical(B)<<<

=Ans

۰ ۱ ۰ ۱

۰ ۱ ۰ ۱

۰ ۱ ۰ ۱

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

A( A >5 & mod(A,2)==1)<<

=Ans

۹

۷

۱۱

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

 

توضیحات نوع داده
۸-bit عدد صحیح علامت دار int8
۸-bit عدد صحیح بدن علامت uint8
۱۶-bit عدد صحیح علامت دار int16
۱۶-bit عدد صحیح بدن علامت uint16
۳۲-bit عدد صحیح علامت دار int32
۳۲-bit عدد صحیح بدون علامت uint32
۶۴-bit عدد صحیح علامت دار int64
۶۴-bit عدد صحیح بدون علامت uint64
نوع داده ۲ بایت علامت دار single
نوع داده ۴ بایت علامت دار double
نوع داده منطقی یک بیت logical
نوع داده ای کاراکتر ۸ بیت char
ساختاری از انواع داده ای همسان cell array
ساختاری از نوع داده ای غیر همسان structure

 

نکته: در تصویر سیاه و سفید هر پیکسل (کوچکترین واحد هر تصویر) یک عدد بین ۰ تا ۲۵۵ است که از نوع unit8 می باشد.

مثال: یک تصویر تصادفی تولید نمایید.

A =randi([0 255],1000,1000)<<

unit8(randi([0 255],1000,1000))<<

imshow(A)<<

نکات خاص:

بزرگترین عددی که می توانیم تولید کنیم چند است؟

realmax<<

=ans

۱٫۷۹۷۷e+308

کوچکترین عددی که می توانیم تولید کنیم چند است؟

realmin<<

=ans

۲٫۲۲۵e-308

بزرگترین عدد صحیح قابل تولید چقدر است؟

intmax<<

=ans

۲۱۴۷۴۸۳۶۴۷

کوچکترین عدد صحیح قابل تولید چقدر است؟

intmin<<

=ans

-۲۱۴۷۴۸۳۶۴۸

عدد پی در متلب؟

pi<<

=ans

۳٫۱۴۱۶…

نحوه مشخص کردن نوع یک متغیر چیست؟

برای اینکه نوع متغیری را که نمی دانیم تعیین کنیم از توابع زیر می توانیم استفاده کنیم. نتیجه این توابع یک مقدار منطقی است که مشخص می کند آیا نوع مورد نظر که فرض کردیم درست است یا خیر؟ این توابع عبارتند از:

isinteger ,isfloat ,isnumeric ,isreal ,isfinit ,isinf ,isnan

مثال:

b=20*i+2<<

b=2.000+10i

isreal(b)<<

=ans

۰

real(b)<<

=ans

۱٫۰۰۰

imag(b)<<

ans=

۱۰

نکته:

a=x+yj

Real(a) ___________  x

Conj(a)____________  x-yj

Imag(a)_____________  y

تعریف نوع داده کاراکتر:

>>’hello world!’

=A

Hello World!

double(A)<<

=A

۸۳… ۳۲ ۱۱۱ ۱۰۸ ۱۰۸ ۱۰۱ ۷۲

B=[65 66 67 68]<<

=B

۶۸ ۶۷ ۶۶ ۶۵

char(B)<<

=ans

ABCD

char(B+32)<<

=ans

abcd

مثال: حروف a تا z را به ترتیب نمایش دهید.

>>A=’a’:’z’

A=

abcdefghijklmnopqrstuvwxyz

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

تابع strcmp دو رشته c و p را دریافت کرده و مقایسه را با شرط اینکه به حروف بزرگ و کوچک حساس نمی باشد، انجام می دهد.

Strcmp(c,p)

تابع strcmpi دو رشته c و p را دریافت کرده و مقایسه را با شرط اینکه به حروف بزرگ و کوچک حساس می باشد، انجام می دهد.

Strcmpi(c,p)

تبدیل تمام کاراکترهای یک رشته به حروف بزرگ یا کوچک:

تابع lower تمام کاراکترهای رشته مورد نظر را به حروف کوچک تبدیل می کند.

Lower(A)

تابع upper تمام کاراکترهای رشته مورد نظر را به حروف بزرگ تبدیل می کند.

Upper(A)

الحاق رشتهای ناهمسان

روش اول:

>> A=Ali;

>>B=Mohammad;

>>C=Arash;

>>[ A’*****’;B;C’***’]

ans=

Ali*****

Mohammad

Arash***

روش دوم :

استفاده از ارایه سلولی که عناصر غیر همسان را در خود جای می دهد.

>> c={‘Ali’,’Mohammad’,’Arash’}

c=

‘Ali’ ‘Mohammad’ ‘Arash’

>>c(1)

ans=

‘Ali’

خلاصه:

برای الحاق عناصر غیر همسان از ارایه سلولی استفاده می کنیم که علامت آن { } است. خروجی حاصل نیز بصورت سلول می باشد. برای الحاق عناصر همسان از ارایه استفاده کرده که علامت آن [] است .

ساختارهای کنترلی:

برای پیاده سازی هر الگوریتمی نیاز به سه شرط اساسی زیر است:

  • توالی > تکرار یک سری دستور پشت سر هم.
  • انشعابی> تصمیم گیری اینکه در لحظه باید کدام خط ایجاد شود.
  • تکرار > قابلیت تکرار یک سری کد خاص در یک بازه زمانی وجود داشته باشد.

ساختار شرطی در متلب:

If: مهمترین ساختار شرطی در هر زبان برنامه نویسی می باشد که پایه و اساس تمام ساختارهای شرطی دیگر بوده، نحوه استفاده و عملکرد این ساختار در زیر بیان شده است.

If expression

Statements

Else if expression

Statements

Else

Statements

End

مثال: با فرض اینکه تابع f(x) به صورت بیان شده است. این تابع را با استفاده از ساختار شرطی if پیاده سازی کنید.

If( x<-1)

Return -1;

Else if(x >1)

Return 1;

Else

Return x;

End

Switch: این ساختار یک حالت خاص از ساختار شرطی if می باشد. با این تفاوت که برای عملیاتی که در هر لحظه یک انتخاب داریم را به فرم ساده تر تبدیل می کند.

N =[ 1 2 3 4 5];

switch n

case { 1,5}

statements

case 2

statements

case 3

statements

case 4

end

نکته: در متلب بر خلاف زبان های دیگر بعد از case دستور break وجود ندارد. مثال بالا بصورت الگوریتمی بیان شده و در متلب قابل اجرا نیست.

ساختار های کنترلی قابل تکرار

For: این ساختار یک حلقه تکراری را برای شما فراهم می کند که تعداد تکرار آن قابل شمارش باشد. این دستور حالت خاصی از دستور while می باشد.

For var= set

Statements

End

مثال: کدی به متلب بنویسید که توان دوم اعداد ۱ تا ۱۰ را نمایش داده.

>>for i=1:10

disp(i^2);

end

مثال: کدی به متلب بنویسید که توان دوم و سوم اعداد ۱ تا ۱۰ را نمایش دهد.

>> for i=1:10

Disp([ i i^2 i^3]);

End

مثال: کدی به زبان متلب بنویسید که توان ۲ و ۳ اعداد ۰ و ۲ و ۳ و۱و۴و۸ را محاسبه نماید.

>>for i=[ 1 4 8 2 3 0 ]

disp([ i i^2 i^3 ]);

end

while: با این حلقه می توان تمام ساختارهای با شرط تکرار را ایجاد نمود. معمولا زمانی از این ساختار استفاده می شود که شرط تکرار ما بی نهایت باشد. این ساختار حالت کلی تمام ساختارهای تکراری هست که در هر زبان برنامه نویسی وجود دارد.

While( condition)

Statements

End

مثال: کدی به زبان متلب بنویسید که اعداد ۱ تا ۹ را نمایش دهد ولی عدد ۵ را نمایش ندهد.

For i=1:10

If( i==5)

Continue;

End

Disp(i);

End

همانطور که مشخص است وجود continue باعث می شود که مقدار ۵ نادیده گرفته شود و مقدار i یکی اضافه می شود. در واقع از آنجایی که continue بکار برده می شود یک پرش به حلقه for داریم.

مثال: کدی به زبان متلب بنویسید که اعداد در حلقه اعداد ۱ تا ۱۰ قرار گیرد ولی از ۱ تا ۴ شمارش کند.

For i=1:10

If(i==5)

Break;

End

Disp(i);

End

نکته: تفاوت دستور break و continue را می توانید در دو مثال بالا مشاهده کنید. مشخص است که دستور break باعث خارج شدن از حلقه می شود ولی دستور continue از جایی که فراخوانده می شود مستقیم به اول حلقه پرش می کند.

مثال مهم: کدی به زبان متلب بنویسید که اعداد ۱ تا ۱۰ را نمایش دهد ولی عدد ۷ را نمایش ندهد. (این بار بدون استفاده از continue این کار را انجام دهید)

for i=1:10

if(i~=7)

disp(i);

end

end

مثال: در محیط editor متلب کدی بنویسید که بتوان هر جمله از دنباله فیبونانچی را بدست آوریم.

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

FK=1,1,2,3,5

F1=1

F2=1

FK=FK-1+FK-2 K >= 3 ,

clc;

clear;

F(1) = 1;

F(2) = 1;

for k=3:200

F(k)=F(k-1)+F(K-2);

end;

در محیط command window می توانیم سری فیبونانچی را فراخوانی کنیم.

>>F(150)

عملگرهای جبری عضو به عضو:

این عملیات را عملگر نقطه ای نیز می نامیم.

تقسیم نقطه ای ( /. )

>> A=[1 2 3]

A=

۱ ۲ ۳

>>B=[4 5 6]

B=4 5 6

>>A ./ B

ضرب عضو به عضو:

مانند تقسیم عضو به عضو می باشد با این تفاوت که عمل ضرب را انجام می دهد. برای ضرب عضو به عضو کافی است که علامت دات (.) را کنار عملگر ضرب قرار دهیم. باید توجه کنید که عملیات عضو به عضو بر روی ماتریسها انجام می شود.

>> A .* B

بکارگیری صورهای وجودی و عمومی در متلب:

and All For all صور عمومی
or Any Exists صور وجودی

 

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

 

 

 

 

 

 

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *