آکادمی سیم پاور

گام هشتم: تصمیم گیری در متلب

گام هشتم: تصمیم گیری در متلب

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

در زیر شکل رایج ساختار یک  نوع تصمیم گیری  است که در بیشتر زبان های برنامه نویسی موجود می باشد :

381

matlab در زیر انواع عبارات تصمیم گیری را فراهم کرده است.برای بررسی جزئیات آن ها بر روی لینک های زیر کلیک کنید :

توصیف بیانیه
 if … end statement شامل یک عبارت بولی  به دنبال 1 یا شرح بیشتری است. if … end statement
if statement  می تواند به دنبال گزینه های else statement بیاید، که زمانی اجرا می شود که عبارت بولی نادرست است. if… else…end statement
if statement می تواند به دنباله  یک (یا بیشتر) گزینه elseif…وstatement else بیاید، که برای تست شرط های گوناگون بسیار سودمند است. if … elseif…elseif…else…end statement
شما می توانید از یک  if یا elseif  statement  درون  if  یا  else statement  دیگری استفاده شود. nested if statements
switch statement  به  متغیر  اجازه تست شدن برای تساوی برخلاف یک لیست از مقادیر را می دهد. switch statement
شما می توانید از یک switch statement درون switch statement های دیگر استفاده کنید. nested switch statements

if … end statement

if … end statement  شامل دستور if   و یک عبارت  boolean   و به دنبال یک یا چند عبارت است.محدوده آن به وسیله عبارت  end  مشخص شده است .

نحوه اجرا در متلب

یک syntax  از  دستور  if  در  matlab این است :

382

اگر ارزیابی عبارت درست بود ،سپس بلوک کد درون عیارت  if  اجرا خواهد شد . اگر عبارت ارزیابی نادرست بود ،در آن صورت اولین مجموعه کد پس از عبارت  end  اجرا خواهد شد.

فلوچارت

383

مثال

فایل اسکریپت زیر را ایجاد نمایید و کد زیر را تایپ نمایید:

a=10;

%   check  the condition using  if statement

      if a  <  20

         %  if condition is true then  print the following

         fprintf (‘ a is less than 20 \ n ‘);

     end

fprintf (‘value of a is : % d \n ‘ , a);

هنگامی که شما فایل را ایجاد می کنید ،نتایج زیر را ارائه می دهد :

384

if … else … end statement

عبارت  if  می تواند به وسیله گزینه else statement  ادامه یابد ،که هنگامی که عبارت نادرست است اجرا می شود .

نحوه اجرا در متلب

نحوه اجرا در متلبی از if … else statement  در مطلب است :

385

اگر عبارت ارزیابی درست بود ، در آن صورت بلاک کد if  اجرا خواهد شد ،در غیر اینصورت کد بلاک else  اجرا خواهد شد.

فلوچارت

386

مثال

یک فایل اسکریپت ایجاد نمایید و کد زیر را وارد کنید :

a=10;

%   check  the condition using  if statement

      if a  <  20

         %  if condition is true then  print the following

         fprintf (‘ a is less than 20 \ n ‘);

     else

          %  if condition is  false  then  print the following

         fprintf (‘ a is not less than 20 \ n ‘);

     end

fprintf (‘value of a is : % d \n ‘ , a);

زمانی که کد بالا را  کامپایل و اجرا می کنید ،نتیجه زیر تولید می شود :

387

عبارت  if … elseif…elseif…else…end

عبارت if  می تواند به وسیله یک یا چند else if …  و یک  else  ادامه یابد،که برای آزمایش شرط های مختلف سودمند است .

زمان استفاده از عبارت  if … elseif… else، چند نکته را در نظر داشته باشیم :

  • اگر می توان صفر یا یک else  داشت، آن باید پس از elseif  بیاید .
  • اگر می توان صفر یا یک elseif  داشت، آن باید قبل از هر  else  بیاید .
  • در یک else موفق ،هیچ یک از  else  و elseif  های باقیمانده اجرا نخواهد شد.

نحوه اجرا در متلب

394

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن وارد نمایید:

a=100;

  % check the boolaen condition

      if a ==10

                  % if condition is true then print the following

            fprintf(‘ value of a is 10’);

        elseif(  a == 20 )

                 %if  else if condition  is true

                fprintf(‘value of a is 20\n’);

         elseif (a == 30)

                   %if else if condition  is true

                  fprintf(‘value of is a 30\n);

          else

                     %if none of the conditions is true

                 fprintf(‘none of the values are matching \n’);

             fprintf(exact value of a is : %d\n’ , a);

         end

زمانی که کد بالا را کامپایل و اجرا می کنید ،نتیجه زیر تولید می گردد:

395

یک قانون در نرم اقزار  matlab   عبارت لانه if- else است ،به این معنی که شما می توانید از یک عبارت if یا  elseif  درون عبارت if  یا  elseif  دیگری استفاده نمایید.

نحوه اجرا در متلب

دستور if  تو در تو در زیر آمده است :

389

شما می توانید مشابه if  تو در تو  elseif … else تو در تو نیز داشته باشید.

مثال:

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن وارد نمایید:

a = 100;

b = 200:

  % check the boolean condition

 if( a == 100 )

    % if condition is tfue then check the following

  if ( b == 200 )

      % if condition is true then pfint the following

     fpfintf(‘value of a is 100 and b is 200\n‘ );

  end

 end

 fpfintf(‘exact value of a is : %d\n‘, a )

 fpfintf(‘exact value of b is : %d\n‘, b );

 

زمانیکه فایل را اجرا می کنید،این نمایش داده می شود:

390

دستور سوییچ در متلب

دستور سوییچ  شرطی است که  یک مجموعه با  چندین انتخاب را  اجرا می کند. هر انتخاب به وسیله یک دستور case  پوشش داده می شود .دستور سوییچ  رشته یا عدد را ارزیابی می کند.عبارت  case  رشته ، عدد و یا خانه های آرایه ای از رشته یا اعداد را ارزیابی می کند.بلوک سوییچ case  ها را تا زمانی که یکی از آن ها درست باشد آزمایش می کند .case  زمانی درست است که :

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

هنگامی که case  درست است ،matlab   عبارت مربوط به آن را اجرا می کند و از بلوک سوییچ خارج می شود.در غیراینصورت اگر  case  درست نباشد ، بلوک دیگری به صورت اختیاری اجرا می شود.

نحوه اجرا در متلب

نحوه اجرا در متلبعبارت سوییچ در matlab اینگونه است:

391

مثال

یک فایل اسکریپت ایجاد نمایید و کد زیر را در آن تایپ کنید:

grade = ‘b’;

  switch(grade)

  case ‘a‘

    fprintf(‘excellent!\n‘ );

  case ‘b‘

    fprintf(‘well done\n‘ );

  case ‘c‘

    fprintf(‘well done\n‘ );

  case ‘d‘

    fprintf(‘you passed\n‘ );

  case ‘f‘

    fprintf(‘better try again\n‘ );

  otherwise

    fprintf(‘invalid grade\n‘ );

 end

هنگامی که فایل را اجرا میکنید ،نتیجه زیرنمایش داده می شود :

392

عبارت های switch تو در تو

ممکن است یک سوییچ را به عنوان بخشی از یک عبارت متوالی سوییچ بیرونی داشته باشید .حتی اگر ثابت های  case سوییچ داخلی و بیرونی  ارش های مشترک داشته باشند،هیچ مشکلی بوجود نمی آید.

نحوه اجرا در متلب

روشی برای عبارت سوییچ تو در تو در زیر آمده است :

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن وارد نمایید:

a = 100;

b= 200;

switch(a)

     case 100

         fprintf(‘this is part of outer switch %d\n‘, a );

        switch(b)

          case 200

            fprintf(‘this is part of inner switch %d\n‘, a );

        end

 end

 fprintf(‘exact value of a is : %d\n‘, a );

 fprintf(‘exact value of b is : %d\n‘, b );

هنگامی که فایل را اجرا می کنید ،این را نمایش می دهد:

393

خرید کتاب 28 گام موثر در فتح متلب

مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

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

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