انواع حلقه ها در متلب (Matlab)
حلقهها راهی برای افزایش قدرت و سرعت برنامهنویسی هستند. با استفاده از حلقهها میتوانید بخشی از کد خود را بارها و بارها تکرار کنید، بدون آنکه نیاز باشد هر بار آن را بنویسید. حلقه ها در متلب برای موارد متنوعی کاربرد دارند، مانند:
- انجام یک کار تا زمانی که یک شرط خاص رخ دهد.
- کار کردن با تمام مقادیر یک آرایه یا لیست.
- ایجاد یک آرایه یا لیست جدید با افزودن مقادیر، به ترتیب
- ادامه دادن یک فرآیند تا زمانی که به جواب مطلوب برسید.
حلقه ها و دستورات شرطی متلب چیست؟
حلقهها ابزارهایی هستند که به ما اجازه میدهند یک سری از عملیاتها را چندین بار تکرار کنیم. زبان برنامه نویسی متلب انواع متنوعی از حلقهها را در اختیار ما قرار میدهد که میتوانیم بر اساس نیازمان از آنها استفاده کنیم. در اینجا، ما با مشخصات و کاربردهای انوع حلقه ها در متلب آشنا میشویم و نحوه استفاده از آنها را نیز بررسی میکنیم.
حلقهها زمانی کاربرد دارند که بخواهیم یک بخش از کد را تا زمانی که یک شرط برقرار باشد یا تا زمانی که به تعداد معینی اجرا شود، اجرا کنیم. متلب سه نوع اصلی از حلقهها را پشتیبانی میکند، که عبارتند از:
- حلقههای while که تا زمانی که یک شرط درست باشد، ادامه مییابند.
- حلقههای for که برای تعداد مشخصی از کدها اجرا میشوند و یک متغیر شمارنده دارند.
- حلقههای تو در تو که یک حلقه درون یک حلقه دیگر قرار میگیرد و میتواند برای پیمایش ابعاد مختلف یک آرایه یا ماتریس مفید باشد.
برای نوشتن حلقهها در متلب، باید به این نکته توجه کنیم که حلقهها را در یک فایل اسکریپت قرار دهیم و نه در پنجره دستور که محیط تعاملی متلب است. این کار باعث میشود که حلقهها به صورت کامل و صحیح اجرا شوند و خطاهای احتمالی را کاهش دهند.
معرفی انواع حلقهها در متلب با مثال
متلب سه نوع حلقه را پشتیبانی میکند: حلقه for، حلقه while و حلقه تو در تو. هر کدام از این حلقهها دارای قواعد و کارکردهای متفاوتی هستند. در این بخش، با ویژگیها و کاربردهای هر کدام از حلقه ها در متلب آشنا میشویم و نحوه نمایش آنها را با استفاده از نمودارهای جریان و تفسیر هر بخش از آنها بیان میکنیم.
1. حلقه while در متلب
حلقه while در متلب بوعی ساختار کنترل جریان برنامهنویسی است. این حلقه یک بخش از کد را تا زمانی که یک شرط معین برقرار باشد، به صورت مکرر اجرا میکند. در واقع از این حلقه زمانی استفاده میشود که تعداد تکرار، مشخص نیست یا شمارشگر نداشته باشیم.
قواعد و سینتکس
سینتکس حلقه وایل در متلب به صورت زیر است:
while condition
% commands
End
در اینجا شرط، یک عبارت منطقی است که باید برای ادامه حلقه درست باشد. دستورات داخل حلقه تا زمانی که شرط نادرست باشند اجرا میشوند.
فلوچارت (نمودار):
فلوچارت برای حلقه while به شکل زیر است:
┌─────────────────┐
│ (آغاز کردن) │
└──────────────────┘
│
(وضعیت)
│
┌────┴────┐
│ دستورات │
└─────────┘
│
(به روز رسانی)
│
حلقه
توضیحِ نمودار:
- آغاز کردن: در این مرحله، متغیرهای مورد نیاز قبل از ورود به حلقه مقداردهی میشوند.
- وضعیت: این مرحله، شرط حلقه بررسی میشود. اگر شرط صحیح باشد، حلقه ادامه مییابد. در غیر این صورت، حلقه خاتمه مییابد.
- دستورات: در این مرحله، دستورات داخلِ حلقه اجرا میشوند.
- بهروزرسانی: در این مرحله، هرگونه تغییرات لازم، بر روی متغیرهای حلقه اعمال میشوند.
- حلقه: در این مرحله، برنامه به مرحله ۲ برمیگردد و فرآیند را تا زمانی که شرط نادرست باشد تکرار میکند.
مثال از حلقه while:
num = 20;
% while loop execution
while( a < 30 )
fprintf(‘value of a: %d\n’, a);
a = a + 1;
end
خروجی مثال فوق به صورت زیر است:
value of num: 20
value of num: 21
value of num: 22
value of num: 23
value of num: 24
value of num: 25
value of num: 26
value of num: 27
value of num: 28
value of num: 29
2. حلقه FOR در متلب
حلقه for یکی از انواع حلقه ها در متلب با یک ساختار کنترل تکرار است که به شما امکان میدهد یک حلقه را به صورت کارآمد بنویسید که نیاز به اجرای تعداد مشخصی از تکرار دارد. از این حلقه زمانی استفاده میشود که حداکثر تعداد تکرار مشخص باشد. این حلقه شبیه به حلقه while است، اما دو تفاوت مهم دارد:
- با آموزش حلقه for در متلب میتوانید تعیین کنید که حلقه چند بار تکرار شود؛ به جای این که حلقه تا زمانی که یک شرط درست باشد ادامه یابد.
- شرط در انتهای حلقه، قبل از هر تکرار بررسی میشود به جای این که بعد از هر تکرار با حلقههای while بررسی شود.
قواعد و سینتکس حلقه فور در متلب
سینتکس حلقه for در متلب به صورت زیر است:
for i = start:increment:end
% commands
end
دستورات i یک متغیر حلقه است که مقادیر از شروع تا پایان را با افزایشی برابر با increment میگیرد. دستورات داخل حلقه برای هر مقدار i اجرا میشوند. نمودار (فلوچارت) جریان برای حلقه for به شکل زیر است:
فلوچارت (نمودار):
نمودار برای حلقه for به شرح زیر است:
┌───────────────────┐
│ مقداردهی اولیه │
└───────────────────┘
│
(وضعیت)
│
┌────┴────┐
│ دستورات │
└─────────┘
│
(افزایش)
│
حلقه
توضیحِ نمودار:
حلقه for یک ساختار کنترل تکرار است که به شما امکان میدهد یک بخش از کد را به تعداد مشخصی و بارها اجرا کنید. این حلقه پنج مرحله اصلی دارد که عبارتند از:
- مقدار دهی اولیه: در این مرحله، متغیر حلقه i را با مقدار start شروع میکنیم.
- وضعیت: در این مرحله، میبینیم که آیا i هنوز کوچکتر یا مساوی end است یا خیر. اگر بله، حلقه را ادامه میدهیم. اگر خیر، حلقه را متوقف میکنیم.
- دستورات: در این مرحله، دستوراتی که داخل حلقه نوشتهایم، انجام میشود.
- افزایش: در این مرحله، مقدار i با مقدار increment افزایش مییابد.
- حلقه: به مرحله ۲ برمیگردد و فرآیند را تا زمانی که شرط نادرست باشد تکرار خواهد شد.
مثال از حلقه for:
for num = 0:10
fprintf(‘value of a: %d\n’, a);
end
خروجی مثال فوق به صورت زیر است:
value of num: 0
value of num: 1
value of num: 2
value of num: 3
value of num: 4
value of num: 5
value of num: 6
value of num: 7
value of num: 8
value of num: 9
value of num: 10
حلقه while از حلقه for قویتر است.
3. حلقههای تو در تو در متلب
یکی از کاربردیترین حلقه ها در متلب حلقههای تو در تو است. این حلقه زمانی کاربرد دارند که بخواهید یک حلقه را داخل یک حلقه دیگر قرار دهید. برای مثال، زمانی که بخواهید به تعداد مشخصی از تکرارهای یک حلقه داخلی، اجرا شود و وقتی که به یک شرط خاص برسد، حلقه بیرونی را متوقف شود.
در ادامه این نوع حلقه های متلب را همراه با ذکر مثال مورد بررسی قرار خواهیم داد.
سینتکس حلقه تودرتو در متلب
نمونه سینتکس حلقه تودرتو در متلب به صورت زیر است:
for i = start1:increment1:end1
for j = start2:increment2:end2
% commands
end
end
i و j دو متغیر حلقه هستند که مقادیری از start1 تا end1 و start2 تا end2 را با افزایشی برابر با increment1 و increment2 میگیرند.
دستورات داخل حلقه بیرونی برای هر مقدار i و دستورات داخل حلقه داخلی برای هر مقدار j اجرا میشوند.
فلوچارت (نمودار):
نمودار برای حلقههای تو در تو به شکل زیر است:
┌───────────────────┐
│ i │ را مقداردهی کنید
└───────────────────┘
│
(شرط I)
│
┌───────────────────┐
│ مقداردهی اولیه j │
└───────────────────┘
│
(شرط j)
│
┌────┴────┐
│ دستورات │
└─────────┘
│
(به روز رسانی j)
│
حلقه j
│
(به روز رسانی i)
│
حلقه i
توضیحِ نمودار:
- مقداردهی اولیه i: در این مرحله، متغیر حلقه بیرونی i را با یک مقدار اولیه شروع میکنیم.
- شرط i: در این مرحله، بررسی می شود که آیا i هنوز کوچکتر یا مساوی end1 است یا خیر. اگر بله، حلقه بیرونی ادامه مییابد. اگر خیر، حلقه بیرونی متوقف میشود.
- مقدار دهی اولیه j: در این مرحله، متغیر حلقه داخلی j را با یک مقدار اولیه شروع میکنیم.
- شرط j: در این مرحله، بررسی می شود که آیا j هنوز کوچکتر یا مساوی end2 است یا خیر. اگر بله، حلقه داخلی ادامه می یابد. اگر خیر، حلقه داخلی متوقف می شود و به مرحله ۵ میرود.
- دستورات: در این مرحله، دستورات نوشته شده داخل حلقههای داخلی انجام میشود.
- بهروزرسانی انجام میشود.
- در این مرحله تا زمانی که شرط نادرست را باشد، حلقه تکرار میشود.
- بهروزرسانی انجام میشود..
- حلقه: در این مرحله، برنامه تا زمانی که شرط i نادرست باشد، تکرار میشود.
مثال برای حلقه تو در تو:
i = 2:12
j = 2:12
if(~mod(i,j))
break; % if factor found, not prime
end
end
if(j > (i/j))
fprintf(‘%d is prime\n’, i);
end
end
خروجی مثال فوق به صورت زیر است:
2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
دستورهای کنترلِ حلقه ها در متلب (با مثال)
همانطور که گفتیم حلقه while تا زمانی که شرط درست برقرار شود ادامه دارد؛ این یعنی ممکن است تا بینهایت باشد. شاید بخواهید این حلقه ها در متلب را متوقف کنید یا به اصطلاح، آن را بشکنید؛ در این صورت میتوانید با استفاده از فرمانهای break و continue یک حلقه جدید به نام حلقه شکست میانی یا پایان، بسازید.
دستورات break و continue را میتوانید برای ایجاد یک نوع حلقه سوم به نام حلقه شکست میانی استفاده کنید. حلقه شکست میانی برای مواردی که باید حداقل یک بار کنترلهای حلقه را اجرا کنید (اما تصمیم برای خروج از حلقه بر اساس یک سری معیارِ خاص)، مفید است.
حلقه شکست میانی دو بخش دارد: بخش داخلی و بخش خارجی. بخش داخلی شامل دستورات تکراری است تا زمانی که یک معیار برآورده شود. وقتی این شرط برآورده شود، اجرا به دستور اولِ بعد از بخش داخلی میپرد و با تکرار بعدی، بخش خارجی ادامه مییابد.
دستور break برای حلقه ها در متلب
دستور break اجرای حلقه ها در متلب را خاتمه میدهد؛ البته for یا while و کنترل را به دستوری که بعد از پایان حلقه ظاهر میشود، منتقل میکند. در یک حلقه for هم در یک حلقه while، دستور break کنترل را به دستور اولی که بلافاصله بعد از پایان بدنه حلقه قرار دارد، منتقل میکند.
num = 20;
% while loop execution
while (num < 20 )
fprintf(‘value of a: %d\n’, num);
num = num+1;
if( num > 15)
% terminate the loop using a break statement
break;
end
end
خروجی مثال فوق به صورت زیر است:
value of num: 10
value of num: 11
value of num: 12
value of num: 13
value of num: 14
value of num: 15
این کد مقادیر num را از 10 تا 15 نمایش میدهد و سپس حلقه را با استفاده از دستور break متوقف میکند. دستور if بررسی میکند که آیا مقدار num بیشتر از 15 است یا خیر. اگر بله باشد، دستور break اجرا میشود و حلقه خاتمه مییابد. در غیر این صورت، حلقه ادامه مییابد.
دستور continue برای حلقه ها در متلب
دستور continue یک ساختار MATLAB است که به شما اجازه میدهد اجرای یک حلقه را متوقف کنید و سپس فرمان دهد تا تکرار بعدی حلقه انجام شود.
وقتی از حلقه ها در متلب (البته مشخصاً حلقه for یا while) استفاده میکنید، بین آکولادهای باز و بسته، کدی وجود دارد. این کد یک «انترلوپ (Interloop )» نامیده میشود. وقتی شما از دستور continue استفاده میکنید، این دستور هر کدی را که بین دو آکولاد باشد را رد میکند و مستقیما به مرحله بعدی حلقه برود.
مثال:
num = 10;
%while loop execution
while num < 20
if num == 15
% skip the iteration
num = num + 1;
continue;
end
fprintf(‘value of num: %d\n’, num);
num = num + 1;
end
خروجی مثال فوق به صورت زیر است:
value of num: 10
value of num: 11
value of num: 12
value of num: 13
value of num: 14
value of num: 16
value of num: 17
value of num: 18
value of num: 19
سخن پایانی
اگر میخواهید دادهشناس شوید، بهترین راه، یادگیری MATLAB است. MATLAB یک ابزار قدرتمند برای برنامهنویسی و محاسبات ماتریسی است که توسط میلیونها مهندس و دانشمند برای کار با دادهها، ساختن الگوریتمها و مدلها استفاده میشود. دادهشناسان با متلب و حلقه ها در متلب میتوانند مسائل سخت را حل کنند و دادههای خود را بهتر بفهمند.
آموزش متلب در مکتب خونه
متلب یکی از زبانهای برنامهنویسی مورد نیاز صنعت است و روزبهروز محبوبتر میشود. مکتب خونه مهارت شما دادهشناسی Caltech Simplilearn شما را در MATLAB و زبانهای برنامهنویسی دیگر مثل پایتون و R بالا میبرد. همچنین یاد میگیرید که چگونه با استفاده از روشهای دادهشناسی مسائل عملی را حل کنید. دورههای مختلف آموزش متلب در مکتب خونه، پکیحهایی جامع و کاربردی هستند و با دیدن این دورهها و آموزش حلقه متلب برای ورود به بازار کار آماده میشوید.