You are on page 1of 47

‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫کارگاه آموزشی‬

‫آشىایی با ورم افسار ‪MATLAB‬‬


‫ي‬
‫کاربرد آن در بُیىٍ سازی سبذ سُام‬

‫مقذمٍ‪ :‬آشىایی با ‪MATLAB‬‬

‫‪1‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫آشنایی با محیط ‪MATLAB‬‬

‫ماتریسها‬
‫و‬
‫آرایه ها‬

‫‪2‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫ماتریسها‬
‫• همه چیس ماتریس است!‬

‫• روشهای تعریف ماتریس‬


‫– ٍسٍد تک تک دادُ ّا‬
‫– باس گزاسی هاتشیس اص فایل‬
‫– تَلیذ هاتشیس تَسط تَابع داخلی‬
‫– تَلیذ هاتشیس تَسط بشًاهِ ًَیسی‬

‫ماتریسُا‬

‫• ٍسٍد تَسط لیست دادُ ّا‬


‫– دادُ ّای اص سغش سا تا کاها یا فاصلِ جذا کٌیذ‬
‫– دس پایاى ّش سغش اص کاها ًمغِ استفادُ کٌیذ‬
‫– کل دادُ ّا سا دسٍى کشٍضِ لشاس دّیذ‬
‫– ]‪A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1‬‬

‫‪3‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫‪ sum, transpose, diag‬و …‬


‫‪ :SUM‬جوع ستًَی هاتشیس‬ ‫•‬
‫” „ “ ‪ TRANSPOSE‬یا تشاًْادُ ‪:‬‬ ‫•‬
‫‪ : DIAG‬همادیش لغش اصلی‬ ‫•‬
‫‪ : FLIPLR‬تشگشداى چپ تِ ساست‬ ‫•‬
‫‪ :FLIPPRL‬؟؟؟‬ ‫•‬

‫تمریه‬
‫‪: A‬سا ٍاسد کٌیذ‬ ‫•‬
‫هحاسثِ‪SUM‬‬
‫تشاًْادُ‪A‬‬ ‫•‬
‫جوع سغشّا‬ ‫•‬
‫جوع لغش اصلی‬ ‫•‬
‫جوع لغش فشعی‬ ‫•‬

‫‪4‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫زیر نویسها‬
‫• عٌصش سغش ‪ٍ i‬ستَى ‪ j‬تا )‪ً A(i,j‬طاى دادُ هی ضَد‬
‫• )‪ّ A(8‬واى )‪ A(4,2‬است یعٌی ‪15‬‬

‫??? )‪• t = A(4,5‬‬


‫??? ‪• X = A; X(4,5) = 17‬‬

‫عملگر‬
‫•‬ ‫‪1:10‬‬
‫•‬ ‫‪100:-7:50‬‬
‫•‬ ‫‪0:pi/4:pi‬‬
‫•‬ ‫)‪A(1:k,j‬‬
‫•‬ ‫))‪sum(A(1:4,4‬‬
‫•‬ ‫))‪sum(A(:,end‬‬
‫•‬ ‫‪sum(1:16)/4‬‬
‫•‬ ‫)]‪A = B(:,[1 3 2 4‬‬

‫‪5‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫اصطالحات‬
‫• هتغیشّا‬
‫• اعذاد‬
‫– ًوایص علوی‪: e‬‬
‫– اعذاد هََّهی)‪: I (3+4i‬‬
‫• عولگشّا‬
‫‪+‬جوع‬ ‫–‬
‫‪-‬تفشیك‬ ‫–‬
‫*ضشب‬ ‫–‬
‫‪/‬تمسین‬ ‫–‬

‫اصطالحات‬
‫• عولگشّا‬
‫\تمسین چپ‬ ‫–‬
‫^تَاى‬ ‫–‬
‫'تشاًْادُ‬ ‫–‬
‫) (تشتیة عولیات‬ ‫–‬
‫• تَابع‬
‫– ‪help elfun‬‬
‫– ‪rho = (1+sqrt(5))/2‬‬
‫– )‪a = abs(3+4i‬‬

‫‪6‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫کار با ماتریسها‬
‫• تَلیذ هاتشیسْا‬
‫‪ّ: Zeros‬وِ صفش‬ ‫–‬
‫‪ّ: Ones‬وِ یک‬ ‫–‬
‫‪: Rand‬هتغیش تصادفی یکٌَاخت‬ ‫–‬
‫‪: Random‬هتغیش تصادفی ًشهال‬ ‫–‬
‫• هثالْا‪:‬‬
‫)‪zeros(2,4‬‬ ‫–‬
‫)‪5*ones(3,3‬‬ ‫–‬
‫))‪fix(10*rand(1,10‬‬ ‫–‬
‫)‪randn(4,4‬‬ ‫–‬

‫کار با ماتریسها‬
‫• باسگزاسی هاتشیس‬
‫– ‪load magik.dat‬‬
‫• رخیشُ ساصی‬
‫• اتصال هاتشیسْا‬
‫– ]‪B = [A , A+32; A+48 , A+16‬‬
‫• حزف سطش ٍ ستَى‬
‫‪X=A‬‬ ‫–‬
‫][ = )‪X(:,2‬‬ ‫–‬
‫][ = )‪X(1,2‬‬ ‫–‬
‫][ = )‪X(2‬‬ ‫–‬
‫][ = )‪X(2:2:10‬‬ ‫–‬

‫‪7‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫مطالبی بیشتر در مورد ماتریسها‬


‫• جبش خطی‬
‫‘‪– A + A‬‬
‫‪– A'*A‬‬
‫)‪– d = det(A‬‬
‫)‪– X = inv(A‬‬
‫‪– v = ones(4,1); A*v‬‬
‫‪– P = A/34; P^5‬‬

‫مطالبی بیشتر در مورد ماتریسها‬


‫• آسایِ ّا‬
‫‪+‬جوع‬ ‫–‬
‫‪-‬تفشیك‬ ‫–‬
‫*‪.‬ضشب عٌصش تِ عٌصش‬ ‫–‬
‫‪./‬تمسین عٌصش تِ عٌصش‬ ‫–‬
‫\‪.‬تمسین چپ عٌصش تِ عٌصش‬ ‫–‬
‫^‪.‬تَاى عٌصش تِ عٌصش‬ ‫–‬
‫'تشاًْادُ‬ ‫–‬

‫‪8‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫چند مثال‬
• A.*A
• n = (0:9)‘
• pows = [n , n.^2 , 2.^n]
• help data fun
• help stats

‫• عولیات اسکالش ٍ هاتشیس‬


B = A - 8.5 –
B(1:2,2:3) = 0 –

‫• صیشًَیسْای هٌطقی‬
x = [2.1 1.7 1.6 1.5 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8]; –
x = x(abs(x-mean(x)) <= 3*std(x)) –

find‫• تابع‬
k = find(isprime(A))‘ –
A(k) –

9
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫کنترل نمایش اطالعات‬


‫‪format‬‬ ‫•‬
‫]‪x = [4/3 1.2345e-6‬‬ ‫–‬
‫‪format short‬‬ ‫–‬
‫‪format short e‬‬ ‫–‬
‫‪format long‬‬ ‫–‬

‫عذم ًوایش هقذاس‬ ‫•‬


‫– خاتوِ تا کاها ًمغِ‬

‫عباسات طَالًی‬ ‫•‬


‫– سِ ًمغِ ٍ سشخظ‬

‫ٍیشایش دستَسات قبل‬ ‫•‬


‫– کلیذ تاال‬

‫‪Graphs‬‬

‫‪10‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• تٌَیسیذ‪:‬‬
‫;‪– x = -10:.005:40‬‬
‫‪– y = [1.5*cos(x)+4*exp(-‬‬
‫‪.01*x).*cos(x)+exp(.07*x).*s‬‬
‫;])‪in(3*x‬‬
‫)‪– plot(x,y‬‬

‫• اتضاس ‪Figure‬‬

‫جعبٍ ابسارَا‬
‫• جعثِ اتضاسّای سسن ًوَداس‪:‬‬
‫– هطخص کشدى ٍ هشتة کشدى ًوَداسّا‪ ،‬دستشسی تِ هحیظ کاس‪ ،‬صیشًَیسی‬
‫– ‪Figure Palette‬‬
‫– اًتخاب‪ ،‬کٌتشل ًوایص‪ ،‬افضٍدى دادُ ‪Plot Browser‬‬
‫– تغییش هطخصات پایِ ‪Property Editor figure palette‬‬
‫– ‪Plot browser‬‬
‫– ‪Property editor‬‬

‫‪11‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫مثال‬
:‫• تٌَیسیذ‬
– t = 0:pi/20:2*pi;
– y = exp(sin(t));
– Plotyy (t,y,t,y,'plot','stem')
– Xlabel('X Axis')
– Ylabel('Plot Y Axis')
– title('Two Y Axes')
…‫• تغییش هطخصات‬

‫ومایش چىذ محًر مختصات‬

12
MATLAB ‫آشٌایی با ًشم افضاس‬

Plot Selector ‫رسم نمودار با استفاده از‬

Plot Selector ‫• اًتخاب دادُ ّا ٍ کلیک تش سٍی‬


‫• استفادُ اص اًَاع سسن تا فلص پاییي‬
‫• هطاّذُ کذ هَسد ًیاص‬

Plot Catalog
• Plot Selector menu -> Catalog link
• right-click a variable -> Plot Catalog
• select the values -> right-click the
selection ->Plot Catalog
• Figure Palette -> right-click a selected
variable ->Plot Catalog

13
MATLAB ‫آشٌایی با ًشم افضاس‬

‫ویرایش نمودارها‬

:‫• اهتحاى کٌیذ‬


– Click: Select
– Shift + Click: multiple select
– Right Click: Context menu
– Double Click: Properties
– More Properties …

‫آماده سازی برای ارایه‬

‫• توضیحات نمودار‬
Zoom tool –
Pan tool –
Data Cursor tool (Alt+click) –
Annotations –
text annotations –
axis labels –
title –

14
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫چاپ نمودار‬
‫‪• File > Print Preview‬‬

‫خروجی متنوع‬
‫• تعییي اًذاصُ ًوَداس‬

‫– ‪Export Setup‬‬

‫• اًذاصُ فًَت‬

‫• اًتخاب ًَع خشٍجی‬

‫‪15‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫استفاده از توابع نمودار‬


‫• ایجاد ًوَداس‬
– plot(x,y)
– xlabel('x = 0:2\pi')
– ylabel('Sine of x')
– title('Plot of the
Sine Function',
'FontSize',12)

‫کشیدن چند نمودار در یک نمودار‬


x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)
legend('sin(x)','sin(x-25)','sin(x-
.5)')
plot(x,y,'ks')
plot(x,y,'r:+')
hold on
hold off

16
MATLAB ‫آشٌایی با ًشم افضاس‬

Figure Windows
‫• تشای اًتخاب یک ضکل تشای ًوایص سٍی آى کلیک کٌیذ یا‬
figure(n) –
:‫• تشای ضکل جذیذ‬
figure –

‫نمایش چند نمودار در یک شکل‬

• subplot(m,n,p)
‫ ام‬p ‫ ضکل ٍ اًتخاب ضکل‬n * m ِ‫– تمسین یک ضکل ت‬
• t = 0:pi/10:2*pi;
• [X,Y,Z] = cylinder(4*cos(t));
• subplot(2,2,1); mesh(X)
• subplot(2,2,2); mesh(Y)
• subplot(2,2,3); mesh(Z)
• subplot(2,2,4); mesh(X,Y,Z)

17
MATLAB ‫آشٌایی با ًشم افضاس‬

‫کنترل نمودارها‬
• Setting Axis Limits
– axis([xmin xmax ymin ymax])
• Setting the Axis Aspect Ratio
– axis square
– axis equal
• Setting Axis Visibility
– axis on; axis off
• Setting Grid Lines
– grid on; grid off
• Adding Axis Labels and Titles
– text(1,-1/3,'{\itNote the odd symmetry.}')

‫رخیرٌ سازی‬
• Saving Figures
– Save from the File menu
– Save As
– Generate code from the figure File menu

18
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫ایجاد نمودارهای توری و سطحی‬

‫• دسباسی ًوَداسّای تَسی ٍ سطحی‬


‫– یک سغح تا هختصات عوَدی تش سٍی یک تَس دس صفحِ افمی ایجاد‬
‫هیطَد‬
‫• ًحَُ سسن‬
‫– تَلیذ هاتشیسْای ‪ Y ٍ X‬تِ صَست ‪ 2‬تعذی تشای هحاسثِ ‪Z‬‬
‫– هحاسثِ ‪Z‬‬
‫– ‪ meshgrid‬تا استفادُ اص ‪ 1‬یا ‪ 2‬آسایِ هاتشیسْای هَسد ًیاص سا تَلیذ هیکٌذ‪.‬‬
‫– سغشّای ‪X‬تکشاس آسایِ ‪ ٍ x‬ستًَْای ‪ Y‬تکشاس ‪ y‬اًذ‪.‬‬

‫مثال‬
‫•‬ ‫;)‪[X,Y] = meshgrid(-8:.5:8‬‬
‫•‬ ‫;‪R = sqrt(X.^2 + Y.^2) + eps‬‬
‫•‬ ‫;‪Z = sin(R)./R‬‬
‫•‬ ‫‘‪mesh(X,Y,Z,'EdgeColor‬‬
‫)'‪,'black‬‬

‫‪19‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫مثال‬
• surf(X,Y,Z)
• colormap hsv
• Colorbar

• Transparent:
– alpha(.4)

‫نورپردازی سطح‬
• surf(X,Y,Z,'FaceColor','red','EdgeColor','none')
• camlight left; lighting phong

20
MATLAB ‫آشٌایی با ًشم افضاس‬

‫بازی با سطح‬

Handle Graphics Objects


Handle ‫• استفادُ اص‬
– x = 1:10;
– y = x.^3;
– h = plot(x,y);
– set(h,'Color','red')
– get(h,'LineWidth')

21
MATLAB ‫آشٌایی با ًشم افضاس‬

‫تشًاهِ ًَیسی‬

)IF( ‫کٌتشل ضشعی‬


ِ‫• تعییي اجشای تخطی اص تشًاه‬
a = randi(100, 1); a = randi(100, 1);
if rem(a, 2) == 0 if a < 30
disp('a is even') disp('small')
elseif a < 80
b = a/2; disp('medium')
end else
disp('large')
end

22
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫کٌتشل ضشعی (‪)Switch‬‬

‫ٍسٍد اعالعات‬

‫‪23‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫همایسِ هاتشیسْا‬
‫•‬ ‫;‪A = magic(4); B = A; B(1,1) = 0‬‬
‫•‬ ‫‪A == B‬‬
‫•‬ ‫][=)‪B(1,:‬‬
‫•‬ ‫)!‪A==B (if A==B :error‬‬
‫•‬ ‫)‪isequal(A, B‬‬

‫کٌتشل تَسظ حلمِ ّا (‪)for‬‬


‫• تشای اًجام یک هجوَعِ دستَس تشای تعذاد تاس هعیي‬

‫‪24‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫کٌتشل تَسظ حلمِ ّا «‪»While‬‬


‫• تکشاس اًجام یک عولیات تا ٍلَع یک ضشط‬

‫دستَسات هشتثظ‬

‫‪Continue‬‬
‫عذم اجشای دًثالِ حلمِ ٍ ضشٍع‬
‫حلمِ جذیذ‬
‫‪Break‬‬
‫خاتوِ حلمِ‬
‫‪Try – Catch‬‬
‫عذم تَلف تشًاهِ دس صَست خغا‬

‫‪25‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫سایش ساختاسّای دادُ‬

‫آسایِ ّای چٌذ تعذی‬

‫;)‪• p = perms(1:4‬‬
‫آسایِ ّایی تا تیص اص ‪ 2‬تعذ‬ ‫;)‪• A = magic(4‬‬
‫تَلیذ تَسظ تَاتع‬ ‫=‪• M‬‬
‫;)‪zeros(4,4,24‬‬
‫;)‪R = randn(3,4,5‬‬ ‫‪• for k = 1:24‬‬
‫= )‪• M(:,:,k‬‬
‫;))‪A(:,p(k,:‬‬
‫‪• end‬‬

‫‪26‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫ًوًَِ‬

‫آسایِ ّای سلَلی‬


‫تطکیل ضذُ اص سلَلْای دادُ کِ ّش سلَل هیتَاًذ آسایِ ای تا اتعاد‬
‫هتفاٍت تاضذ‬
‫}))‪• C = {A sum(A) prod(prod(A‬‬
‫هثال‬
‫;)‪– M = cell(8,1‬‬
‫‪– for n = 1:8‬‬
‫;)‪– M{n} = magic(n‬‬
‫‪– end‬‬
‫‪–M‬‬

‫‪27‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫سضتِ ّا ٍ کاساکتشّا‬
• s = ‘Hello’
‫سضتِ ّا تصَست آسایِ رخیشُ هی ضًَذ‬
• s(2:4)
• T=[s, ‘ali’]
• T=[s;’ali’]
• T=[s;’hasan’]
• S = char('A','rolling','stone','gathers','momentum.')
• C = {'A';'rolling';'stone';'gathers';'momentum.'}
• C=cellstr(S)

‫ساختاسّا‬
‫• آسایِ ّای چٌذ تعذی تا ساختاس هطخص‬
– S.name = 'Ed Plum';
– S.score = 83;
– S.grade = 'B+‘
‫• ساختاسّا هی تَاًٌذ تِ صَست آسایِ تاضٌذ‬
– S(2).name = 'Toni Miller';
– S(2).score = 91;
– S(2).grade = 'A-';
– S(3) = struct('name','Jerry Garcia',…
'score',70,'grade','C')

28
MATLAB ‫آشٌایی با ًشم افضاس‬

‫کاس تا ساختاسّا‬
• S.scores
• Names=char(S.name)
• Names={S.name}
‫ًاهذّی پَیای ساختاسّا‬
• structName.(expression)
– Scores.reza.term(1:8)=rand(8);
– Name=reza
– S.(Name).term(4)

‫تَاتع ٍ ًَضتِ ّا‬

29
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫اًَاع فایل تشًاهِ‬


‫ًَضتِ ّا‪:‬‬
‫ٍسٍدی ًوی گیشًذ ٍ خشٍجی ًیض تشًوی گشداًٌذ‬
‫تٌْا تشسٍی دادُ ّای هحیظ کاس هی کٌٌذ‬
‫تَاتع‪:‬‬
‫ٍسٍدی هیگیشًذ ٍ خشٍجی تش هی گشداًٌذ‬
‫تا هتغیشّای هحلی کاس هیکٌٌذ‬

‫ًَضتِ ّا‬
‫• تْیِ فایل تا کذ صیش‪:‬‬
‫‪– % Investigate the rank of magic squares‬‬
‫;)‪– r = zeros(1,32‬‬
‫‪– for n = 3:32‬‬
‫;))‪– r(n) = rank(magic(n‬‬
‫‪– end‬‬
‫‪–r‬‬
‫)‪– bar(r‬‬

‫‪30‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫تَاتع‬
‫• آساًتشیي تَاتع‪ :‬تاتع ًاضٌاس‬
‫‪– f = @(arglist)expression‬‬
‫;‪– sqr = @(x) x.^2‬‬
‫• تَاتع‬
‫)‪– Function x=name(a1,a2,a3‬‬
‫‪– x=a1*a3‬‬
‫)‪– c=name(2,3,4‬‬

‫تَاتع تَ دس تَ‬
‫• هتغیشّا ٍ تَاتع دسٍى یک تاتع‪ ،‬تٌْا دس ّواى تاتع هعتثشًذ‬

‫‪31‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫هتغیشّای جْاًی‬
• function h = falling(t)
• global GRAVITY
• h = 1/2*GRAVITY*t.^2;
Then:
• global GRAVITY
• GRAVITY = 32;
• y = falling((0:.1:5)');

32
MATLAB ‫آشٌایی با ًشم افضاس‬

START

Display message “How


many hours did you
‫فلَ چاست چیست؟‬
work?”

Read Hours
‫• دیاگشاهی است کِ ًحَُ جشیاى‬
Display message “How
‫تشًاهِ سا ًطاى هیذّذ‬
much do you get paid
per hour?” ‫• ضکل هماتل ًحَُ جشیاى یک‬
ٍ ‫تشًاهِ سادُ تشای هحاسثِ حمَق‬
Read Pay Rate
.‫دستوضد سا ًطاى هیذّذ‬
Multiply Hours by
Pay Rate. Store result
in Gross Pay.

Display Gross Pay

END

‫تیضی‬
START

Display message
“How many hours did
‫ًطاًِ ّای پایِ فلَچاست‬
you work?”

Read Hours

‫• دس ایي فلَچاست سِ ضکل ٍجَد‬


Display message “How
much do you get paid ‫هتَاصی االضالع‬ ‫داسد‬
per hour?”
‫– تیضی‬
Read Pay Rate
‫– هتَاصی االضالع‬
‫– هستغیل‬
‫• ّش ضکل ًطاى دٌّذُ عولیات‬
Multiply Hours
by Pay Rate.
‫هستغیل‬ Store result in
Gross Pay.
.‫خاصی هی تاضذ‬
Display Gross
Pay
‫تیضی‬

END

33
MATLAB ‫آشٌایی با ًشم افضاس‬

‫ضشٍع‬
START

Display message
‫ًطاًِ ّای پایِ فلَچاست‬
“How many hours
did you work?”

Read Hours
‫• ضشٍع ٍ پایاى‬
Display message ‫– تَسظ تیضی ًطاى دادُ هی ضًَذ‬
“How much do you
get paid per
hour?”
‫– ًطاى دٌّذُ ضشٍع ٍخاتوِ تشًاهِ اًذ‬

Read Pay Rate

START
Multiply Hours by Pay
Rate. Store result in
Gross Pay.

END
Display Gross Pay

ِ‫پایاى تشًاه‬
END

START

Display message
‫ًطاًِ ّای پایِ فلَچاست‬
“How many
hours did you
work?”

‫• ورودی وخزوجی‬
Read Hours
‫– توسط متواسی االضالع وطان‬
Display message
“How much do
‫دادي می ضوود‬
‫عملیت ورود یا‬
you get paid per
hour?” ‫ومایص‬ ‫– وطاودهىدي عملیات ورود و ومایص‬
‫اطالعات می باضىد‬
Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in Display message
Gross Pay.
“How many
Read Hours
Display Gross hours did you
Pay
work?”
END

34
MATLAB ‫آشٌایی با ًشم افضاس‬

START
‫ًطاًِ ّای پایِ فلَچاست‬
Display message
“How many
hours did you
work?”
‫• پزداسش‬
Read Hours
‫– مستطیل‬
Display message ‫– وطاودهىدي پزداسش اطالعات ماوىد‬
“How much do
you get paid per
hour?”
‫یک عملیات ریاضی یا وسبت دادن‬
‫یک متغیز‬
Read Pay Rate

Multiply Hours Multiply Hours


‫پزداسش‬ by Pay Rate.
Store result in
by Pay Rate.
Gross Pay. Store result in
Gross Pay.
Display Gross
Pay

END

START

Display message
‫عملیات‬
‫هشاحل اجشای فلَچاست‬
‫خزوجی‬
“How many
hours did you
work?”

Read Hours
How many
hours did
Display message you work?
“How much do
you get paid per
hour?”

Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in ‫مقادیز متغیزها‬:
Gross Pay.
Hours: ?
Pay Rate: ?
Display Gross
Pay Gross Pay: ?

END

35
MATLAB ‫آشٌایی با ًشم افضاس‬

START

Display message
‫هشاحل اجشای فلَچاست‬
“How many
hours did you
work?”

‫اخذ ورودی‬ Read Hours


How many
(40 ‫)مثال‬ hours did
you work?
Display message 40
“How much do
you get paid per
hour?”

Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in
Gross Pay. ‫مقادیز متغیزها‬:
Hours: 40
Display Gross Pay Rate: ?
Pay
Gross Pay: ?
END

START

Display message
‫هشاحل اجشای فلَچاست‬
“How many
hours did you
work?”

Read Hours

How much
do you get
Display message paid per
‫ومایص مته‬ “How much do hour?
you get paid per
hour?”

Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in
Gross Pay.
‫مقادیز متغیزها‬:
Display Gross Hours: 40
Pay Pay Rate: ?
Gross Pay: ?
END

36
MATLAB ‫آشٌایی با ًشم افضاس‬

START

Display
message “How
‫هشاحل اجشای فلَچاست‬
many hours did
you work?”

Read Hours

How much
do you get
Display message paid per
“How much do hour? 20
you get paid per
hour?”

‫اخز ٍسٍدی‬
Read Pay Rate
)20 ‫(هثال‬

Multiply Hours
by Pay Rate.
Store result in
Gross Pay. ‫مقادیز متغیزها‬:
Hours: 40
Display Gross Pay Rate: 20
Pay
Gross Pay: ?
END

START

Display message
‫هشاحل اجشای فلَچاست‬
“How many hours
did you work?”

Read Hours How much


do you get
paid per
hour?
Display message
“How much do you
get paid per
hour?”

Read Pay Rate

Multiply Hours by Pay


:‫پشداصش حمَق‬ Rate. Store result in
Gross Pay.
20 ‫ دس‬40 ‫ضشب‬
‫مقادیز متغیزها‬:
ِ‫اًتساب ت‬ Display Gross Pay Hours: 40
GrossPay Pay Rate: 20
Gross Pay: 800
END

37
MATLAB ‫آشٌایی با ًشم افضاس‬

START

Display message
“How many hours
‫هشاحل اجشای فلَچاست‬
did you work?”

Read Hours

Display message Your gross


“How much do you pay is 800
get paid per hour?”

Read Pay Rate

Multiply Hours by
Pay Rate. Store
result in Gross
Pay. ‫مقادیز متغیزها‬:
Hours: 40
‫ًوایص‬ Display Gross Pay
Pay Rate: 20
Gross Pay: 800
‫خشٍجی‬
END

ِ‫دًثال‬ •
‫تصوین‬ •
‫تکشاس‬ •
‫حاالت‬ •

38
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• هجوَعِ ای اص عولیات است کِ تِ دًثال ّن اًجام هی ضًَذ‬


‫• هاًٌذ هثال پشداخت حمَق‬

‫• تش اساس ضشایظ یکی اصدٍ تصوین اًجام هیطًَذ‬

‫‪39‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• ّواًٌذ ساختاس ‪ IF‬عول هی کٌذ ٍ خشٍجی آى تش اساس تلِ یا خیش تعییي هی‬
‫گشدد‬

‫‪NO‬‬ ‫‪YES‬‬

‫• دس فلَچاست صیش سَال ‪ x<y‬پشسیذُ هی ضَد‪ .‬اگش جَاب تلِ تَد پشداصش ‪B‬‬
‫اًجام هیطَد ٍاگش ًِ پشداصش ‪A‬‬

‫‪NO‬‬ ‫‪YES‬‬
‫?‪x < y‬‬

‫‪Process A‬‬ ‫‪Process B‬‬

‫‪40‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫• فلَچاست صیش تشا تش تا کذ تشًاهِ ًَیسی هتٌاظش است‬

Flowchart

MATLAB Code

NO YES
if (x < y)
x < y?
a = x * 2;
else
Calculate a as Calculate a as
x plus y. x times 2. a = x + y;
end

Flowchart
MATLAB Code

NO YES
if (x < y)
x < y?
a = x * 2;

Calculate a as
x times 2.

41
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• لسوتی اص تشًاهِ کِ تِ دفعات تکشاس هی ضًَذ‪ .‬هاًٌذ حلمِ ّای ‪whileٍfor‬‬

‫• تا تَجِ تِ ساختاس تکشاس ّوَاسُ یک ضشط تشسسی هی ضَد ٍ تا صهاًی کِ تشلشاس‬


‫است تکشاس هی ضَد‪ .‬پس دس یک حلمِ ّوَاسُ یک تصوین ٍجَد داسد‪.‬‬
‫• آیا ّوَاسُ پشداصش ّن ٍجَد داسد؟‬

‫‪42‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• دس حلمِ صیش تا صهاًی کِ ضشط تشلشاس است‪ ،‬پشداصش ‪ A‬اًجام هی ضَد‬

‫‪YES‬‬
‫?‪x < y‬‬ ‫‪Process A‬‬

‫• کذ تشًاهِ ًَیسی صیش هعادل حلمِ فلَچاست است‬

‫‪Flowchart‬‬ ‫‪MATLAB Code‬‬

‫)‪while (x < y‬‬


‫;‪x=x+1‬‬
‫‪YES‬‬
‫?‪x < y‬‬ ‫‪Add 1 to x‬‬ ‫‪end‬‬

‫‪43‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• عولیات حلمِ تایذ تَسظ پشداصش خاتوِ یاتذ‬


‫• تِ عٌَاى هثال دس حلمِ صیش عولیات ّیچگاُ خاتوِ ًوی یاتذ!‬
‫• چگًَِ هی تَاى تِ حلمِ خاتوِ داد؟‬

‫‪YES‬‬
‫?‪x < y‬‬ ‫‪Display x‬‬

‫‪YES‬‬
‫?‪x < y‬‬ ‫‪Display x‬‬ ‫‪Add 1 to x‬‬

‫‪44‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• اًجام عولیات هختلف تش اساس حاالت هختلف‬

‫• هثال‪ :‬پاداش تش اساس سالْای کاس‬

‫‪CASE‬‬
‫‪years_ employed‬‬

‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪Other‬‬

‫‪bonus = 100‬‬ ‫‪bonus = 200‬‬ ‫‪bonus = 400‬‬ ‫‪bonus = 800‬‬

‫‪45‬‬
‫آشٌایی با ًشم افضاس ‪MATLAB‬‬

‫• دس حاالتی کِ کل فلَچاست دس یک صفحِ جا ًوی ضَد اص ًواد صیش‬


‫استفادُ هی ضَد‬

‫‪A‬‬

‫•اتصال ‪ً A‬طاى هیذّذ کِ لسوت دٍم اص ًمغِ‬


‫پایاى لسوت اٍل ضشٍع هیطَد‬ ‫‪A‬‬
‫‪START‬‬

‫‪END‬‬

‫‪A‬‬

‫‪46‬‬
MATLAB ‫آشٌایی با ًشم افضاس‬

‫• تَاتع تا ًواد صیش ًطاى دادُ هی ضًَذ‬

ُ‫• دٍ ساختاس تصوین تشکیة ضذ‬


NO YES
x > min?

Display “x is outside NO YES


the limits.”
x < max?

Display “x is outside the Display “x is


limits.” within limits.”

47

You might also like