حلقه for در متلب
حلقه for در متلب
حلقه for در نرم افزار متلب ( matlab ) بیانگر تعداد تکرار دستورات به اندازه و گام حرکتی مشخص است ، ساختار کلی این حلقه در نرم افزار متلب بفرم زیر است
for (parameter name)=initial : increament : final
( دستور یا فرمولهای محاسباتی )
end
مثال :
فرض کنید میخواهیم مقدار سینوس را در بازه 0 تا 2pi با گام 0.1pi در نرم افزار متلب محاسبه کرده و در ماتریس سطری y ذخیره نمائیم و سپس نمودار مربوطه را ترسیم کنیم :
حل : یک m-file در نرم افزار مطلب باز کرده و برنامه زیر را در آن تایپ کنید :
clc;
clear all;
i=0;
for k=0:0.1*pi:2*pi
i=i+1
y(1,i)=sin(k);
x(1,i)=k
end
plot(x,y,'b','linewidth',2)
axis([0 2*pi -2 2])
grid on
box off
legend('sin(x)')
قبل از اینکه برنامه را در مطلب اجرا کنید نکاتی راجع به آن توضیح میدهیم
همانگونه که از ساختار حلقه for مشاهده می شود بعد از نوشتن این تابع در جلو این تابع با حداقل یک کاراکتر فاصله ( یا بیشتر ) نام متغیر دلخواه مانند k نوشته می شود این متغیر لازم نیست حتما در دستورات داخل حلقه بکار رود بلکه مفهوم آن به عنوان یک پارامتر برای اینکه چند بار دستورات داخل حلقه اجرا شوند که در برنامه فوق تعداد تکرار 21 بار می باشد .
حال ساختاربرنامه فوق طوری است که از همین متغیر k برای سرعت بخشیدن به محاسبات نیز توانستیم استفاده نمائیم ، در داخل حلقه ازیک عبارت i=i+1 که در خارج از حلقه i=0 قرار داده ایم استفاده کرده ایم که شاید یرایتان مبهم باشد ، اصطلاحا به اینگونه متغیرها ، شماره انداز گفته می شود .
نحوه عملکرد شماره انداز بدین صورت است که در حالت اول که i=0 فرض شده وارد حلقه می شویم و مقدار i بفرم i=i+1=0+1=1 تغیر می ابد ، پس در اولین اجرای حلقه i=1 شد ، در اجرای دوم حلقه مقدار جدید iدر رابطه قرار داده می شود و لذا i=i+1=1+1=2 و درنتیجه در اجرای دوم i=2 شد به همین ترتیب با هربار اجرای حلقه مقدار i به اندازه یک واحد ( میتوانید به دلخواه افزایش آنرا تغییر دهید ) افزایش پیدا می کند تفکر ایجاد شماره انداز شاید در ظاهر امری ساده و بیهوده به نظر برسد ولی در بسیاری از برنامه ها کاربرد آن را خواهید دید ، مثلا در برنامه فوق برای ایجاد شماره ستونهای ماتریس yو x مورد استفاده قرار گرفته است .
دستورات دیگر از حلقه for در نرم افزار مطلب ( matlab ) دستورات ترسیم دو بعدی می باشند که در قسمت مربوطه به طور مفصل شرح داده خواهد شد ، بعد از اجرای برنامه در نرم افزار متلب خروجی برنامه شما بصورت زیر خواهد بود :
شما می توانید چندین حلقه for را که نیاز داشتید بصورت تو در تو بکار ببرید ، البته نحوه اجرا بدین صورت خواهد بود که بعد از هر بار اجرای کامل حلقه داخلی حلقه خارجی فقط یکبار اجرا خواهد شد :
for i=1:5
for j=1:3
a(i,j)=2*j-i;
end
end
نحوه عملکرد برنامه فوق را شرح میدهیم :
خروجی برنامه فوق ماتریس a را بفرم زیر مشاهده خواهید کرد :
a =
1 3 5
0 2 4
-1 1 3
ساده ترین تصوری که میتوان از عملکرد حلقه های تو در تو بیان کرد همانند عملکرد عقربه های ثانیه شمار و دقیقه شمار و ساعت شمار است که میتوان آنرا مشابه سه حلقه تو در تو دانست که به ازاء هربار اجرای داخلی ترین حلقه ( ثانیه شمار) حلقه خارجی آن یک گام به جلو ( دقیقه شمار) و به ازای هریار اجرای کامل این حلقه ( دقیقه شمار) حلقه خارجی آن( ساعت شمار یک گام ) به جلوتر میرود :
مثال ااز سه حلقه تو در توی for در متلب:
F{1,1} = [1 2; 3 4];
F{1,2} = [-1 0; 0 1];
F{2,1} = [7 8; 4 1];
F{2,2} = [4i 3+2i; 1-8i 5];
for k = 1:4
for m = 1:2
for n = 1:2
NUM(m,n,k) = F{k}(m,n);
end
end
end
- ۹۶/۱۱/۳۰