حلقه 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

انجام پروژه با فلوئنت

انجام پروژه برنامه نویسی با نرم افزار متلب پذیرفته می شود.

 

دیدگاه خود را بنویسید

دیدگاه پس از تائید مدیریت منتشر می شود.