MATLAB Learning (In Persian) PDF
MATLAB Learning (In Persian) PDF
کارگاه آموزشی
1
آشٌایی با ًشم افضاس MATLAB
ماتریسها
و
آرایه ها
2
آشٌایی با ًشم افضاس MATLAB
ماتریسها
• همه چیس ماتریس است!
ماتریسُا
3
آشٌایی با ًشم افضاس MATLAB
تمریه
: Aسا ٍاسد کٌیذ •
هحاسثِSUM
تشاًْادُA •
جوع سغشّا •
جوع لغش اصلی •
جوع لغش فشعی •
4
آشٌایی با ًشم افضاس MATLAB
زیر نویسها
• عٌصش سغش ٍ iستَى jتا )ً A(i,jطاى دادُ هی ضَد
• )ّ A(8واى ) A(4,2است یعٌی 15
عملگر
• 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
8
MATLAB آشٌایی با ًشم افضاس
چند مثال
• A.*A
• n = (0:9)‘
• pows = [n , n.^2 , 2.^n]
• help data fun
• help stats
• صیشًَیسْای هٌطقی
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
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 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 آشٌایی با ًشم افضاس
ویرایش نمودارها
• توضیحات نمودار
Zoom tool –
Pan tool –
Data Cursor tool (Alt+click) –
Annotations –
text annotations –
axis labels –
title –
14
آشٌایی با ًشم افضاس MATLAB
چاپ نمودار
• File > Print Preview
خروجی متنوع
• تعییي اًذاصُ ًوَداس
– Export Setup
• اًذاصُ فًَت
15
MATLAB آشٌایی با ًشم افضاس
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
مثال
• ;)[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 آشٌایی با ًشم افضاس
بازی با سطح
21
MATLAB آشٌایی با ًشم افضاس
تشًاهِ ًَیسی
22
آشٌایی با ًشم افضاس MATLAB
ٍسٍد اعالعات
23
آشٌایی با ًشم افضاس MATLAB
همایسِ هاتشیسْا
• ;A = magic(4); B = A; B(1,1) = 0
• A == B
• ][=)B(1,:
• )!A==B (if A==B :error
• )isequal(A, B
24
آشٌایی با ًشم افضاس MATLAB
دستَسات هشتثظ
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
ًوًَِ
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
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.
END
تیضی
START
Display message
“How many hours did
ًطاًِ ّای پایِ فلَچاست
you work?”
Read Hours
END
33
MATLAB آشٌایی با ًشم افضاس
ضشٍع
START
Display message
ًطاًِ ّای پایِ فلَچاست
“How many hours
did you work?”
Read Hours
• ضشٍع ٍ پایاى
Display message – تَسظ تیضی ًطاى دادُ هی ضًَذ
“How much do you
get paid per
hour?”
– ًطاى دٌّذُ ضشٍع ٍخاتوِ تشًاهِ اًذ
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
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?”
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?”
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?”
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?”
37
MATLAB آشٌایی با ًشم افضاس
START
Display message
“How many hours
هشاحل اجشای فلَچاست
did you work?”
Read Hours
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
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
42
آشٌایی با ًشم افضاس MATLAB
YES
?x < y Process A
43
آشٌایی با ًشم افضاس MATLAB
YES
?x < y Display x
YES
?x < y Display x Add 1 to x
44
آشٌایی با ًشم افضاس MATLAB
CASE
years_ employed
45
آشٌایی با ًشم افضاس MATLAB
A
END
A
46
MATLAB آشٌایی با ًشم افضاس
47