Professional Documents
Culture Documents
Mathworks: Matlab
Mathworks: Matlab
إعداد
يوسف دعبول.م
1
ما هو Matlab؟
االسم مشتق من Matrix
Laboratory
برنامج ولغة لتطبيق العمليات
الرياضية للحسابات العلمية والهندسية
مصمم لعمليات المصفوفات
صمم في بداية السبيعنات
مشهور بقدراته الخاصة بالرسومات
واألدوات المختلفة التطبيقات
2
استخدام Matlab
3
Matlab نافذة
Matlab ذاكرة
Command History
( الجديدةMatlab )اصدارات
4
Command Windowنافذة األوامر
(all Matlab versions)
Matlab أجزاء
Operators العمليات
Matrices المصفوفات
Plotting الرسومات
M-files الملفات
Flow control التحكم بالتنفيذ
5
العمليات الحسابية البسيطة
a+b + الجمع
a-b - الطرح
a*b * الضرب
العمليات Operators
6
أولوية العمليات
)( األقواس
LR ^ األس
LR */ الضرب/القسمة
LR +- الجمع/الطرح
العمليات Operators
مثال
>> 5/2*3+4
=ans
11.5
7
نتائج العمليات
>> 6*5
إذا لم يسند ناتج العملية الحسابية
= ans
إلى متغير ،يقوم Matlab
30 باسنادها الى المتغير ans
>> 17/5
العمليات Operators
= ans
لمعرفة ناتج ،ansاكتب
3.4000 >>ans
>> ans
= ans
3.4000
8
اسناد النتائج
>> x=6*5
=x إذا اسند ناتج العملية إلى متغير،
30 سيحتفظ المتغير بالقيمة األخيرة إلى
أن يتم تعديلها
;>> y=17/5
>> y استخدام الفاصلة المنقوطة (;) يمنع
من إظهار ناتج العملية ،بينما عدم
العمليات Operators
=y
استخدامها يظهر الناتج
3.4000
يفضل اسناد النواتج الى متغيرات
>> z=x+y
=z من الممكن كتابة عدة أوامر بسطر
واحد:
33.4000
>> who >> x=6*5;y=17/5;z=x+y
Your variables are: لعرض قائمة المتغيرات بالذاكرة
x y z اكتب >>who
9
Matlab بعض دوال
exp(x) ex pi p
sin(x) sin x i,j imaginary unit
asin(x) sin-1x NaN Not-a-Number
Operators العمليات
log(x) ln x Inf
log10(x) log x
sqrt(x) x
abs(x) |x|
10
عمليات Matlab
;>>y=x^0.5
;)>>y=x^(1/2
y x ;)>>y=sqrt(x
11
أسماء المتغيرات
يمكن استخدام الحروف ،واألرقام ،و _ لتسمية المتغيرات:
;>>case_34=6.45
;>>case34=6.45
العمليات Operators
12
متغيرات Matlab
تخزن جميع متغيرات كأرقام حقيقية وبحجم 8بايت لكل قيمة
ال فرق بين األرقام الصحيحة والحقيقية:
;>> p = 3
;>> p = 3.0 نفس األمر!
يمكن تخزين أرقام أو حروف كقيم:
العمليات Operators
;>>number_123=7
;'>>text04='This is GE204
يوجد فرق بين الحروف الكبيرة والصغيرة:
;>> a = 4
;>> A = 10 Aa
يمكن مسح المتغير من الذاكرة:
>> clear a
13
Matlab Help
• اكتب
>>help
لمعرفة المزيد
العمليات Operators
14
Matlab Help
square root
function help
15
Matlab Help
يمكن أيضا
استخدام أيقونة
العمليات Operators
helpلمعرفة
المزيد عن أوامر
Matlab
10 5
3 4 يمكن توليد متجه (مصفوفة ذات بعد
>> 1:2:7 واحد) باستخدام األمر التالي:
=ans initial:step:final
1 3 5 7 النهاية:الخطوة:البداية
>> 1:4
(اذا لم يتم تحديد الخطوة ،سيفرض أنها
=ans
)1
1 2 3 4
18
Scalars, Vectors, Matrices
MATLAB treat variables as “matrices”
Matrix (m n) - a set of numbers
arranged in rows (m) and columns (n)
Scalar: 1 1 matrix
Row Vector: 1 n matrix
Arrays المصفوفات
20
أمثلة لعمليات المصفوفات
1 2 3 2 3 4 4 5
A B 6 7
4 5 6 5 6 7 C
8 9 لجمع وطرح
صحيحة
المصفوفات ،يجب
;>>D=A+B
أن تكون المصفوفات
المصفوفات Arrays
;>>D=A-B
ضرب المصفوفات غير ;>>D=A*C من نفس الحجم
;>>D=C*A تبديلي
;>>D=A.*B لضرب المصفوفات
خطأ ال بد من تساوي
;>>D=A+C األبعاد الداخلية
;>>D=A*B
21
;>>D=B*A
;>>D=A.*C
عمليات المصفوفات (تابع)
أمر Matlab العملية الرياضية
1
;>> C=A\B CA B
المصفوفات Arrays
22
منقول مصفوفة
Matlab أمر العملية الرياضية
>>C=A’; C=AT
1 2 3
A
Arrays المصفوفات
4 5 6
>>B=A’;
1 4
B 2 5
3 6
23
تضمين المصفوفات
1 2 3 2 3 4
A B
4 5 6 5 6 7
Arrays المصفوفات
1 2 3 2 3 4
D
4 5 6 5 6 7
24
بعض دوال الماتالب األساسية
Linspace()
Size()
Length()
Arrays المصفوفات
Magic()
Zeros()
Ones()
Inv()&det()
Eig()
25
)(Linspace
) Linspace(a,bيولد نسق سطري من 100قيمة بدءا
من aوانتهاء بـ .b
) Linspace(a,b,nيولد نسق سطري من nقيمة بدءا من
aوانتهاء بـ .b
المصفوفات Arrays
مثال:
;] >>a=[1 2 3 ;]>>a=[2 3;4 5
) >>d=size(a )>> [m n]=size(a
=d m=2
27
1 3 n=2
)(Length
Length(x) يعيد طول الشعاع ، xوهو يعيد القيمة
العظمى من القيمتين التي يعيدها التابع sizeمن أجل
المصفوفات غير الفارغة و صفر من أجل المصفوفات
الفارغة.
المصفوفات Arrays
مثال :
;] >>a=[1;2;3;4 ;][=>>a
) >>b=length(a )>>b=length(a
b=4 b=0
28
)(Magic
Magic(n) يولد مصفوفة n*nتتألف من أعداد صحيحة
تنتمي قيمها إلى المجال ] [1..n2وتكون اسطرها و أعمدتها
و اقطارها متساوية المجموع.
ستكون المصفوفة السحرية الناتجة صحيحة في حال .n>2
المصفوفات Arrays
مثال :
29
)(Zeros
: Zeros(n) يولد مصفوفة n*nمن األصفار
Zeros(m,n) أو )] zeros([m nيولد مصفوفة m*n
من األصفار.
المصفوفات Arrays
30
)(Ones
Ones(n) يولد مصفوفة n*nمن الواحدات.
Ones(m,n) أو )]ones([m nيولد مصفوفة m*nمن
الواحدات
أمثلة:
المصفوفات Arrays
31
)(Inv() & det
Inv(x) يعيد مقلوب المصفوفة المربعة .x
Det(x) يعيد محدد المصفوفة المربعة .x
أمثلة :
المصفوفات Arrays
32
رسومات Matlab
>> ;x=0:.1:20
>> ;)y=exp(0.1*x).*sin(x من مزايا برنامج Matlab
>> )plot(x,y
الرسومات
>> )'xlabel('Time (t) in Seconds
>> )'ylabel('Response in mm توجد العديد من الخيارات،
>> )'title('A Simple 2-D Plot حيث يمكن التحكم بـ:
الرسومات Plotting
33
أمر plot
;>> n=0:11
;)>> y=sin((pi/6)*n ال بد من تساوي أبعاد !… , y1, x1
الرسومات Plotting
)>> plot(n,y
34
يمكن معرفة المزيد
عن األمر بكتابة:
>> help plot
)]plot(x1,y1[,x2,y2,x3,y3.....
الرسومات Plotting
)'>> plot(n,y,'--
رسم باستخدام
خط متقطع
35
Color, Symbols, and Line Types
Use “help plot” to find available
Colors Symbols
Specifiers
Line Types
b blue . point - solid
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus -- dashed
Plotting الرسومات
m magenta * star
y yellow s square
k black d diamond
v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram
36
إضافة شكل إلى شكل موجود
باالمكان إضافة رسم إلى رسم آخر موجود من خالل
استخدام األمر holdفعند استخدام األمر hold onفإن
ماتالب ال يزيل الرسم الموجود و إنما يضيف الرسم الجديد
إلى الرسم الحالي .
الرسومات Plotting
37
الرسومات Plotting
38
مثال
دوال الرسومات
title لكتابة اسم (عنوان) الرسمة
xlabel لكتابة اسم محور x
ylabel لكتابة اسم محور y
grid لعرض شبكة بالرسم
الرسومات Plotting
39
الرسومات Plotting
40
مثال
الرسومات Plotting
41
مثال
أمر subplot
رقم الرسمة
)subplot(m,n,p
عدد الصفوف عدد األعمدة
الرسومات Plotting
42
األمر figure
يستخدم لفتح نافذه لصورة جديدة
مثال:
الرسومات Plotting
43
ملفات Matlab
كتابة أوامر Matlabكثيرة عدة مرات غير عملية
يتيح Matlabإمكانية تجميع األوامر بشكل ملف
يكفي كتابة إسم الملف لتنفيذ جميع األوامر المضمنة
يوجد نوعان من الملفات:
الملفات M-Files
44
انشاء الملفات )M-files( M
لكتابة أي ملف :M-file
– بكتابة >>edit filenameفي نافذة األوامر
– باختيار New > M-file
– بالنقر على
الملفات M-Files
45
Script Files
ملف :script الكتابة بنافذة األوامر
تخزين األوامر بملف (على سبيل
المثال باسم )test
;>> x=3.0
;>> y=x^2
الملفات M-Files
>> y
= y
9.0
>>
ثم كتابة االسم بنافذة األوامر:
>> test يمكنها التعامل مع المتغيرات
بذاكرة !Matlab
= y
46
9.0
تعريف الدالة ملفات الدوال
شبيهة بملفات ،scriptمع الفروقات التالية:
)function [list of outputs] = ge204(list of inputs
% function help
.
الملفات M-Files
.
المخرجات قائمة اسم الدالة
. قائمة المدخالت
program
.
.
توضيح الدالة للمستخدم
.
return للرجوع ال تتعامل مع المتغيرات
بذاكرة ( Matlabمتغيرات
مستقلة)!
47
مثال
cmb الدالة
function [x,y]=cmb(a,b)
%Test function
x=a+b; Command نافذة األوامر
Window
y=a/b;
M-Files الملفات
return
>> [j,k]=cmb(5,2)
j=7
k=2.5
>>help cmb
Test function
48
التحكم بالتنفيذ
;a=2
;b=3
عادة ،يكون تنفيذ األوامر بالتسلسل
;c=a+b
;)d=sqrt(b
التحكم بالتنفيذ Flow control
49
while وif أوامر
while expression if expression if expression
statements statements statements1
end end else
Flow control التحكم بالتنفيذ
statements2
end
end
>> b >> b
b = 3 ??? Undefined function or variable 'b'.
a = 3 !تكرار b = 2
b = 3
a = 4
b = 4
a = 5
b = 5
>> a=10; b = 6
>> while a<5 b = 7
a=a+1 .
end .
.
>> a
a = 10 . loop!
53
أمر for
أمر for index = start : [increment :] end
statements
تكرار! end
التحكم بالتنفيذ Flow control
a = 3
a = 4
a = 5
55
وظيفة
ما هو عمل التوابع التالية ؟
Min
Max
Round
وظيفة
Ceil
Sort
56