Matlab R2008b - Full - Recommended
أقوى البرامج الهندسية المتخصصة فى الرسومات الهندسية
1. مكونات واجهة البرنامج 1-نافذة التعليمات :Command Window
النافذة الرئيسية للبرنامج وفيها يتم كتابة التعليمات بشكل مباشر. توفر هذه النافذة عدة وضائف أخرى من بينها:
ـ الإطلاع على نصوص المساعدة المدرجة مع الدوال التي يوفرها البرنامج أو المساعدة العامة.
ـ الإطلاع على نتائج الترجمة.
ـ الإطلاع على مسار العمل وتغيره برمجيا.
ـ الإطلاع على محتويات مجال العمل وقيمة المتغيرات المتواجدة فيه, وإفراغه عند الحاجة.
ـ فتح الأقسام الفرعية للبرنامج مثل demo و Semulink...2-مسار العمل:Current Directory
يتمثل في المجلد الحالي الذي تعمل فيه. المسار التلقائي الذي يوفره البرنامج هو المجلد Workالموجود في مسار تنصيب البرنامج. هذا المسار التلقائي يمكن من إستغلال أسهل للدوال التي يوفرها البرنامج ويحتوي كافة الملفات و المجلدات المرتبطة بالتطبيق الذي تم فتح أحد ملفاته الرئيسية(.m). لتغير المسار يكفي إختيار الزر المقابل لخانة الكتابة أوكتابة المسار هناك مباشرة وتفعيل التغير عبر النقر على الزر "Enter"
يمكن تعديل ذلك المسار برمجيا من العنصر رقم 5 في الصورة3-مجال العمل: WorkSpace
في هذا المجال يتم تسجيل أسماء المتغيرات التي تم تعريفها والقيمة المسندة لكل متغير. هذا المجال يجنبنا إعدة إسناد نفس القيمة مجددا للمتغير و إستعماله مباشرة في المعادلات أو غير ذلك من الإستعمالات. ما يغلق البرنامج يتم مباشرة حذف محتويات مجال العمل لذلك ينبغي تسجيله عند الحاجة. من الممكن أيضا إفراغ هذا المجال برمجيا.(العنصر رقم 6 في الصورة)يعني بيعرض لك اسماء المتغيرات مثل (x,y,z ) وقيمها ونوعها4-أرشيف التعليمات:Command History
في هذه النافذة يتم تسجيل وقتيا و بترتيب كافة التعليمات السابقة التي تم تنفيذها في نافذة التعليمات مما ييسر إعادة تفعيلها/ترجمتها فقط بالضغط على أزرار الإتجاهات في لوحة المفاتيح.
يعني اي امر حتكتبوا علي ال Command Window حيتسجل اتوماتك ول كتب امر و عايزه بعد كده من خلال الاسهم فوق وتحت
حنتكلم بالتفصيل لما ندخل في الاوامر مثال
اوامر مهمة وملاحظات
clear إفراغ كافة البيانات المسجلة تلقائيا في والتعليمات السابقة التي تم كتابتها في نافذة التعليمات
clc تنظيف نافذة التعليمات من الأوامر السابقة ونتائجها
who إظهار أسماء المتغيرات المسجلة في مجال العمل
whos إظهار أسماء المتغيرات المسجلة في مجال العمل حجمها بالبايت, عدد مكوناتها خاصة للمصفوفات و نوعها
pwd يبين مكان مسار العمل current directory
what اسماء الملفات الموجوده في مسار العمل
ans يبين اخر قيمة
pi دي عبارة عن باي التي تساوي 3.1416
inf مالانهاية
nan عبارة ترمز عن جمله ليس لها معني زي نتائج 0/0 او inf/inf
مثال لامر clear
بعد ما عرفنا قيمة x سالنا الماتلاب عن قيمته فعرفه وبعد ما اتستخدمنا امر clear سالنا الماتلاب مرة تانية عن قيمة ء فرد انه ما ليس لديه قيمة ل x
ام اذا كان لدينا اكثر من متغير x,y,z واردنا مسح قيمة عنصر واحد فقط مثلا x نستخدم الامر
كود:
clear x
ملاحظات هامة
عند تسمية المتغيرات مثل (x,y,z) يجب الا نسبقها بارقام مثل (3x) لكن ينفع (x3) والشرط ده برده يبطبق عندما نحفظ ملف باسم في الماتلاب
الماتلاب يتعامل بالمصفوفات
الاوامر التي اضعها في مربع الكود اتمني ان ترجبها معي علي البرنامج ولا تكتفي فقط بالقراءة
طرق كتابة المتغيرات
1- matrix 1*3 صف واحد و 3 اعمده
كود:
a=[6 2 9]
----------------------------------------------
-2
matrix3*1عمود1 و3 صفوف
كود:
a=[6;2;9]
---------------------------------------------------
-3
matrix 1*2 ماتركس في دالتين تخيلتين
كود:
ar1=[1+2i 3+4i]
----------------------------------------------------
-4
matrix 3*3
كود:
mat1=[1 2 3;4 5 6;7 8 9]
---------------------------------------
-5
vector (البداية 0 - النهاية 10 )
كود:
x=[0:10]
columns 1 through 7 معناها من العمود الاول الي العمود السابع وهكذا
--------------------------------------------------
6- لو عندنا نقطة البداية والنهاية والخطوة نستخدم
(البداية 0 - الخطوة 2 - النهاية 10 )
كود:
x=[0:2:10]
----------------------------------------------
-7
لو لدينا نقطة البداية والنهاية وعدد النقط نستخدم
البداية 0 النهاية 10 الدقة (كام جزء) 11
كود:
x=linspace(0,10,11)
--------------------------------------------------
- 8
وكل عناصرها =0 matrix 3*3
كود:
v1=zeros(3)
لعمل ماتركس 2*3 ( 3 صف و2 عمود ) نستخدم matrix 3*2
كود:
v2=zeros(3,2)
------------------------------------------------------
-9
لعمل ماتركس 3*3 كل عناصرها=1 matrix 3*3 ones
كود:
v5=ones(3)
zeros وممكن نعملها 3*2 او اي حاجة زي
---------------------------------------------------------
10-
كل العناصر القطرية = 1 و باقي العناصر = 0matrix
كود:
v6=eye(3)
-----------------------------------------------------------
-11
ماتركس عناصرها ارقام عشوائية من 1 و 0
كود:
rd=randint(4)
-------------------------------------------------------------------
-12
لعمل ماتركس من ارقام عشوائية كسور موجبة نستخدم
كود:
rd=rand(4)
----------------------------------------------------------------------
-13
لعمل ماتركس من ارقام عشوائية موجبة وسالبة نستخدم
كود:
rd=randn(4)
---------------------------------------------------------------
-14
magic matrix
الماتركس السحرية تجمعها من فوق من تحت بالعرض نفس النتيجة بس اقل حاجة 3*3 ماتركس
دي للتسلية بس
كود:
m=magic(3)
introduction 3
في الدوس السابقة كانت تكتب الاوامر في نافذة Command Window
طيب لما يكون البرنامج بتاعنا عبارة عن مجموعة كبيرة من الاوامر فالحل
اننا بنكتب الاوامر في m-file ده زي ملف بتكتب فيه كل الاوامر تحت بعض بحث لو اكتشفت في خطا في اي امر تقدر تصلحة بسهولة
بنفتح m-file من file ثم new ثم m-file او ممكن مباشرة زي ما هو موضح بالصورة
ا
هناك اوامر مهمة يجب ان تكون عند بداية كل كود او برنامج بنكتبه في ال m-file
وهي
كود:
clear
clc
close all
فوائده
clear حيث انه يمسح كل قيم المتغيرات في workspace فيعني انت لو بتستخدم اسماء قيم زي x,y وكان ليها قيم مخزنة قبل كده عند البرنامج يمسحها حتي لا يحدث تدخل بينهما
clc ينظف شاشة commend window علشان تشوف نتائج التي حصلت لما شغلت البرنامج بس
close all يشيل اي نافذه كانت مفتوحة علشان لا يحدث تداخل
مثال
حندخل عده قيم وعملية حسابية ونشوف الفرق بين اننا نكتب في نافذة الاوامر وال m-file
لدينا قيم لل a و b ونريد حساب قيمة c =a/b+3/5-4
كود:
a=1
b=2
c=a/b+3/5-4
عن طريق ال m-file
النتيجة ظهرت في نافذه الاوامر
ملاحظات هامة
1- عدد الاوامر
2- يعمل run للبرنامج او ممكن تضغط علي F5
3- بيعمل break point يعني تعمل run للبرنامج حتي النقطة دي يعني run step by step تضغط عليه ثم تاجي عند رقم الامر جنبه شرطه اضغط عليها تعمل دائرة حمرا حنشرحة بتفصيل اكتر في وقت لاحق
4- النجمة دي يعني الملف حصله تغيير ولازم تعمل save للبرنامج قبل ما تعمل run للبرنامج
لو كان اول مرة تعمل run للبرنامج اول ما تضغط علي run حيفتح لك شاشة save as ولاحظ انك تسميه مش ارقام يعني ما ينفع 3prog لكن ينفع prog3 مثلا
ولو انت كنت كافظه قبل كده باسم اول ما تعمل run يتسيف اتوماتك
ملاحظة
1- كيف تعامل الماتلاب مع الدالة c مثلا
اولا قام بعمليات الضرب ثم ثم عمليات الجمع ثم الطرح
2- قم الماتلاب بتنفيذ الاوامر حسب ترتيبها واظهار نتيجتها علي نافذه الاوامر نلاحظ ان الماتلاب قام باظهار قيم a , b في المثال السابق رغم اننا نريد قيمة c
نستخدم we use simecolum ; 1
كود:
clear
clc
close all
a=1;
b=2;
c=a*b+3/5-4
كود:
c=[1 3 4];
d=[2 5 6];
e=c+d
-----------------------------------------
الضرب
زي ما احنا عارفين لما نضرب 2 ماتركس في بعض لازم عدد الصفوف في الماتركس الاول يساوي عدد الاعمده في الماتركس الثاني
A2*3& B3*5 مثلا
مثال
كود:
a=[1 2 3;4 5 6]
b=[7 10;8 11;9 12]
c=a*b
لو عايز تتاكد بنفسك من عمية الضرب احسبها معاي
1*7+2*8+3*9=50
1*10+2*11+3*13=68
4*7+5*8+6*9=122
4*10+5*11+6*12=167
شايف الماتلاب حلها في ثانية
-----------------------------------------------------
لضرب matrix في نفسها لازم تكون squre يعني عدد الصفوف تساوي عدد الاعمده
نستخدم b^2
مثال
كود:
b=[2 5;3 6]
b^2
----------------------------------------------
لضرب رقم في كل عناصر الماتركس نستخدم
b.*2
مثال
كود:
b=[2 5;3 6]
b.*2
-------------------------------------------
لتربيع العناصر دخل الماتركس نستخدم
b.^2
مثال
كود:
b=[2 5;3 6]
b.^2
-----------------------------------------------
الدوال الزاوية
sin
cos
tan
asin دي تساوي sin-1
acos
atan
sec
cosec
log2
log10
----------------------------------
مثال
كود:
clear
clc
close all
x=linspace(0,2*pi,4)
y=cos(x)
plot(x,y)
introduction 4
اخدنا في الدروس السابقة امر clear وده كان بيسمح كل القيم في ال workspace
احفظ القيم التي في ال workspace نستخدم امر save ثم مسافة ثم نسميها
ولاسترجاعها نستخدم load
مثال
كود:
a=[1 2 3]
b=[4 5 6;7 8 9]
save osama
clear
load osama
اولا عرفنا قيم ل a,b ثم حفظناهم باسم اسامة وبعد كده تم نسحهم بامر clear و بعد كده استرجعنا القيم بواسطة امر load
لو ذهبنا الي مسار العمل الي اسمه work ونفنحه نلاقي ان اسم الملف الي حفظنا القيم فيه نوعة matlab data file
-------------------------------------------------------
index
معرفة مكان العنصر في ال matrix وهم نوعين double index & sigle index
مثال
كود:
a=[4 6;1 2;10 11]
c=a(1,1)
d=(3,2)
ال c انه يساوي العنصر صف رقم 1 وعمود رقم 1 في ال matrix a
ال d انه يساوي العنصر صف رقم 3 وعمود رقم 2 في ال matrix a
ملاحظة هامة
لما تكون شفال في ال command window بدل ما تكتب حاجة كتبتها قبل كده اكتب اول جزء من الامر وبعد كده بالاسهم هيعرض لك كل الاوامر التي كتبتها قبل كده ليها نفس البداية دي
------------------------------------------------
signle index
في signle index يتم وضع جميع عناصر المتركس في عمود واحد من الشمل لليمين ويرقمهم من فوق لتحت
مثال
يرقم الماتلاب العناصر كالاتي
القيم ترتيبهم
4 --------------------1
1 --------------------2
10 ------------------3
6 --------------------4
2 --------------------5
11 ------------------6
كود:
a=[4 6;1 2;10 11]
c=a(2)
d=a(5)
طيب لو كان الماتركس ليها صف واحد بس
برده نفس النظام
القيم --------ترتيبهم
21 ---------1
22 ---------2
23 ---------3
24 ---------4
25 ---------5
26 ---------6
كود:
b=[21 22 23 24 25 26]
d=b([2 5])
f=b([4 2 6])
d يحتوي علي العنصر رقم 2 و 5 من b
f يحتوي علي العناصر رقم 4 و2 و 6 من b
vector يحتوي مجموعة عناصر بجوار بعض
use
كود:
h=b(3:5)
vector
---------------------------
يحتوي علي اخر عنصر
use
كود:
k=b(end)
vector يحتوي من عنصر معين الي اخر العناصر
use
كود:
m=b(3:end)
------------------------------------------
vector يحتوي علي عناصر فردية من ال vector b
use
كود:
w=b(1:2:end)
-------------------------------------------
vector يحتوي علي كل عناصر b ولكنها في واحد عمود
use
كود:u=b(
-------------------------------------------
vector من اخر عنصر الي اول عنصر
use
كود:
t=b(6:-2:1)
------------------------------------------
اما اذا كنا نريد تغيير العناصر التي بداخل ال vector فاننا بعد ما نحدد اماكن العناصر نتكيب يساوي ثم القيم الجديدة
مثال
كود:
b=[21 22 23 24 25 26]
b(3)=50
b(4:6)=[14 18 20]
b([1 3 5])=[65 66 67]
--------------------------------------------------------------------------------------------
Double Index
يتم تحديد اماكن القيم في هذه الطريقة عن طريق رقم الصف ورقم العمود
(n,m) حيث n رقم الصف و m رقم العمود
مثال
كود:
a=[4 5 6;25 28 29;10 7 12;3 -2 -9]
نريد تحديد العنصر في صف ثاني عمود ثاني
كود:
a(2,2)
------------------------------
تحديد الصف 2 عمود 2 و 3
كود:
a(2,[2 3])
------------------------------
تحديد الصف 4 عمود 1 الي 2كود:a(4,1:2)
-----------------------------------
تحديد الصف الثالث عمود 1 و 3كود:
a(3,[1 3])
في الامثلة القادمة نحدد اكتر من صف مع اكثر من عمود
كود:
a([1 2],[1 2])
a([3 4],[1 2])
a([3 4],[2 3])
a([1 end],[1 end])
a([2:4 ],[2 3])
a([3 4],[1:3])
دلوقتي لو عايزين نغير القيم الي جوا
بعد ما نحدد اماكن القيم الي عايزين نغيرها زي ما اتعلملنا في الامثلة السابقة نضيف عليها يساوي والقيم الجديدة
بس لازم ناخد بالنا من size الي بنختاه لازم يكون متساوي في الطرفين
امثله
كود:
a=[4 5 6;25 28 29;10 7 12;3 -2 -9]
a([1 2],[1 2])=[50 51;60 61]
a([1 end],[1 end])=[85 86;87 88]
a([3 4],[1:3])=[62 63 64;65 66 67]
انتهاء الدرس الرابع
البرمجة رائعة وممتعة
تعالوا نشوف
الامر الرائع
كود:
msgbox('osama')
النتيجة
طلع نافذه فكتوب فيها الكلمة او الجملة ال كتبناها
الاوامر المهمة في ال programming
IF -1
طريقة عمله
IF cond
--------
-------
-----
------
end
---
---
---
بمعني هو حيشوف الشرط متحقق يكمل لو مش صح يعدي الاوامر الي بين if & end ويكمل
لو ما فهمت في مثال جاي
شكل اخر لل if
if x< 5
---
---
---
else
---
---
---
end
يعني الكوندشن ده لو صح ينفذ الاوامر الي تحت if و غير ذلك ينفذ الي تحت else
طريقة اخري لامر if
if x==5
---
---
---
elseif x==7
---
---
---
elseif x==10
----
----
end
بمعني لو تحقق الشرط الاول ينفذ الاوامر الي تحته ويسيب الباقي وهكذا
مثال واحد
حنعمل برنامج يحل معادلة من الدرجة الثانية
aX^2+bX+c=0
انواع الجذور الي حتتطلع اما (2 حقيقي real او 2 تخيلي imag او حقيقي وتخيلي complx )
البرنامج ( يعني تروح تفتح علي طول m-file ولو في امر جديد ما اخدناه بعد ما يخلص البرنامج اشرح ان شاء الله
كود:
clear
clc
close all
a = input( ' a = ');
b = input( ' b = ');
c = input( ' c = ');
x1 = ( - b + sqrt( b^2-4*a*c))/(2*a);
x2 = ( - b + sqrt( b^2-4*a*c))/(2*a);
if imag(x1)==0 & imag(x2)==0
if x1==x2
str='ident';
else
str= 'real';
end
elseif real(x1)==0 & real(x2)==0
str='imag';
else
str='comp';
end
bigstr=[' x1 = ' , num2str(x1) , ' ' ,' x2 = ' , num2str(x2), ' ' ,str];
msgbox(bigstr)
بعد ما تخلص كتابة البرنامج وتعمله save اعمله run
تلاقي في نافذه الاوامر بيطلب منك قيم a,b,c ادخلها
وبعد ذلط تطلع النتيجة
----------------------------------------------
2- switch
عمل هذه الاداة كالتالي
اذا كان لدينا متغير x وله عده قيم
switch x
case 25
----
----
----
case 75
----
---
----
end
بمعني لو كان المتغير x يساوي 25 ينفذ الاوامر الي يليه ويعدي الباقي ولو كان يساوي 75 ينفذ الاوامر الي تحته
اما لو كان الي بنسال عنه اسماء strang فنفس الطريقة
switch str
case 'ahmed
--------
----
----
case 'ali
---
---
---
oterwise
---
---
--
end
ملاحظات هامه
1- تستخدم switch علي متغير واحد فقط
2- لاتصلح if للسؤال عن الاسماء لكن switch تصلح
يعني ما ينفع نقول if str== 'ahmed
application
برنامج لقياس الوقت الي تستغرقه للوصول لبلد علي بعد 200 كيلو مثلا
يعني احنا حندخل طريقة المواصلات
كود:
clear
clc
close all
a=input('enter your transportation method :','s');
switch a
case 'car'
t=800/120
msgbox(['your trip will take ',num2str(t),' hours']);
case 'bus'
t=800/80
msgbox(['your trip will take ',num2str(t),' hours']);
case 'plane'
t=800/200
msgbox(['your trip will take ',num2str(t),' hours']);
otherwise
msgbox('inter valed tm')
end
ادخل اسم الوسيلة في نافذة الاوامر
لو دخلت وسيلة غير موجوده تتطلع لك نافذه ادخال غير صحيح
ولو انت دخلت وسيلة موجوده ولكن بحروف كابتل حيطلع لك اخال غير صحيح
ولحل تلك المشكلة
كود:
x='Ahmed'
lower(x)
upper(x)
يني نستخدم lower لو عايزين small او upper لو كابتال
لو عايز تنزل نسخة تاني افتح برنامج التورنتوبعد كده حتتطلع اصدارات مختلفة اختار الي انت عايزه نرجع تاني بعد ما نزلت ملف التورنت اضغط عليه مرتين حيفتح برنامج التورنت ببيانات البرنامج اضغط موافق وحيبدا التحميل
لما يخلص تحميل اضغط كليك يمين و open containing folder حيفتحلك المجلد الي نزل فيه البرنامج
نلاحظ ان لدينا ثلاث ملفات CD1 CD2 CD3 وداخل كل ملف منهم نجد ملفين واحد حجمه كبير ولاخر حجمه 1 كيلو لا نحذف اي شي منهم وعلي فكرة في الخطوة الجاية لما ناجي نحرق البرنامج بالنيرو واحنا بنختار الملف نختار الي مساحته صغيرة
دلوقتي استخدم برنامج النيرو لحرق البرنامج
ملاحظة في المجلد هناك ملفان نختار الي مساحته صغيرة
http://up.graaam.com/p8ic/eeeb442fed.jpgننتظر قليلا نلاقي بعد شوية برنامج الماتلاب فتح وعايز يتسطب سبحان الله لوحده كده
دوس كانسل مش عايزين نصطب لسبب لانه بعد ما يخلص الجزء الاول حيسال عايز الجزء التاني وحيهنج منك الجهاز
المهم بعد ماندوس كانسل نروح ل MY Computer نلاقي سبحان الله سي دي روم جديده طلعت لوحدها نعمل كليك يمين عليها وكوبي وننسخها علي الهارد بعد ما عملنا كوبي لاول سي دي نكرر العملية دي علي الباقي
كده مش باقي غير تسطيب البرنامج
بسم الله
لازم تشوف بارتشن في مساحة فاضية اكتر من 2 جيجا
دوس نكست وكملتم بحمد الله