آموزش برنامه نویسی در نرم افزار متلب
آموزش برنامه نویسی در نرم افزار متلب
آموزش برنامه نویسی در نرم افزار متلب : در پست های قبلی مطالب زیادی از آموزش متلب قرار داده شده است. برخی از مباحث پیش نیاز این مبحث است و پیشنهاد می شود که قبل از مطالعه این قسمت مطالعه شود. لینک های مربوط به اموزش های درس های قبلی متلب در آخر همین پست قرار داده شده است.
یکی از مهمترین قسمت های نرم افزار متلب، برنامه نویسی (کنترل جریان برنامه) است. در این پست کنترل جریان برنامه و آموزش برنامه نویسی در نرم افزار متلب به طور مختصر و ساده توضیح داده شده است.
شرط if,elseif,else
ساختار کلی دستور if در نرم افزار متلب به صورت زیر است
if expression
statements
elseif expression
statements
else
statements
end
در قسمت expression شرط مورد نظر نوشته می شود و در قمست statements عبارتی که برای آن شرط است قرار داده می شود. برای مثال می خواهیم اگر عدد a بزرگتر از 5 باشد عبارت “a is bigger than 5” چاپ شود.
a=7
if a>5
disp(‘a is bigger than 5’)
end
اگر بخواهیم چند شرط داشته باشیم باید چند expression و statements داشته باشیم.
یک مثال ساده از دستور فوق میزنیم
فرض کنید که شما نمره ای را وارد میکنید. برنامه ی نوشته شده بررسی میکند
- اگر نمره ی شما عددی بالای ده بود چاپ میکند که “شما قبول شده اید”
- واگر نمره ی شما زیر ده بود میگوید که “شما مردود شده اید”
- اگر نمره ی شما کمتر از صفر و بالای 20 بود پیام خطا می دهد.
کد به صورت زیر است.
a=input(‘your mark=’)
if a>=10 & a<=20
disp(‘you pass the exam’)
elseif a<10 & a>=0
disp(‘you fail the exam’)
else
disp(‘Error’)
end
با اجرای برنامه در m file متلب برنامه از شما میخواهد نمره را وارد کنید. بعد از آن بررسی می کند و عبارت مناسب را چاپ می کند.
حلقه for در نرم افزار MATLAB
از سری مباحث آموزش برنامه نویسی در نرم افزار متلب در این قسمت در مورد حلقه ی for صحبت می شود. حلقه ی for زمانی استفاده می شود که هدف تکرار پروسه ای است که تعداد تکرار آن مشخص باشد. برای مثال شما میخواهید عدد یک تا 10 را زیر هم چاپ کنید. یا میخواهید عدد 1 تا 1000 را با هم جمع کنید.تاکید میکنم زمانی که تعداد تکرار مشخص باشد.
for index = values
program statements
:
end
ساختار حلقه بسیار ساده است بدین صورت که شمارنده مساوی با یک بردار است که این بردار میتواند هر مقدار خاصی باشد. باری مثال
for i=1:10
این حلقه ده بار تکرار می شود. و شمارنده ی آن i از 1 تا 10 تغییر میکند.
یا مثال زیر
for k=[3 1 5 4]
حلقه چهار بار تکرار می شود، تعداد تکرار حلقه برابر با تعداد ارایه ی شمارنده است و شمارنده در هر حلقه یکی از اعداد بردار را استفاده می کند.
index = values مربوط به شمارنده است. که تعداد حلقه را مشخص می کند. در عبارت program statements شما روندی که قرار است تکرار شود را می نویسید و در پایان با نوشتن end حلقه پایان می یابد بدین صورت که به تعداد ارایه های شمارنده حلقه تکرار و پس از آن تمام می شود.
چند مثال از حلقه ی for در زیر نشان داده شده است.
مثال 1: یک بردار دلخواه وارد کنید از با استفاده از حلقه ی for اعضای آن را با یکدیگر جمع کنید و حاصل مجموع تمام آرایه ها را بنویسید.
clear;
clc;
sum=0;
for x=[5 6 7 6]
sum=sum+x
end
روند کد فوق به صورت زیر است که در ابتدا یک متغیر خالی به نام sum تعریف شده است سپس بردار دلخواهی که در مثال فوق یک بردار چهار مولفه ای است قرار داده شده است. یعنی حلقه چهار بار تکرار می شود، چون تعداد اعضای بردار چهار است. و در خط بعد sum=sum+x هر بار یکی از آرایه های بردار را با مقادیر قبلی جمع میکند تا حلقه پایان یابد تمام اعضای ارایه جمع شده اند.
حلقه for در نرم افزار MATLAB
مثال 2: حاصل سری دو متغیره ی زیر را محاسبه کنید.
ساختار کد به صورت زیر است
clear;
clc;
su=0;
for x=1:100
for y=1:10
su=su+x^2*y+3*y;
end
end
su
در کد نوشته شده به دلیل وجود دو سری باید دو حلقه ی for تو در تو ایجاد شود. و یک متغیر خالی که حاصل جمع مقادیر مختلف را یکی یکی در خود جای دهد. بدین صورت که زمانی که x اولین مقدار خود را میگیرد وارد حلقه ی دوم می شود. y نیز اولین مقدار خودر را میگیرد و سپس در متغیر خالی su قرار میدهد. بعد از آن حلقه ی مربوط به y ده بار تکرار میشود و هر بار مقادیر درون متغیر su قرار میگیرد. پس از اتمام حلقه ی مربوط به y مجدد وارد حلقه ی دوم x میشود. و مجددا حلقه ی y ده بار تکرار میشود. و به همین ترتیب ادامه پیدا می کند تا کل مقادیر درون su قرار گیرند و سری حاصل شود. شکل زیر کد و خروجی را نشان می دهد.
البته لازم به ذکر است که در حالت کلی برای حل چنین مسائلی درنرم افزار متلب نیاز به استفاده از حلقه نیست اما برای اموزش حلقه ی for این مسئله را مطرح کردم تا با ساختمان حلقه ی for و نحوه ی کار با آن اشنا شوید.
مثال 3: برنامه ای بنویسید که هر مقداری به متلب دادید فاکتوریل آن را حساب کند.
clear;
clc;
n=input(‘n=’);
p=1;
for i=1:n
p=p*i;
disp(p)
end
حلقه while در نرم افزار MATLAB
از سری مباحث آموزش برنامه نویسی در نرم افزار متلب در این قسمت در مورد حلقه ی while صحبت میکنیم. از حلقه ی while زمانی استفاده می شود که میخواهیم عملیات تکراری خاصی را انجام دهیم اما تعداد حلقه مشخص نیست و در عوض شرط توقف داریم. تاکید میکنم تعداد حلقه مشخص نیست و در عوض شزط توقف داریم. تفاوت حلقه for با حلقه while در این است که زمانی از حلقه for استفاده میکنیم، تعداد تکرار مشخص است ولی در حلقه ی while تعداد توقف مشخص نیست و فقط شرط توفق وجود دارد.
ساختمان کلی حلقه ی while به صورت زیر است.
while expression
statements
end
برنامه ای بنویسید که اعداد …,1,2,3,4,5 را تاجایی با هم جمع کند که مجموع آنها کمتر از 1000 شود. و سپس بگوید که جمع اعداد از یک تا چه عددی جمع شود که مجموع آن بزرگترین عدد کمتر از هزار باشد.
clear;
clc;
sum=0;
i=0;
while sum<=1000
i=i+1;
sum=sum+i;
end
sumation=sum-i
n=i-1
به دلیل اینکه شرط را در اول حلقه مورد بررسی قرار داده است .در نهایت جمله ی آخر و حلقه ی آخر کم شده است.
عبارت شرطی Switch,Case
در ادامه آموزش برنامه نویسی در نرم افزار متلب به سراغ دستور switch case می رویم. این دستور در برنامه نویسی خیلی شبیه به ساختار if است. زمانی از دستور swith استفاده می شود، که میخواهید در چند حالت مختلف تصمیم های مختلفی گرفته شود. ساختمان آن به صورت زیر است.
switch switch_expression
case case_expression
statements
case case_expression
statements
…
otherwise
statements
end
مثال : برنامه ای بنویسید که دو عدد دلخواه بگیرد، اگر مورد 1 را وارد کردید آن دو را جمع کند، اگر مورد 2 را وارد کردید آنها را از هم کم کند، اگر مورد 3 را وارد کردید آنها را با هم جمع و اگر مورد 4 را وارد کردید، آنها را از هم کم کند.
clear
a=1;
b=2;
c=0;
x=input(‘x=’);
switch x
case 1
c=a+b;
case 2
c=a-b;
case 3
c=a*b;
case 4
c=a/b;
otherwise
disp(‘Error’);
end
disp([‘c=’,num2str(c)])
در نهایت برنامه نوشته ی شده ی فوق را پنج بار پشت سر هم اجرا و به ازای مقادیر مختلف x خروجی ها به صورت زیر است. در برنامه از کاربر میخواهد عددی وارد کند. اگر عدد 1 باشد دو عدد a و b را با هم جمع میکند، اگر عدد ورودی 2 باشد دو عدد را از هم کم میکندو به همین ترتیب
در این پست آموزش برنامه نویسی در نرم افزار متلب قرار داده شد. در پست های آتی مطالب پیشرفته تری از متلب و سیمولینک برای آموزش نشان داده خواهد شد.
آموزش های نرم افزار MATLAB در پست های پیشین
- آموزش ترسیم نمودارهای دو بعدی در نرم افزار MATLAB
- آموزش ترسیم نمودارهای سه بعدی و سطوح در نرم افزار MATLAB
- آموزش رسم انواع دیگر نمودارها در نرم افزار MATLAB
- آموزش سریع نرم افزار متلب در یک پست
- آموزش برنامه نویسی در نرم افزار متلب(همین پست)
- ذخیره کردن و فراخوانی فایل متنی در نرم افزار متلب
- Save و load کردن متغیرها در متلب
- آموزش بهینه سازی به کمک الگوریتم ژنتیک در نرم افزار Matlab
- آموزش حل معالات ODE وابسته در نرم افزار Matlab/Simulink
- آموزش تبدیل نمودارها به داده های عددی با استفاده از Engauge Digitizer
- آموزش الگوریتم بهینه سازی زنبور عسل Bee Algorithm
- آموزش برازش منحنی Curve fitting درنرم افزار MATLAB _ قسمت دوم تولباکس cftool
- آموزش برازش منحنی Curve fitting در نرم افزار MATLAB _ قسمت اول چند جمله ای ها
- آموزش حل گرهای حل معادلات ode در نرم افزار متلب و سیمولینک
مثل همیشه مطالبتون عااااالی بود