Post on 25-Feb-2023
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
1
وزارة التعليم العالي والبحث العلمي
التربية / جامعة القادسيةكلية
قسم الرياضيات
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
2
MATLAB: لغة الربجمـــــــــــة
(The MATLAB programming language)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.MATLABمقدمة عن لغة االحتساب التقن -1
الثوابت والمتغرات. -2
المصفوفات والعملات على المصفوفات. -3
.المصفوفات متعددة األبعاد -4
السالسل الرمزة. -6
جمل اإلدخال واإلخراج. -7
.الجمل الشرطـــــة -8
جمل الدوران والتكرار. -9
. MATLABملفات البانات الخاصة ببرنامج -11
القاعدة. االعازاتواعازات المجموعات والبتات -11
الدوال والبرامج الفرعة. -12
الرسوم. -13
حل المعادالت الراضة. -14
:المصــــــــــادر
1- MATLAB 6.5 دار شعاع للنشر ,عبد الكرم البكو لمهندسا ,الدلل المرجع والتعلم(.)
2- MATLAB Help Version 6.5
3- www.mathworks.com
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
3
MATLAB :The MATLAB Programming Languageلغة البرمجة
مقدمة
البرنامج األشهر ف األوساط العلمة, إذ ستخدم هذا البرناامج فا مع ام MATLABعتبر برنامج
أي مسألة أو اهرة أت بعدها دور هذا البرنامج لتعامل مع تلك ةمذجنالمسائل العلمة والهندسة, وبعد
أكثر علـــــمالبرامج وحللها بأبسط الطرق وأحدثها وأسرها برمجة, ومن الجدر ذكره بان هذا البرنامج
كف معهد وكلة ف الوالات المتحدة األمركة فقط, عدا تلك المعاهد ف أوربا وبقة العالم, و 211من
, فســـــتــــذهل من عدد MATLABأن تدخل إلى أحد محركات البحث على شبكة االنترنت وتكتب فقط
المواقع الت تتحدث عن هذا البرنامج.
وتقاوم بعملاات ,الحساابات التقناة إلجراءتستخدم األداءلغة برمجة عالة MATLABوتعتبر لغة
. تمكناك هاذه اللغاة مان إلاى احتاراك كبار ال تحتاج أنهاضمن بئة سهلة البرمجة كما واإل هارالحساب
حل العدد من المسائل التقناة حساابا, خاصاة التا عبار عنهاا بمصافوفات والتا تحتااج إلاى جهاد كبار
.FORTANو Cلبرمجتها بلغات البرمجة األخرى مثل لغة
)مختبر المصفوفة(, حاث إن MATrix LABoratoryبر أتت تسمة هذه اللغة من اختصار التع
كماا أرفقات بهاذه اللغاة أدوات البرنامج مصمم أساسا للتعامل مع العملات على المصفوفات بشكل بساط.
)وهاا أكثاار ماان عشاارن أداة(, وتعتباار هااذه toolboxesلمعالجااة وحاال تطبقااات علمااة خاصااة ساامت
لغة, حث تسام لهام باتعلم وتطباق تقناات حال متخصصاة لمعالجاة األدوات هامة جدا لمستخدم هذه ال
ون اام الااتحكم والمحاكاااة والشاابكات العصاابة والتحلاال ,مشااكالت ومسااائل خاصااة, مثاال معالجااة اإلشااارة
الكم والمال واإلحصاء ومسائل الجبر الخط واالمثلة ... الخ.العددي و
Graphical User Interfaceأدوات واجهااة التخاطااب الرسااومة MATLABاانمن برنااامج
(GUI) .الت تجعلك تتعامل مع البرنامج على انه أداة تطبقة متطورة
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
4
MATLABتشغيل برنامج
تم تشغل البرنامج بأحد الطرق التالة:
إضاافة رماز أقوناة البرناامج تمعلى الحاسابة التا تعمال علهاا. ا MATLABبعد تنصب برنامج -1
النقاار علااى األقونااة بنقاارتن فتحااة عنااد وااتم علااى سااط مكتااب الحاساابة وحماال الرمااز
.double clickمزدوجتن
MATLABثم أسام البرناامج Programsبرامج إلى ومنها startقائمة إلىأو عن طرق الذهاب -2
6.5.
ونسخة اإلصادار وسانة. ثام بعاد ثاوان MATLABعندها سوك ت هر لنا شاشة تحمل أسم البرنامج
( حاث تحتاوي 1قللة ت هر نافذة البرنامج الرئسة والت تكون ف بداة التشاغل كماا فا الشاكل رقام )
على نوافذ فرعة. Windows هذه النافذة كسائر البرمجات الت تعمل تحت بئة ن ام
start Programs MATLAB 6.5
MATLAB)سط مكتب (نافذة البرنامج الرئسة(: شاشة 1شكل )
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
5
MATLABسطح مكتب برنامج
وتسامى MATLABست هر على شاشتك عدة نوافذ عناوان احادها MATLABعند تشغل برنامج
, تحاوي هاذه النافاذة وتاتحكم بجماع النوافاذ األخارى المكوناة لبرناامج MATLABسط مكتب برناامج
MATLAB. وحسب خارات تنصاب البرناامج, فقاد تكاون بعا هاذه النوافاذ مرئاة أو مخفاة ضامن
. MATLABنافذة
MATLABمكونات نافذة
-من األجزاء التالة: MATLABتتكون نافذة
شرط العنوان وكون ذات لون ممز عن باق األشرطة وجد على ساره الرماز الصاوري للبرناامج -1
وف منه وأسم البرنامج
, قائمااة Edit, قائمااة تحراار Fileباادأ بقائمااة ملااك (Lists Bar)أو (Menu Bar)شاارط قااوائم -2
.Help, ... وحتى قائمة المساعدة Viewعر
الموجاودة فا قاوائم الشارط االعاازاتوضم رموز صورة لابع (Tools Bar)شرط األدوات -3
السابق.
(Current Directory)هنااك فا الجازء األخار مان شارط األدوات جازء مهام ادعى الادلل الحاال
لمناا بأنناا علاى ( ع2والذي خبر المستخدم ف أي جزء من الحاسب هو موجاود حالاا وكماا فا الشاكل )
:Cوعلى القرص MATLAB6P5\workالدلل )المجلد(
كطرااق وعملهااا Startوفااه كلمتااان األولااى MATLABهنالااك شاارط مهااام خاااص بنافااذة برنااامج -4
تعلمك بأن البرنامج جاهز للعمال حساب التوجاه المعطاى Ready. بنما ذ بع االعازاتمختصر لتنف
.هل
األشرطة أعاله هناك مجموعة من النوافذ الفرعة الت مكن تفعلهاا أو إخفائهاا حساب إلىباإلضافة
(, لكان هنااك √( حث تم تأشر أسم النافذة المرغاوب بعرضاها باشاارة )2الحاجة وذلك كما ف الشكل )
وتنفاذ , والت من خاللها تم التعامل بكتاباة Command Windowنافذة أساسة للعمل ه نافذة األمر
األوامر بصورة مباشرة أو غر مباشرة.
( ه من مكونات نافذة 3كما ف الشكل رقم ) Viewتعتبر النوافذ الداخلة ال اهرة أسمائها ف قائمة -5
-ولكل نافذة منها عملها الخاص وكما ل: MATLABبرنامج
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
6
وهاا نافااذة ال مكاان االسااتغناء عنهااا ألن بواسااطتها ااتم تنفااذ Command Window:نافااذة األماار -أ
.(<<وتكتب بعد عالمة الحث ) األوامر وعر النتائج الت نحصل علها من تنفذ تلك األوامر
تسام لاك باساتعرا وتحمال وحفا ةتخاطباوها عان واجهاة :Workspaceنافذة ساحة العمل -ب
حاث ت هار قائمااة تضام أسام المتغار وحجمااه وعادد باناتاه وصانفه )جمااع MATLABارات لغاة متغ
.(3, كما ف الشكل )ه من صنك مصفوفة( MATLABمتغرات لغة
وها أضاا واجهاة رساومة تحادد الادلل الحااوي للملاك Current Directory:نافذة الدلل الحال -ج
.MATLABالذي تعامل معه برنامج
View(: النوافذ الداخلة ف قائمة 2شكل )
Workspace.ونافذة ساحة العمل Command Window(: نافذة األمر 3شكل )
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
7
وها نافاذة تخاطباة )رساومة( تسام لاك بالبحاث واساتعرا الوثاائق بشاكل Help:نافذة المساعدة -د
مباشر.
وهاا عبااارة عاان نافااذة تسااتعر بنااة شااجرة لاا دوات Launch Pad:الباارامج التنفذااة ةلوحاا -و
. التنفذة والبرامج
تمكناك هااذه النافاذة ماان إعاادة تنفااذ األوامار السااابقة Command History:نافاذة األواماار الساابقة -هاـ
المنفذة ف نافذة األمر بدال من كتابتها مرة أخرى.
بعد تفعلها .... MATLAB( بن النوافذ الداخلة لنافذة البرنامج 4والشكل )
بعد تفعلها MATLABالنوافذ الداخلة لنافذة البرنامج (: 4شكل )
(lists bar)شرط القوائم
(tools bar)شرط األدوات
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
8
:مالحظات
موجهااة بالمصاافوفات MATLABعبااارة عان مصاافوفة, لغااة MATLABكال متغاار فاا -1
(.scalarحتى وان كانت المتغرات أعدادا مفردة )
ستخدم لحذك المتغرات والدوال من الذاكرة . Workspaceضمن clearاألمر -2
.Window Commandمراأللمس نافذة ستخدم Workspaceضمن clcاألمر -3
:مختلفة بتنسقات أ هار MATLABف لغة النتائج العددة إ هارمكن -4
format short, long, short e, long e, hex, blank, +, rat,…
من خالل: MATLABجاهزة ف عازاتاك demo( demonstrationمكن تنفذ ) -5
Help Demos (Toolboxes)مثال أختر الموضوع المحدد
-ف:مكن االستفادة منها
عر شفرة -ج .(Helpتعلم أكثر حول الموضوع ) -ب. Demosتنفذ -أ
.M–file إلى Demoاستنساخ شفرة البرنامج من -د البرنامج .
من Demosمكن الدخول إلى ة :مالح ـــــ
للداللاة علاى اساتمرار االعااز فا مسابوقة بفارا فا نهااة الساطر )...(ثالث نقااط متتالاة -6
السطر التال.
وكاذلك فا Commandمنع طباعة المتغار أو النااتج فا نافاذة تفارزة منقوطة بعد اإلعاز -7
.Editorنافذة
, مثل:ا عتبر نص تعلقبعدهفكل نص أت إشارة النسبة المئوة )%( تستخدم للتعلق -8
% This Program Compute Area
(.examplel.mمثال ) ,(m.وتكون توسعها ) M–filesتسمى MATLABملفات -9
بحركة الساهم ل علاى Command نافذة االحتفا بكتابة االعازات السابقة والالحقة ف -11
واألسفل.
Commandت هار فا شاشاة )النتائج واالخراجات( MATLABنتجة تنفذ برنامج -11
Window .لذلك جب االنتقال إلها بعد التنفذ
والثواباات واألنااواع البانااة عاان المتغاارات اإلعااالنال تحتاااج إلااى MATLABلغااة -12
المستخدمة بالبرنامج. األخرى
Start
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
9
أماانلتنفااذ مقطااع ماان البرنااامج )تعلمااة أو مقطااع ماان البرنااامج( ااتم تأشاارها ثاام النقاار -13
:فت هر القائمة المنسدلة
وننفذها. Pasteونختار Command Windowوننتقل إلى Copyوبعد ذلك نختار
ونااة الصاافحة الفارغااة )البضاااء( الموجااودة ك, أنقاار علااى أM-fileإلنشاااء ملااك نصاا -14
وماان ثاام Fileماان القائماة New, أو اختاار MATLABسااط مكتاب أدواتضامن شاارط
نافاذة محارر ألوامرا هستدع هذ لفت ملك موجود مسبقا. Openأو اختار M-fileاختر
. كماا فا األشاكال )نافذة كتابة البرامج( MATLABالت مكنك ف كتابة أوامر النصوص
(5( ,)6( ,)7.)
الموجااودة فاا شاارط أدوات نافااذة Runونااة كباختااار أ تنفااذ الملااك المخاازونمكاان -15
Editor أو عبار ضاغط المفتااF5 أو االختاارRun مان القائماةDebugكتاباة اسام , أو
بعاد انتهااء كتاباة البرناامج .Commandفا نافاذة <<الملك المخزون أمام عالماة الحاث
( علاى قرصاك example1.mماثال )باسم معان M-fileخزن هذا الملك كملك )الملك(
الخازن ضامن شارط أدوات ساط أو Fileمان القائماة Save االختاار الصلب عبر اختار
(. 8ف الشكل )كما (.MATLABمكتب
مالح ة:
فباإلمكان إعطااء االسام الاذي رغاب فاه (Untitle1)عند الخزن حمل البرنامج اسم افتراض
المبرمج أو البقاء عله.
Commandلحساب الجزء المنشر وإ هار النتجة ف نافذة الذهاب إلى الدالة المنشرة
للجزء المنشر Help ـالذهاب لل قص نسخ لصق
تعلق
رفع التعلق هكلة المقطع
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
10
مان القائماة Exit MATLAB االختاارعبار MATLABعندما نرد إغالق برناامج -16
File الموجااودة فاا نافااذة سااط مكتاابMATLAB أو عباار كتابااة األماارExit نافااذةفاا
Command ف زاوة سط مكتب )×( , أو عالمةMATLAB .العلا المنى
لإلعالن عن متغر عالم بن الدوال والبرنامج الرئس. globalاإلعاز -17
( بن االعازات.toc( و )ticلحساب زمن تنفذ البرنامج نضع تعلمت ) -18
مثال:
clc;
clear;
tic;
تنفذ البرنامج خزن البرنامج
رقم العمود رقم السطر شرط الحالة
البرامج )محرر الملفات النصة(.(: نافذة كتابة 6شكل ) (: إنشاء ملك جدد.5شكل )
(: نافذة كتابة البرامج )محرر الملفات النصة(.7شكل ) تنفذ البرنامج.(: 8شكل )
فضل كتابتها ف بداة أي برنامج رئس
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
11
(commands)
t = toc;
من خالل: Help ـللبحث عن إعاز ف ال -19
Help MATLAB Help
-هناك عدة طرق للبحث عن اإلعاز, منها:
1- Contents.
2- Index.
3- Search.
4- Demos.
قوم باقاك تنفذ البرناامج أو جازء مان البرناامج أو الدالاة )التعلماات breakاإلعاز -21
ال تــــنفذ(. breakالت بعد
:أمثـــــلــة
function ……. if ……. …….
……. ……. …….
……. else …….
……. break; break;
break; .…….
….….
}توقك تنفذ الدالة فقط{
else}توقك ف حالة {
تنفذ ال
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
12
للخروج من الدالة. returnاإلعاز -21
function …… :مثال
……..
…….
……
return;
……..
.…...
السطر ونوع الخطأ.رسالة الخطأ تحتوي على رقم -22
.ansأي عملة حسابة غر منسبة إلى متغر تنسب تلقائا إلى المتغر -23
أي متغر غر مستخدم ودخل ف العملات فان البرنامج سوك عط خطأ. -24
MATLAB :MATLAB Symbolsرموز لغة
من العناصر األساسة التالة: MATLABتتكون لغة
A, B, … , Z, a, b, … , zوه: :إنكلزةحروك أبجدة -أ
9 ,… ,2 ,1 ,0أرقام حسابة: -ب
... الخ. ,} , ) , ( ,* , ; , > , < , =, - , +رموز خاصة مثل: -ج
:Constantsالثوابت
-أنواع متعددة من الثوابت أهمها: MATLABوجد ف لغة
: ConstantsNumerical)أ( الثوابت العددية
وتتكون من عدد من األرقام ولها عدة أشكال ه:
18- ,472 ,23+ ,0 :مثل ( الثوابت الصحيحة:1)
خروج من الدالة
تنفذ ال
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
13
أكبر عدد صح مستخدم.: مالح ة
>> bitmax
ans =
9.007199254740991e+015
2 والت تقابل53
-1
18.0- ,472.5 ,51.8 ,0.0مثل: ( الثوابت الحقيقية:2)
>> realmin :مالح ة
ans =
2.225073858507201e-308
>> realmax
ans =
1.797693134862316e+308
>> pi
ans =
3.146
10 حث تحول الصاغة الجبراة ا:يائي( الثوابت الحقيقية المدونة تدوينا 3)N إلاى صاغةMATLAB
10 فمااثال تصااب ENائااة 32.0 :2.0فاا الجباارE3 2.0أوE+3 بالتاادون الااائ فااMATLAB
10 وكذلك تصب 21.7- :1.7-ف الجبرE2 0.0032 ف التدون الائ وكذلك تصب:
10-33.2E-3 : 3.2
2i ,6 - 9i ,6 + sin (0.5) * j ,sqrt (-2) - 1 :مثل :العقدية( الثوابت 4)
= 1i = j حث:
4.9497i –7.7782 -= cإذا كان: :1مثال
cr = real cr = -7.7782 (c)فالستخراج الجزء الحقق
ci = -4.9497 ci = imag (c) وإلستخراج الجزء التخل
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
14
2:9.000i –6.000 1) * 3)-sqrt ( –c2 = 3 * (2مثال
:2مثال :1مثال
>> x = 100; >> x = 100;
>> x = double (x); >> x = uint8 (x);
>> y = x + 1; >> y = x + 1;
y = 101 Error
Numeric )الرقمة )العددة
int8, uint8 (1 byte)
int16, uint16 (2 bytes)
int32, uint32 (4 bytes)
int64, uint64 (8 bytes)
single
real نوع
(4 bytes)
double
MATLAB االفتراض ف
real نوع
(8 bytes)
ال تدخل ف العملات الحسابة (تستخدم لتقلل حجم الخزن)
تدخل ف العملات الحسابة ال تدخل ف العملات الحسابة
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
15
:String Constants)ب( الثوابت الرمزية
النوع من "ثوابت" مجازا ألن الثابت هذا تكون من حروك وأرقام ورموز توضع بن سمى هذا
كعناون توض القم الناتجة من الحساابات وستخدم عادة ' ' مفردة أي quotationsعالمت اقتباس
ووحداتها, تسمى العبارات التالة والموجودة بن الحاصرات العلا ثوابت رمزة.
'The speed of wind ='
'I love Basrah'
'My birthday = 1970'
ب, ومان كل الثوابت الرمزة أعاله, وان استخدمت أرقاما حسابة داخلها, فه ال تحمل معنى حساا
الجدر بالذكر أثناء استعمال الثوابت الرمزة انه ال جوز استخدام حاصرات علوة داخل حاصراتها,
ومكان كتاباة Bاقل من الحرك Aكما نبغ التنبه أي أن هناك قما رمزة للحروك عتبر الحرك
:ذلك بالصورة
'A' < 'B'
:Boolean Constants )جـ( الثوابت المنطقية
.falseف حالة (0)و trueف حالة (1)وه الثوابت الت قمتها العددة
:مثال
3 > 2 1
0 > 5 0
:Variablesالمتغيرات
هناك بع القواعد الواجب مراعاتها عند كتابة اسم المتغر وه:
المفتاحااة )الكلمااات المحجااوزة( أو الاادوال التاا توفرهااا اللغااة ال مكاان اسااتخدام الكلمااات . 1
:كأسماء متغرات, مثال
if, end, for, break, else, global, return, function, sin, log, …
متغاارات COST, CoST, cost, Costة لحالااة الحاارك ) ساا. أسااماء المتغاارات حسا2
(. aو A مختلفة, وكذلك
1.شبه رقم MATLAB( ف لغة small letter) lحرك .3
. 63رمزا وسهمل أي رمز زائد عن 63. مكن ألسماء المتغرات أن تحوي 4
. جااب أن تباادأ أسااماء المتغاارات بحاارك متبوعااا بااأي عاادد ماان األرقااام أو األحاارك أو 5
underscore استخدام الرموز الخاصة أو الفرا . ز. وال جو
.(… ,if, while, input)تكتب بالحروك الصغرة MATLAB أوامر. جمع 6
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
16
:وه MATLABهناك عدة أنواع من المتغرات ف لغة
:Numerical Variablesالمتغيرات العددية )أ(
ومكان أن حتاوي علاى bإلاى aو Zإلى Aتتكون من حرك واحد أو مجموعة من الحروك من
ومكن أن تكون سلسالة مان األرقاام والحاروك بشارط أن بادأ بحارك )خلاط مان 9إلى 0أرقام من
رمازا. 63حتاى underscoreوحروك مبدوءة بحرك( ومكن كذلك أن حتوي المتغر علاى أرقام
(.أسأو وتكون قمة المتغر عددة ) صح , حقق, عقدي
:مثال
Ali_Ahmed, X2, S2, ks, K
بع المتغرات المعرفة مسبقا ف برنامج الماتالب والمعروفة:
التعبير الحسابي
تكون التعبر الحساب من مجموعة من الثوابت والمتغرات تجمع بنهما عملات حسابة وستخدم
^ واألمثلااة تالتااة تعباار عاان تعااابر جبرااة صااغت بلغااة ,* , /,-الحسااابة مثاال , فهااا الرمااوز
MATLAB.
MATLABالتعبر بلغة التعبر الجبري
a – 3 * b a – 3b
c ^ 2 – 10 c
2 - 10
(a ^ 2 + b ^ 2) / 12 a2 + b
2 / 12
m * (7 * d – 8 * g) m (7d – 8g)
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
17
Rule of Precedenceقاعدة األسبقية )األولوية(
العملات الحسابة فا التعاابر والمعاامالت الحساابة, أولواتوهذه القاعدة مهمة ف فهم وترتب
كما جرها ونفذها الحاسب, وتنص القاعدة على أن األولوة األولاى تعطاى للعملاات الموجاودة بان
وال, والضارب )أو القوسن ومن الساار إلاى المان, وبالنسابة للعملاات الحساابة فاالرفع إلاى األس أ
القسمة( ثانا, والجمع )أو الطر ( أخرا والمثال التال وضع هذه القاعدة:
التعبر:
A / B + C كافئ ف الجبر + CB
A
كافئ ف الجبر A( / B + Cبنما كافئ التعبر )CB
A
على نتجة القوس. A جري أوال حسب األولوة ثم قسم األقواسالن الجمع داخل
التعبر :مثال
M) ^ A - B / (K * F - X
تنفذ العملات حسب الخطوات التالة:
حسب األولوة أضا.تأخذ األقواس األولوة األولى, وتنفذ العملات داخلها
لتصب كمة واحدة. Mإلى األس X: رفع العملة األولى
لتصب كمة واحدة. F ف Kضرب العملة الثانة:
1
2
2
1
3
4
2
5
1
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
18
واحدة. : طر نتجة العملة األولى من نتجة العملة الثانة وتصب النتجة كمةالعملة الثالثة
على نتجة العملة الثالثة وتصب النتجة كمة واحدة. B: تقسم العملة الرابعة
وتصب النتجة كمة واحدة. A: تطر نتجة العملة الرابعة من العملة الخامسة
Arithmetic Statementالجملة الحسابية
تشاترط MATLABتكافئ المعادلة الحساابة فا الجبار إال أن MATLABالجملة الحسابة ف
بادون أشاارة بنماا كاون التعبار هأن كون اسم المتغر المراد حساب قمته ف الطارك األسار وحاد
ة المعادلة( ف الطرك األمن, كما ف األمثلة التالة: الحساب )بق
1( y = A * X + B
2) A = 3.14 * R ^ 2
:مثال
لوة العملات الحسابة ف الجمل الحسابة:أو
Z = A – B / C
مكن مالح ة أن إشارة المساواة تمثل تخر أولواة حساابة بعاد انتهااء جماع العملاات الحساابة فا
الطرك األمن.
String Variables:)ب( المتغيرات الرمزية
تشاابه فاا تركبهااا المتغاارات العددااة والفاارق الوحااد بنهمااا هااو أن قمااة المتغاار الرماازي تكااون
(.اقتباس)محصورة بن عالمت رمزة
String Statementالجملة الرمزية
تشبه ف تركبها الجملاة الحساابة والفارق الوحاد بنهماا هاو أن المتغار فا طرفهاا األمان كاون
رة بن عالمت اقتباس( والتعبر ف طرفها األسر كون متغر.رمزا )محصو
واألمثلة التالة توض ذلك:
A = 'Hameed Abdul–Kareem';
N = 'Number of Student';
Dept = 'Computer Science';
2
3
1
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
19
فا عملاات حساابة ألنهاا اساتخدمتالتعابر ف الطرك األمن ال كون لها قم حسابة لو :مالح ة
. ' ' موضوعة داخل
:Library Functionsالمكتبية الدوال الجاهزة
راضاة كثار اساتعمالنا الالادوال الجااهزة MATLABلغاة باساتخدامتوفر ف مع ام الحاسابات
وغرها ومكن استدعائها ف أي وقت, ومنها: المثلثة واللوغارتمة االقتراناتولها, مثل الدوال
المعـــــــــنى االقتران
Sqrt الجذر التربع
abs القمة المطلقة
exp 10المرفوع إلى قوة بأساس
log اللوغارتم الطبع
log 10 اللوغارتم العشري
log 2 2اللوغارتم ذو األساس
sin جب الزاوة
Cos جب تمام الزاوة
Tan ل الزاوة
atan ل معكوس الزاوة
fix الصفر باتجاهالتدور
floor الالنهاة السالبة باتجاهالتدور
ceil الالنهاة الموجبة باتجاهالتدور
round أقرب عدد صح باتجاهالتدور
mod الجزء الصح من حاصل القسمة
rem بقة القسمة
Sign كانت موجبة, سالبة, صفرإشارة العدد إذا
imag القسم التخل
real القسم الحقق
factor العوامل األولة
Isprime عدtrue أولاإذا كان العدد
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
20
primes نشئ قائمة باألعداد األولة
gcd القاسم المشترك األع م
lcm المضاعك المشترك األصغر
انمعكوسحانذوال انمثهثيح انذوال انمثهثيح
MATLAB انذانح MATLAB انذانحSine sin() Inverse Sine asin() Cosine cos() Inverse Cosine acos() Tangent tan() Inverse Tangent atan() Cotangent cot() Inverse Cotangent acot() Secant sec() Inverse Secant asec() Cosecant csc() Inverse Cosecant acsc()
انذوال انمثهثيح قطع سائذ انمعكوسح انذوال انمثهثيح قطع سائذ
MATLAB انذانح MATLAB انذانحHyperbolic Sine sinh() Inverse Hyperbolic
Sine asinh()
Hyperbolic Cosine cosh() Inverse Hyperbolic
Cosine acosh()
Hyperbolic Tangent tanh() Inverse Hyperbolic
angent atanh()
Hyperbolic Cotangent coth() Inverse Hyperbolic
Cotangent acoth()
Hyperbolic Secant sech() Inverse Hyperbolic
Secant asech()
Hyperbolic Cosecant csch() Inverse Hyperbolic
Cosecant acsch()
:مثال
>> x = 2.6;
>> y1 = fix (x); y2 = floor (x); y3 = ceil (x); y4 = round (x);
y1 = 2
y2 = 2
y3 = 3
y4 = 3 س/ مالفرق بن الدوال األربعة أعاله؟
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
21
)( ma
yxt
523
cabpg
مالح ة:
تأخذ االقترانات المكتبة أولوة بعد األقواس عند تنفذ العملات الحسابة.
sin (a + b) – m / sqrt (d)
كون تنفذ العملات الحسابة كما ل:
.bمع a: إجاد قمة جمع العملة األولى
(.1: إجاد قمة جب الزاوة لناتج العملة )العملة الثانة
.d: إجاد قمة الجذر التربع لــ العملة الثالثة
(.3على ناتج العملة ) m: إجاد ناتج قمة ناتج قسمة العملة الرابعة
( وتصاب النتجاة النهائاة كماة واحادة 2( مان نااتج العملاة )4: طر نااتج العملاة )العملة الخامسة
.(عددا واحدا )
:MATLABقمتها ف وإزائهامكتبة ف الجبر تمثل الجمل التالة إقترانات :مثال
102 ab b = sqrt ( a ^ 2 + 10 )
z = ln (cx + ny) z = log (c * x + n * y)
y = sin 3 (x + nk) y = (sin (x + n * k)) ^ 3
s = tan-1
(y / x) s = atan (y / x)
52 xer r = 2 * sqrt (exp (x – 5 ))
t = abs (x – sqrt (y)) / (a + m)
g = p ^ (3 / 2) + (a * b / c) ^ (1 / 5)
5
4
3 1 2
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
22
مالحظات:
كل متغر ف الماتالب عبارة عن مصفوفة, لغة الماتالب موجه بالمصفوفات حتى وان كانت -1
المتغرات اعداد فردة او اعداد مفردة.
ستخدم لمسح نافذة االوامر. clcاالمر -2
ثالث نقاط متتالة )... ( ف نهاة السطر مسبوقة بفراغ للداللة على استمرار االعاز ف -3
السطر التال.
اشارة % النسبة المؤة تستخدم للتعلق فكل نص ات بعدها ال عتبر اعاز )تعلق(. -4
.M( وكون امتدادها M fileملفات الماتالب تسمى ) -5
ة الخطأ تحتوي على رقم السطر ونوع الخطأ.رسال -6
اي متغر غر معرف ودخل ف العملات فأن البرنامج سوف عط رسالة خطأ. -7
جمع اوامر ماتالب تكتب بحروف صغرة. -8
:()dispعبارة الطباعة
مكن ف الماتالب من اظهار قم المتغرات او النتائج بأستخدام اسلوبن:
.x2و x1الظهار قم x2او x1االول عن طرق كتابة المتغر مثل -
ونحدد المتغر الذي نرد طباعته بن القوسن مثل ()dispالثان عن طرق عبارة -
disp(x1) اوdisp(x2).
.او العبارة ( ف نهاة المتغر ;نستخدم الرمز ) او القم لمنع طباعة المتغر -
على المصفوفاتالمصفوفات والعمليات
لقد كانات جماع الحساابات التا أجرتهاا حتاى افن منلفاة مان أعاداد وحادة البعاد سنسامها أعاداد
مفردة. وتعتبر العملات المجراة على األعداد المفردة ه أساسات علام الراضاات. وبانفس الوقات,
اج إلاى أكثار إعاادة إجاراء وعندما رد الشخص إجراء نفس العملة علاى عادد مفارد أو أكثار, فساحت
MATLABالعملة عدة مرات, مما عن هدر ف الوقت والجهد. ولحل هذه المشكلة, عماد برناامج
إلى إجراء العملات الراضة على مصفوفة من البانات.
المصفوفة البسيطة
ة, إذ أن إنشااااء لماااع المصااافوفات بشاااكل مباشااار وبطرقاااة سلسااا MATLABتعامااال برناااامج
المصفوفات تم بطرقة سهلة جدا.
x = [1, 3, 7, 9, 20] :)1( مثال
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
23
حث y = sin (x) :(2)مثال x0
x = [0 0.1 * pi .2 * pi .3 * pi .4 * pi .5 * pi .6 * pi .7 * pi .8 * pi .9 *
pi pi]
y = sin (x)
علاى أن تبادأ بقاوس سااري ثام تادخل MATLABقتصر كل ما علك إلنشاء مصافوفة فا لغاة
فاأن sin (x)القم المطلوبة بفرا أو )فارزة( ثم أغلاق المصافوفة بقاوس منا. وعنادما تراد كتاباة
وقااوم بوضااع النتااائج فاا مصاافوفة xعلاام بأنااك ترااد حساااب الجااب لكال قاام MATLABبرناامج
برمجة األخرى.مختلفة عن لغات ال MATLABوتجعل هذه اإلمكانة yأخرى ه
عنونة المصفوفة أو الفهرسة
عنصر, مكن الوصول إلى أي عنصر منها باستخدام الفهرسة له. 11المصفوفة أعاله تتكون من
>> x (3)
ans =
0.6283
>> y (5)
ans =
0.9511
متعامدتنستخدم النقطتن ال MATLABولتعرك مجموعة من العناصر بنفس الوقت فأن برنامج
(:.)
>> x (1: 5)
ans =
0 0.3142 0.6283 0.9425 1.2566
وتعد حتى 1بأن تبدأ بالرقم 5 :1, وجبرك الرمز xهذه ه العناصر الخمسة األولى من المصفوفة
.5الرقم
:مثال
>> x (7: end)
ans =
1.885 2.1991 2.5133 2.8274 3.1416
x 0 0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
y 0 0.31 0.59 0.81 0.95 1 0.95 0.81 0.59 0.31 0
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
24
إلاى تخاار عنصار ماان endوهناا تكمال ماان العنصار الساابع وحتااى نهااة المصافوفة, إذ تشاار الكلماة
عناصر المصفوفة.
مثال:
>> y (3: -1: 1)
ans =
0.5878 0.3090 0
3باأن تبادأ باالرقم 1 :1- :3 هنا العنصر الثالث ثم الثان ثم األول بترتاب عكسا, وخبارك الرماز
.1وتقك عند الرقم 1وتعد نزوال بقمة
مثال:
>> x (2: 2: 7)
ans =
0.3142 0.9425 1.5708
2باأن تبادأ باالرقم 7 :2 :2 , وخبارك الرمازxهنا العنصر الثان والرابع والساادس مان المصافوفة
.7وتقك عندما تصل إلى الرقم 2وتعد نحو األعلى بــ
مثال:
>> y ([8 2 9 1])
ans =
0.8090 0.3090 0.5878 0
بالترتاب الاذي نرغاب yلوضاع عناصار المصافوفة [1 9 2 8] استخدمنا هناا مصافوفة أخارى
فه, حث وضع العنصر الثامن أوال والعنصر الثان ثانا, بنما وضع العنصر التاسع ثالثا والعنصر
.yعناون العناصر المرغوبة من المصفوفة [1 9 2 8] األول رابعا. ف الواقع تدل المصفوفة
مثال:
>> y ([1 1 3 4 2 2])
ans =
0 0 0.5878 0.8090 0.3090 0.3090
مثال:
رساالة عطا حاثقبل الدلل كرقم غار صاح ال MATLABالتالة بأن برنامج توض األمثلة
.خطأ
>> y (3.2)
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
25
Error
>> y (3.7)
Error
>> y (11.6)
Error طول المصفوفةخطأ بسبب تجاوز الدلل
إنشاء المصفوفة
األمار مقباول عبر كتابة كل العناصر ضمن المصافوفة, وهناا xلقد قمنا سابقا بادخال قم مصفوفة
عنصرا؟ 111تحوي احد عشر عنصرا فقط, ماذا لو احتوت xالن المصفوفة
المتعامدتن., وذلك باستخدام النقطتن xهناك طرقتان إلدخال عناصر المصفوفة
أمثلة:
1) >> x = (0: 0.1: 1) * pi
2) >> x = linspace (0, pi, 11 )
مثال:
>> a = [1: 7]
a =
1 2 3 4 5 6 7
مثال:
>> b = [linspace (1, 7, 5)]
b =
1 2.5 4 5.5 7
مثال:
>> a = (1: 7)
a =
1 2 3 4 5 6 7
مثال:
>> a = 1 : 5 , b = 1: 2: 9
a =
القمة النهائة عدد القم القمة االبتدائة
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
26
1 2 3 4 5
b =
1 3 5 7 9
مالح ة:
تفصال هنا تم إنشاء مصافوفتن, ولكان تاذكر بأناك تساتطع دماج التعبارن ضامن ساطر واحاد إذا لام
بفواصل:
>> c = [b a]
c =
1 3 5 7 9 1 2 3 4 5
.aمتبوعة بعناصر bمنلفة من عناصر cوبذلك تم إنشاء مصفوفة
تكييف المصفوفة
باالعتماد على المثال السابق, فاان فصال العناصار بفراغاات أو بفواصال عاداة حادد عناصار فا
ف حن أن استخدام الفاصلة المنقوطة جعل العناصر واقعة ف أسطر مختلفة. أعمدة مختلفة,
مثال:
>> c = [1 2 3 4 5]
c =
مصفوفة أفقة 5 4 3 2 1
مثال:
>> c = [1; 2; 3; 4; 5]
c =
مصفوفة عمودة )كل عنصر ف سطر( 1
2
3
4
5
مثال:
>> a = 1: 5
a =
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
27
1 2 3 4 5
مثال:
>> b = a'
b =
1
2
3
4
5
مثال:
>> k = b; (سبنت )المصفوفات
مثال:
>> g = [1 2 3 4 ; 5 6 7 8 ]
g =
مصفوفة متكونة من سطرن وأربعة أعمدة 4 3 2 1
5 6 7 8
مثال:
>> g = [1 2 3 4
5 6 7 8
9 10 11 12]
باأن نتقال إلاى ساطر جداد MATLABخبرنا برناامج Returnأو Enterكذلك فأن ضغط مفتا
أثناء إدخال قم المصفوفة.
مثال:
>> h = [1 2 3 ; 4 5 6 7]
Error عمدة غر متساوةعدد األ
:مالح ة
; half = g (2, 2) عنصر
.b إلى العمود a لقد استخدمنا هنا إشارة المنقول )المدور( لتحول السطر
تنزل سطر تخر
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
28
; full = g مصفوفة
مثال:
>> c = [1: 5; 2: 2: 10; 7: -1: 3]
c =
1 2 3 4 5
2 4 6 8 10
7 6 5 4 3
>> c (1, 2)
ans =
2
مالح ة:
طرقة أخارى لإلشاارة إلاى عناصار المصافوفة باساتخدام رقام واحاد فقاط, MATLABتقدم لغة
ولفهم هذه الطرقة جاب التخال باأن جماع عناصار المصافوفة مرتباة بشاكل عماود واحاد مكاون مان
أعمدة المصفوفة من األعلى إلى األسفل )أي عناصر العمود األول ثم الثان ثم الثالث وهكذا(.
>> c (12)
ans =
4
العمليات الحسابية بين المصفوفة والعدد المفرد
تجري العدد من العملات الحسابة كعملة اإلضافة والطر والضارب والقسامة بان العادد المفارد
وبن جمع عناصر المصفوفة.
مثال:
>> g – 2 % المعرفة سابقا g المصفوفة
ans =
-1 0 1 2
3 4 5 6
7 8 9 10
.2العدد gر من كل عنصر من عناصر المصفوفة وهنا ط
مثال:
>> 2 * g – 1
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
29
ans =
1 3 5 7
9 11 13 15
17 19 21 23
مثال:
>> 2 * g / 5 + 1
ans =
1.4 1.8 2.2 2.6
3 3.4 3.8 4.2
4.6 5 5.4 5.8
م الناتج على العدد س , ثم ق 2بالعدد gرب كل عنصر من عناصر المصفوفة أما ف هذه الحالة, فقد ض
لها الواحد. أضكوبعدها 5
العمليات الحسابية بين المصفوفات
مثاال العملااات الحسااابة المجااراة باان العملااات الحسااابة باان المصاافوفات بسااطة تمامااا ال تعتباار
باان مصاافوفات مختلفااة فالعملاات الحسااابة المجااراة ,أوضاا المفااردة. وبشااكل واألعاادادالمصافوفات
والحجااوم تعااد عملااات صااعبة التحدااد, وتعااد العملااات الحسااابة علااى المصاافوفات متساااوة األبعاااد
األمثلاةوالاك MATLABفا لغاة األساساةمن جمع وطر وضرب وقسمة من العملات األبعاد
التالة:
>> g % ة السابقةاستخدام المصفوف إعادة
g =
1 2 3 4
5 6 7 8
9 10 11 12
>> h = [1 1 1 1 ; 2 2 2 2 ; 3 3 3 3]
h =
1 1 1 1
2 2 2 2
3 3 3 3
>> g + h
gأما هنا فضرب كل عنصر من عناصر المصفوفة
ر من كل عنصر من العناصر , ثم ط 2بالعدد
1.الناتجة الرقم
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
30
ans =
2 3 4 5
7 8 9 10
12 13 14 15
>> ans – h
ans =
1 2 3 4
5 6 7 8
9 10 11 12
>> 2 * g – h
ans =
1 3 5 7
8 10 12 14
15 17 19 21
>> 2 * (g – h)
ans =
0 2 4 6
6 8 10 12
12 14 16 18
ح أضا بأن العملات الحسابة بن المصفوفات تعتمد نفس تسلسل أسبقة العملات المعتمد عناد ال
لكسار تلاك األولواة. إجراء العملات الحسابة على األعداد المفاردة, ومكان أضاا اساتخدام األقاواس
كما ومكن ضرب كل عنصر بالعنصر المنا ر له من المصافوفة األخارى أو قسامته شارط إن تسابق
إشارة الضرب أو القسمة بنقطة كما ف الشكل:
>> g .* h
ans =
1 2 3 4
10 12 14 16
27 30 33 36
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
31
عنصار بعنصاار عبار اسااتخدام إشاارة الضاارب hبالمصافوفة gولقاد قمناا هنااا بضارب المصاافوفة
المسبوقة بنقطة.
ضرب المصفوفتن MATLABأمام إشارة الضرب القاسة برنامج جعل وجود النقطة مالح ة:
عادة.بنما تخبر إشارة الضرب لوحدها البرنامج بان قوم بضرب مصفوفات عنصرا بعنصر,
>> g * h
Error
hعدد األعمدة للمصفوفة g الن عدد األسطر للمصفوفة
القسمة مسبوقة بنقطة كما فا إشارةقسمة مصفوفتن عنصرا بعنصر ممكنة عن طرق كتابة إنكما
المثال التال:
>> g ./ h
ans =
1.0000 2.0000 3.0000 4.0000
2.5000 3.0000 3.5000 4.0000
3.0000 3.3333 3.6667 4.0000
بتقساام MATLABإذا ساابقت إحاادى إشااارة القساامة بنقطااة, عناادها سااقوم برنااامج مالح ااة:
المصفوفتن عنصرا بعنصر. أما إذا كانت القسمة بدون نقطة, فاننا ستحدد قسمة مصفوفات عادة.
>> g .^ 2
ans =
1 4 9 16
25 36 49 64
81 100 121 144
. gولقد وجدنا هنا مربع كل عنصر من عناصر المصفوفة
القياسية المصفوفات
من إنشاء مصفوفات قاسة, وذلاك لتمتاع تلاك المصافوفات بخاواص MATLABمكنك برنامج
المصاافوفات التاا جمااع عناصاارها صاافرة أو مساااوة للواحااد, وماازات خاصااة, وتتضاامن أضااا
ثابتة. أعدادومصفوفات األعداد العشوائة والمصفوفات القطرة والمصفوفات الت عناصرها
>> ones (3) ( واحده)مصفوفة
ans =
1 1 1
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
32
1 1 1
1 1 1
>> zeros (2, 5) )مصفوفة صفرة(
ans =
0 0 0 0
0 0 0 0
>> size (g) )تحدد أبعاد مصفوفة(
ans =
3 4
>> ones (size (g))
ans =
1 1 1 1
1 1 1 1
1 1 1 1
فأن برنامج zeros (n)أو ones (n)عندما تبع اسم المصفوفة القاسة برقم مفرد مثل :مالح ة
MATLAB نشىء مصفوفات مربعةnn .تحتوي على أصفارا أو واحده على الترتب
>> eye (4) )مصفوفة الوحدة(
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> rand (3) )مصفوفة عشوائة(
ans =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
>> rand (1, 5)
األعمدة األسطر
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
33
ans =
0.4447 0.6154 0.7919 0.9218 0.7382
مثال:
>> d = pi;
>> d * ones (3, 4)
ans =
3.1416 3.1416 3.1416 3.1416
3.1416 3.1416 3.1416 3.1416
3.1416 3.1416 3.1416 3.1416
>> d + zeros (3, 4)
ans =
3.1416 3.1416 3.1416 3.1416
3.1416 3.1416 3.1416 3.1416
3.1416 3.1416 3.1416 3.1416
>> repmat (d, 3, 4) (34 d دباألبعا )تكرار القمة
ans =
3.1416 3.1416 3.1416 3.1416
3.1416 3.1416 3.1416 3.1416
3.1416 3.1416 3.1416 3.1416
مصفوفة فتكون حنئذ تكرر مصفوفات ولس قم. dمكن ان تكون :مالح ة
التعامل مع المصفوفة
العدد من الطرق للتعامل مع المصافوفات, وكانات هاذه الخاصاة MATLABبرنامج لكلقد امت
هاا أهاام مماازات البرنااامج, فمااا إن تحاادد المصاافوفة حتااى اازودك البرنااامج بااأقوى طاارق اإلدخااال,
تعلماات محاددة وممتعاة, أوالمصافوفة عبار اساتعمال تعاابر أجازاءترتاب بعا إعادة أوالتوسعة
. ولشار التعامال ماع MATLABوتعتبار معرفاة هاذه التعلماات مفتاا االساتعمال الفعاال لبرناامج
المصفوفات نأخذ األمثلة التالة:
>> A = [1 2 3; 4 5 6; 7 8 9]
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
34
A =
1 2 3
4 5 6
7 8 9
>> A (3, 3) = 0
A =
1 2 3
4 5 6
7 8 0
>> A (2, 6) = 1
A =
1 2 3 0 0 0
4 5 6 0 0 1
7 8 0 0 0 0
>> A (:, 4) = 4
A =
1 2 3 4 0 0
4 5 6 4 0 1
7 8 0 4 0 0
>> A (:, 4) = [4; 4; 4]
A =
1 2 3 4 0 0
4 5 6 4 0 1
7 8 0 4 0 0
>> A (:, 4) = [4 4 4]
Error بسبب عدم وجود فارزة منقوطة
مثال:
>> B = [7 8 9; 4 5 6; 1 2 3]
صفرا. (3 ,3)جعل العنصر ف الموقع
ال Aوبما ان المصفوفة 1تكون (6 ,2)جعل العنصر ف الموقع
تمتلك ستة أعمدة, لذلك سقوم البرنامج بتوسعها حسب الضرورة
وضع بق العناصر صفرا وتكون مستطلة.
4جعل جمع عناصر العمود الرابع تكون
4جعل جمع عناصر العمود الرابع تكون
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
35
B =
7 8 9
4 5 6
1 2 3
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> C = [A B(:, [1 3])]
C =
1 2 3 7 9
4 5 6 4 6
7 8 9 1 3
>> B = A (1: 2, 2: 3)
B =
2 3
5 6
عمود. كمصفوفة عمود واخذ أعمدتها عمود بعد Aبجعل المصفوفة Bتشكل المصفوفة مثال:
>> B = A (:)
B =
1
4
7
2
5
8
3
6
باضافة Aعبر توسع المصفوفة Cحصلنا على المصفوفة
.Bالعمودن األول والثالث من المصفوفة
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
36
9
مثال:
>> B = [1 2 3; 4 5 6; 7 8 9];
>> B = reshape (A, 1, 9)
B =
1 4 7 2 5 8 3 6 9
>> B = reshape (A, [1 9]);
B =
1 4 7 2 5 8 3 6 9
9*1إلى مصفوفة أحادة 3*3ف المثال أعاله إعاز تحول أبعاد المصفوفة الثنائة
مثال:
>> A = B
A =
1 2 3
4 5 6
7 8 9
>> B (:, 2) = [ ]
B =
1 3
4 6
7 9
. reshapeإجاد منقول )مدور( المصفوفة وإعادة تشكلها بالتعلمة مثال:
>> C = B'
C =
1 4 7
3 6 9
>> reshape (B, 2, 3)
عبر حذك كل اسطر العمود الثان من Bتمت إعادة صاغة المصفوفة
, [ ]األصلة, وعندما تضع أي عنصر مساوا للمصفوفة الفارغة B المصفوفة
فهذا عن انك ترد حذفها من المصفوفة وتقلصها لتحاف على العناصر المتبقة
بعد الحذك.
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
37
ans =
1 7 6
4 3 9
عمود بعد عماود وللحصاول علاى ساطر بعاد ساطر نعمال المادور reshapeتعمل تعلمة :مالح ة
(transport) .
.Cهنا حذفنا السطر الثان ف المصفوفة مثال:
>> C (2, :) = [ ]
C =
1 4 7
.Cبعناصر Aاستبدلنا عناصر السطر الثان من المصفوفة مثال:
>> A (2, :) = C
A =
1 2 3
1 4 7
7 8 9
مثال:
>> x = -3: 3
x =
-3 -2 -1 0 1 2 3
اساتخدام المصافوفات أضاا هناك المصفوفات المنطقة الناتجاة عان العملاات المنطقاة. كماا مكان
على العناصر اإلبقاء, وتم ف هذه الحالة كان حجمها مساوا لحجم المصفوفات المعنونة إذاالمنطقة
وها falseأي (0)عناصار وه العناصر المحققة للشارط بنماا تجاهال ال trueأي (1)ذات القمة
غر المحققة الشرط. ولنأخذ المثال التال: العناصر
>> abs (x) > 1
ans =
1 1 0 0 0 1 1
>> y = x (abs (x) > 1)
الت قمتها اكبر من الواحد. xمن تلك العناصر من المصفوفة yهنا تم إنشاء المصفوفة
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
38
y =
-3 -2 2 3
ومكن العمل مع المصفوفات الثنائة المنطقة كما عملنا مع األحادة المنطقة, كما ف المثال التال:
>> B = [5 -3; 2 -4]
B =
5 -3
2 -4
>> x = abs (B) > 2
x =
1 1
0 1
>> y = B (x)
y =
5
-3
-4
ترتيب المصفوفة
عندما تعطى متجه من البانات فان أهم عملة مكن إن نحتاجها وتود تطبقها ه الترتب, ونمن
كما هو واض ف المثال التال:, MATLABعملة الترتب ف لغة sortاالعاز
x = randperm (8) << )إعاز ترتب األرقام بصورة عشوائة(
x =
7 5 2 1 3 6 4 8
>> [y, indx] = sort (x)
y =
1 2 3 4 5 6 7 8
indx =
4 3 5 7 2 6 1 8
المواقع القدمة الترتب الجدد
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
39
وعندما تكون المصفوفة ثنائة البعد فان عملة الترتب تتم بشكل مختلك وكما ل:
)عمود بعد عمود(
>> A = [randperm (6); randperm (6); randperm (6); randperm (6)]
A =
1 2 5 6 4 3
4 2 6 5 3 3
2 3 6 1 4 5
3 5 1 2 4 6
>> [As, idx] = sort (A)
As =
1 2 1 1 3 1
2 2 5 2 4 3
3 3 6 5 4 5
4 5 6 6 4 6
idx =
1 1 4 3 2 2
3 2 1 4 1 1
4 3 2 2 3 3
2 4 3 1 4 4
فوفة جزئيةالبحث عن مص
دلل العناصر الت تحقق شرطا معنا, والموجاودة أوإن تعرك موقع األحانف بع من المفد
, والذي عاد findبتحقق هذه الغاة عبر االعاز MATLABضمن مصفوفة معنة. قوم برنامج
المثال التال:, والك trueالذي تكون نتجة تحققه لشرط ما موقع العنصر أولك دلل
>> x = -3: 3
x =
-3 -2 -1 0 1 2 3
>> k = find (abs (x) > 1)
k = )الموقع(
1 2 6 7
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
40
>> y = x (k)
y =
-3 -2 2 3
>> y = x (abs (x) > 1)
y =
-3 -2 2 3
فمثال: ,)عمود بعد عمود( أن عمل ف المصفوفات الثنائة البعد أضا findوستطع االعاز
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> [i, j] = find (A > 6)
i =
3
3
3
j =
1
2
3
وجد عناصر القطر الرئس للمصفوفة. diagاالعاز :مالح ة
A =
9
8
8
7
987
654
997
998
>> diag (A)
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
41
ans =
7
8
8
9
:مالح ة
الذن وجدان اكبر واصغر عنصر ف المصافوفة max, min الدالتن MATLABوفر برنامج
ومواقعهما.
ف حالة المصفوفة األحادة:
>> v = rand (1, 6)
v =
0.3046 0.1897 0.1934 0.6822 0.3028 0.5417
>> max (v)
ans =
0.6822
>> [mx, i] = max (v)
mx =
0.6822
i =
4
>> min (v)
ans =
0.1897
>> [mn, j] = min (v)
mn =
0.1897
j =
2
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
42
ف حالة كون المصفوفة ثنائة البعد:
>> A = rand (4, 6)
A =
0.1509 0.8537 0.8216 0.3420 0.7271 0.3704
0.6979 0.5936 0.6449 0.2897 0.3093 0.7027
0.3784 0.4966 0.8180 0.3412 0.8385 0.5466
0.8600 0.8998 0.6602 0.5341 0.5681 0.4449
>> [mx, r] = max (A)
mx =
0.8600 0.8998 0.8216 0.5341 0.8385 0.7027
r =
4 4 1 4 3 2
:مالح ة
>> max (A'); )اكبر عنصر لكل سطر(
>> [mn, r] = min (A)
mn =
0.1509 0.4966 0.6449 0.2897 0.3093 0.3704
r =
1 3 2 2 2 1
:مالح ة
>> min (A'); لكل سطر( )اصغر عنصر
<<مالح ة: اكبر عنصر ف مصفوفة ثنائة البعد.
mmx = max (mx)
mmx =
0.8998
>> [mmx, i] = max (A (:))
mmx =
0.8998
i = 8
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
43
توجد طرقة أخرى: :مالح ة
>> z = max (max (A));
>> z = min (min (A));
.sumنفس الشء لحساب المجموع :مالح ة
>> z = sum (sum (A));
توابع التعامل مع المصفوفة
عنوناااة المصااافوفات والمقااادرة علاااى التعامااال ماااع إلاااى باإلضاااافة, MATLABااازودك برناااامج
صفوفات, وه سهلة التطبق مثل:بعملات التعامل مع الم, المصفوفات الت شرحناها سابقا
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> flipud (A) up-down قلب المصفوفة باتجاه
ans =
7 8 9
4 5 6
1 2 3
>> fliplr (A) left-right قلب المصفوفة باتجاه
ans =
3 2 1
6 5 4
9 8 7
>> triu (A) (upper) استخالص الجزء المثلة العلا
ans =
1 2 3
0 5 6
0 0 9
>> tril (A) (lower) استخالص الجزء المثلة السفلى
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
44
ans =
1 0 0
4 5 0
7 8 9
>> g = det (A); )حساب محدد المصفوفة )قمة
>> h = inv (A); مصفوفة(معكوس المصفوفة )حساب
>> i = eig (A); حساب القم الذاتة للمصفوفة
>> j = eye (3) حساب مصفوفة الوحدة
j =
1 0 0
0 1 0
0 0 1
>> trace (A); حساب مجموع عناصر القطر الرئس
حجم المصفوفة
ثالثااة البعااد غاار معااروفن وكناات أوثنائااة أو أحادااةبعااد مصاافوفة أوتعاارك حجاام أن إذا أردت
مكنك من خالل االعااز MATLABبع العملات الراضة, فان برنامج إلجراءبحاجة لحجمها
length و size و numel:والك األمثلة التالة
>> A = [1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
>> S = size (A)
S =
2 4
.(4)بنما عط العنصر الثان عدد األعمدة (2)عبر العنصر األول عن عدد األسطر
>> [r, c] = size (A)
r =
2
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
45
c =
4
>> r = size (A, 1)
r =
2
>> c = size (A, 2)
c =
4
ثال:العدد الكل لعناصر مصفوفة فم numelعد االعاز
>> numel (A)
ans =
8
عدد العناصر الموجودة ضمن البعد األطول للمصفوفة, كما ل: lengthبنما عد االعاز
>> length (A)
ans =
4
>> B = -3: 3
B =
-3 -2 -1 0 1 2 3
>> length (B)
ans =
7
>> min (size (A)) مصفوفة ثنائة A
ans =
2
طرقة تولد مصفوفة بالدمج. مالح ة:
>> x = [1 2; 3 4];
>> y = [x x .^ 2; x .^ 3 x .^ 4];
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
46
مثال: عنصر: 12اعداد صححة موجبة, عدد عناصرها عرف مصفوفة عشوائة عناصرها
طباعة هذه العناصر. -1
اجاد اكبر واصغر عنصر. -2 معدل هذه العناصر. -3
ترتب العناصر تنازلا وتصاعدا. -4
solve:
x=fix(20*rand(1,12)+1);
disp(x)
xmax=max(x)
xmin=min(x)
mean(x)
x1=sort(x)
x2=fliplr(sort(x))
مثال:
, ثم جد ما ل: عرف مصفوفة عشوائة عناصرها اعداد صححة موجبة
معدل كل عمود من المصفوفة. -1 طباعة عناصر القطر الرئس, مجموع عناصر القطر الرئس. -2
اكبر عدد واصغر عدد ف كل صف من المصفوفة. -3 اكبر عدد واصغر عدد ف كل عمود من اعمدة المصفوفة. -4 المصفوفة.جد المحدد ومعكوس -5
solve:
X=fix(20*rand(6,6)+1);
disp(x)
mean(x)
disp(diag(x))
sum(diag(x))
xmax=max(x’)
xmin=min(x’)
xmax=max(x)
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
47
xmin=min(x)
det(x),inv(x)
المرتبةالسالسل
تكوين السالسل المرتبة:
1- X1=1:10
x =
1 2 3 4 5
2- X2=2:2:20
x =
2 4 6 8 10 12 14 16 18 20
3- X3=1:2:9
X3 =
1 3 5 7 9
4- X4=5:5:25
x =
5 10 15 20 25
5- X5=20:-1:10
X5 =
20 19 18 17 16 15 14 13 12 11 10
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
48
جمل اإلدخال واإلخراج
اإلدخالجمل
عملة التنسب منها: إلى باإلضافة لإلدخالهناك عدة صغ
:inputتعليمة -1
(:1مثال )
>> x = input ('enter x: ')
enter x:
.األعداد إدخال (:2مثال )
n = input ('enter n:');
m = input ('enter m:');
for i = 1: n
for j = 1: m
result (i, j) = i ^ j;
end;
end;
رمزة. أسماء إدخال (:3مثال )
clc;
clear;
z = input ('enter name', 's');
)على شكل مربع حوار(: لإلدخالصيغة ثابتة -2
مثال:
prompt = {'enter x'};
def = {'20'};
dlgTitle = 'Input for my program';
lineNo = 1; % عدد السطور المدخلة
stringللداللة على إدخال
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
49
answer = inputdlg (prompt, dlgTitle, lineNo, def);
;x = str2num (answer {1})% ف حالة التعامل مع رقم num إلى stringتحول
اإلخراججمل
منها: لإلخراجهناك عدة صغ
:disp او ايعاز تعليمة -1
:(1) مثال
>> d = 15;
>> disp (d);
15
:(2) مثال
>> a = 'ali';
>> disp (a);
ali
:(3) مثال
>> sum = 9.8;
>> disp (['sum = ', num2str (sum)]);
sum = 9.8
:(4) مثال
>> disp ('computer');
computer
(:1) مالح ة
قمة ذات ناوع باان واحاد ضامن الجملاة الواحادة )كال جملاة ناوع disp كون محتوات أنجب
بان واحد(.
القمة األولى من مصفوفة الخالا
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
50
(:2) مالح ة
)جاب من قمة ذات نوع بانة مختلفة ضامن الجملاة الواحادة أكثر dispف حالة كون محتوات
.(((3) )مثال [ ] ان تجمع القم ف قوسن كبرن
:msgbox او ايعاز تعليمة -2
>> msgbox ('ok', 'result')
:fprintf او ايعاز ( تعليمة3)
(:1) مثال
>> y = 1.2;
>> x = 100.5;
>> fprintf ('variable x is % 6.3f\n', x);
>> fprintf ('variable y is % 6.3f\n', y);
variable x is 1.200
variable y is 100.500
مراتب بعد الفارزة العشرة. 3مراتب منها 6تم حجز بأنهوهذا عن
(:2) مثال
>> fprintf ('% 8.3f\n', round (3.8));
4.000
(:1) مالح ة
مختلفة للطباعة وكما ل:مكن استخدام صغ
c%رمز واحد
d% تدون عشري
e%تدون ائ
الصندوقعنوان
) نوع بان رمزي( هالشء المطلوب طباعت
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
51
f% ة الثابتة طتدون النق
i%تدون عشري
o%تدون ثمان
s%تدون رمزي
x% عشر تدون سداس
(:2) مالح ة
وسات هر االعاازات بادون فاارزة منقوطاةكتاباة من خاالل والنتائج واألسماء األعدادمكن طباعة
.Command Window األمر ف نافذةالنتائج
الجمل الشرطية
العملات المنطقة والمقارنة مثلماا ادعم العملاات الراضاة, وتهادك MATLABدعم برنامج
و خطااأأ صاا بالتاا جاااب عنهااا ل ساائلة أجوبااةالعملااات والمعااامالت المنطقااة الحصااول علااى
(True/False).
عادد غار أي إنف تعاملها مع جمع التعابر المنطقة وعملات المقارنة MATLAB تعتبر لغة
جمااع التعااابر المنطقااة وعملااات إخااراج, كمااا وكااون Falseوعتباار الصاافر Trueصاافري هااو
والعادد صافر مان اجاال Trueالمقارناة عباارة عان مصافوفات منطقاة تحاوي العادد واحاد مان اجال
False.
وتعتبار المصاافوفات المنطقااة نوعااا خاصااا ماان المصاافوفات العددااة, كمااا مكاان عنونااة المصاافوفة
.العددةنفس طرقة عنونة باق المصفوفات الت استخدمها سابقا ضمن التعابر المنطقة ب
perators O tionalelaR)العوامل العالئقية( : معامالت المقارنة
المقارنة الشائعة والمدرجة ف الجدول التال: اإلشاراتتتضمن معامالت المقارنة كل
الوصف معامل المقارنة
أصغر من >
ساوي أوأصغر =>
أكبر من <
ساوي أوأكبر =<
=( )لك نمزها عن المساواة إشارة ==
اشارة عدم المساواة ~=
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
52
مكن استخدام معامالت المقارنة للمقارنة بن مصفوفتن لها نفس الحجم, أو للمقارنة بن مصفوفة
الحالاة مقارناة كال عنصار مان المصافوفة ماع العادد المفارد, وتكاون المصافوفة هاذهوعدد مفرد وتتم
لتال:االمثال هالناتجة بنفس حجم المصفوفة الت تمت مقارنتها كما بن
(:1) مثال
>> a = 1; b = 5;
>> x = a > b
x =
0
>> A = 1: 9, B = 9 - A
A =
1 2 3 4 5 6 7 8 9
B =
8 7 6 5 4 3 2 1 0
>> tf = A > 4
tf =
0 0 0 0 1 1 1 1 1
الناتجة فا مواقاع المصفوفةهر االصفار ف , وت4الت ه أكبر من Aالعناصر من أوجدنالقد
.A > 4عندما 1هر الرقم , بنما A ≤ 4العناصر عندما
>> tf = (A == B)
tf =
0 0 0 0 0 0 0 0 0
.Bالت تساوي العناصر ف المصفوفة Aعناصر إجادلقد تم هنا
مالح ة:
)=( و )==( تعنان شئا مختلفاا, حاث قاوم )==( بمقارناة متغارن وتعاد اإلشارتنالح بان
العملاة إخاراج إلسناد)=( متساون, بنما تستخدم الم كون إذاكانا متساون وصفرا إذاالعدد واحد
متغر. إلى
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
53
( واصافارا )فا thrمنطقة عناصرها واحدات )ف حالاة اكبار مان أحادةلتولد مصفوفة (:1) مثال
.(thr تساوي أو ناصغر محالة
>> inddent = [10 17 22 0 7 3 2];
>> thr = 7;
>> y = (indent > thr)
y =
1 1 1 0 0 0 0
( واصافارا )فا thrمان رحالاة اكباعناصارها نفاس العناصار )فا أحادةلتولد مصفوفة (:2) مثال
.(thr تساوي أوحالة اصغر من
>> z = inddent .* (inddent > thr)
z =
10 17 22 0 0 0 0
peratorsOogical L: المعامالت المنطقية )العوامل المنطقية(
هار الجادول التاال المعاامالت نفا تعاابر المقارناة, و أوتوفر المعامالت المنطقة طرقة لادمج
MATLAB:المنطقة الموجودة ف لغة
الوصف المعامل المنطقي
& AND )و(
| OR )أو(
~ NOT )نف(
على استخدام المعامالت المنطقة: األمثلةوسنقدم لك فما ل بع
>> a = 1;
>> b = 5;
>> x = a ~= b
x =
1
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
54
>> b = (1 == 1) & (2 ~= 3)
b =
1
>> b = (1==1) | (2 ~= 3)
b =
1
>> b = (1==1) & not ((2 ~= 3))
b =
0
>> A = 1: 9; B = 9 - A;
>> tf = A > 4
tf =
0 0 0 0 1 1 1 1 1
4الت قمها اكبر من Aعناصر باجادحث قام
>> tf = ~ (A > 4)
tf =
1 1 1 1 0 0 0 0 0
.توالواحدالقد قام البرنامج بقلب النتجة السابقة, وتعن استبدال مواقع االصفار
>> tf = (A > 2) & (A < 6)
tf =
0 0 1 1 1 0 0 0 0
6.واقل من 2اكبر من Aالعبارة العدد واحد عندما كون العنصر من هذهحث تعد
أسبقية المعامل
باجااد قماة تعبار مساتندا إلاى مجموعاة مان القواعاد النا ماة ألسابقة MATLABقاوم برناامج
المعامل, وتحسب المعامالت ذات األسبقة العلا قبل المعامالت ذات األسبقة الدنا, وتقام المعاامالت
المان. وشار الجادول التاال قواعاد أسابقة المعامال التا إلاىذات األسبقة المتساوة مان الساار
.MATLABدها برامج عت
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
55
END-ELSE-IF الصيغة
ستخدم هذا االعاز لتنفذ عبارة او عدة عبارات عند تحقق شرط معن والصغة العامة له ه:
if expression
(commands) العبارة او العبارات المطلوبة عند تحقق الشرط
end
كانااات قماااة التعبااار إذا endو if( الواقعاااة بااان العباااارتن commands) األواماااروساااتنفذ
(expression) تكونtrue:والك المثال التال .
>> x = 10;
>> if x == 10
disp ('ok')
end;
بتنفذ العبارة او العبارات المطلوبة عند تحقق الشرط المطلوب وبعكس حث قوم الماتالب ذلك تم تجاوز هذه العبارات.
:اخر مثالاذا كان المعدل suesاكتب برنامج الدخال ثالثة اعداد وحساب المعدل لها ثم طباعة عبارة
ناجح:
األسبقيةمستوى المعامل
األعلى ( األقواس )
.(^, ^) (, القوة'المدور)
(~النف ) إشارة
(./, /.(, القسمة )*, *الضرب )
(-) ) (, والطر الجمع
):( المتعامدتنمعامل النقطتن
(, <) ناكبر م (,=>ساوي) أوواصغر (,>) أصغر من
(~)= )==(,عدم المساواة المساواة (,=<ساوي) أواكبر من
ANDالجمع المنطق)&(
األدنى OR( |) المعامل المنطق
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
56
a1= input(‘the first degree=’) a2= input(‘the second degree=’) a3= input(‘the third degree=’) av= (a1+a1+a3)/3; if av >= 50 disp (sues) end
ifصيغة اخرة للـ
if expression (condition) ---------------------- العبارة او العبارات المطلوبة عند تحقق الشرط ---------------------
else if expression (condition) ---------------------- العبارة او العبارات المطلوبة عند تحقق الشرط ---------------------
else if expression (condition) ---------------------- العبارة او العبارات المطلوبة عند تحقق الشرط ---------------------
.
. end
بنماا ,trueالقماة expressionمتلك التعبر اف حال األوامرمن األولىحث ستنفذ المجموعة
.falseالقمة expression التعبر امتلك إذاتنفذ المجموعة الثانة
التالية: األمثلةواليك
(:1مثال )
>> x = 10;
>> if x == 10
msgbox ('ok', 'result');
(:2مثال )
>> if x == 10
msgbox ('ok', 'result');
else
msgbox ('no', 'result');
end;
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
57
(:3مثال )
>> x = 11;
>> if x == 1
disp ('1');
elseif x == 2
disp ('2');
else
disp ('3');
end;
اإلخراج
3
جمل الدوران والتكرار
مجموعة من جمل الدوران والتكرار وه: MATLABتوفر لغة
)ايعاز التكرار( for جملة
لعادد معان مان المارات األوامرمن والذي ستخدم لتكرار تنفذ مجموعة for جملة او اعازتقوم
:كما ل forوبخطوة معنة, وتعطى الصغة العامة لحلقة
for i = x1: x3: x2
(commands) اىخطاخ اىشاد تنشاسا
end;
x1مان القماة االبتدائاة endو forالواقعة بان عباارت (commands)األوامرحث عاد تنفذ
كما ف المثال التال: .x3مقدارها وبزادة x2القمة النهائة إلى
مثال:
>> for n = 1: 10
x (n) = sin (n * pi / 10);
end;
>> x
x =
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
58
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
كما ل: هأعال التكرارومكن تفسر
التالاة, endب قماة العباارة الموجاودة حتاى عباارة اجاب حسا 10 إلاى 1مان nـمن اجل كل قمة ل
= n إلاىوهكذا حتى تصل n = 2وتكون ف الدورة الثانة ,n = 1 األولىف الدورة nتكون قمة
10.
(.10..1عشوائة قمتها ) عدادأ 10تولد مثال:
>> array = randperm (10)
array =
8 2 10 7 4 3 6 9 5 1
>> for n = array
x (n) = sin (n * pi / 10);
end;
>> x
x =
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
.array( معطاة بالمصفوفة 10( و )1هنا قما عشوائة بن ) n سأخذ متغر الحلقة
مالح ة:
المثال التال:كما ف متداخلة, forعدة حلقات إنشاءمكن
>> for n =1: 5
for m = 5: -1: 1
A (n, m) = n ^ 2 + m ^ 2;
end;
disp (n);
end;
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
59
اإلخراج
1
2
3
4
5
>> A
A =
2 5 10 17 26
5 8 13 20 29
10 13 18 25 34
17 20 25 32 41
26 29 34 41 51
:أمثلة
>> for i = 1: 10
disp (i);
end;
اإلخراج
1
2
3
.
.
10
>> for i = 0: 2: 10
disp (i);
end; اإلخراج
0
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
60
2
4
6
8
10
>> for i = 10: -2: 1
disp (i);
end;
اإلخراج
10
8
6
4
2
>> for i =1: 10
for j = 1: 10
mult (i, j) = i * j;
end;
end; 1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 3 6 40
. . . . . . . . . .
. . . . . . . . . .
10 20 30 40 50 60 70 80 90 100
WHILEجملة
forعلى عكس حلقات والذي ستخدم لتكرار تنفذ مجموعة من الخطوات مرتبط بحدوث شرط معن
والصغة العامة ه : ,التكراراتالت تندي عددا معنا من
)طبع جدول الضرب(
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
61
While expression (condition) ---------------------- الخطوات المراد تكرارها ----------------------
---------------------- End
وعبارة Whileحث ان برنامج الماتالب قوم بتكرار تنفذ خطوات المحصورة بن عبارة
end مادام الشرط الموجود بعد كلمةWhile وقمته متحققtrue وتوقف التكرار عند
. falseاي صبح توقف الشرط عن التحقق
(:1) مثال
>> x = 1;
>> while x < 25
disp (x);
x = x + 1;
end; اإلخراج
1
2
3
.
.
24
(:2) مثال
>> num = 0; EPS = 1;
>> while (1 + EPS) > 1
EPS = EPS / 2;
num = num + 1;
end;
>> num
num =
53
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
62
ة: حمال
وكاالت: whileو forهناك طرقة قانونة للخروج من حلقة
(whileوكذلك for)ف حال تحقق الشرط تم الخروج من الدوارة
s = 0; s = 0;
for i = 1: 100 x = 1;
s = s + i; while x < 100
if s > 250 s = s + x;
break; if s > 250
end; break;
end; end;
x = x + 5;
end;
اإلخراج اإلخراج
i = 22 x = 51
s = 253 s = 286
مالح ة:
ضامن حلقاة داخلاة واقعاة ضامن حلقاات اكبار فاان البرناامج break او االعاز التعلمةأذا وجدت
.األكبرخرج من الحلقة الت صادك فها التعلمة وال خرج من الحلقات
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
63
MATLABملفات البيانات الخاصة ببرنامج
وفاق صاغة خاصاة ببرناامج ,MATLABمكن تخزن المتغر الموجود ف ساحة عمل برنامج
MATLAB األمر, وذلك عن طرق استخدام save :كما ل
>> save
فا ملاك ذي صاغة (Workspace)وبذلك تم خزن جمع المتغرات الموجودة ف ساحة العمال
الملفااات ذات صااغة الثنائااة, هااذهمجلااد الحااال. وتحاااف الوضااع فاا matlab.matثنائااة باساام
المتغاارات أسااماءعلااى كاماال القاام وبدقااة مضاااعفة, كمااا وتخاازن ,MATLABرنااامج والخاصااة بب
أناواعها متوافقاة تماماا ماع بقاة إنماا مساتقلة, أصاولذات M-filesبنفس الدقة, وال تعتبار ملفاات
نساتطع تخازن أي متغاار وفاق ناوع مان الملفااات إذ, MATLABملفاات الموجاودة فا برناامجال
معالجة خاصة للملك. أة إجراءدون األخرى األنواعوفتحة من قبل
لتخزن متغرات معنة كما ف المثال التال: save األمرستخدم أنومكن
>> save var1 var2 var3
نحدد اسم أن, ومكن matlab.matضمن الملك var3و var2و var1أي قم بتخزن المتغرات
كما ل: save ل مر أولالملك كوسط
>> save filename var1 var2 var3
هضاامن ملااك اساام var1, var2, var3ن المتغاارات وتفساار التعلمااة السااابقة كمااا لاا: خااز
filename.mat.
save بااألمر إنشاانهاملفات البانات الت تام األمرفت هذا إذ save األمر load األمروعاكس
كما ل:
>> load
سواء ف أوال هحثما وجدت matlab.matكل المتغرات الت تجدها ضمن الملك وه تعن حمل
المتغارات المخزوناة أساماءواتم تخازن .MATLABف مسار البحث لبرناامج أوالمجلد الحال
المطابقاة لهاا فا األساماءل فاوق المتغارات ذات وساتحم ,ف سااحة العمال matlab.matف الملك
حال وجودها.
جااب ان نااذكر اساام الملااك وقائمااة (MAT-file)ولتحماال متغاارات معنااة ماان ملااك ذي الحقااة
المتغرات كما ل:
>> load filename var1, var2, var3
العمل. ةساح إلى var1, var2, var3وحملت المتغرات filename.matلقد تم هنا فت الملك
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
64
file-M
احد االمكانات الت قدمها الماتالب ه امكانة كتابة البرامج والت تعن كتابة مجموعة من االوامر ومن ثم تنفذها مرة واحدة اي بعكس الطرقة المعتادة M-fileواالعازات وخزنها ف ملف سمى
برمج الوقت والجهد حث تنفذ مجموعة ف تنفذ االعازات ف نافذة االوامر, هذه االمكانة توفر للمصعب تصححها ومكن ادخال االعازات من جدد وكذلك اذا اردنا اعادة M-fileمن االوامر بدون
جنبنا كل M-fileتنفذ االعازات جب اعادتها بالكامل, ف حن ان كتابة البرنامج وخزنه من خالل
تم خزنه ومكن العودة اله ف اي وقت اخر.هذه الصعوبات باالضافة الى ان البرنامج س
ولكتابة البرنامج نقوم باالت:
باحدى الطرقتن: M-fileفتح ملف -1
file→new→ M-file
سوف تظهر من خالل االمر الموجود ف شرط االدوات ف برنامج الماتالب
فارغة نقوم بكتابة االعازات كما كنا نرد تطبقها ف نافذة االوامر M-fileنافذة
وف نفس التسلسل المنطق بعد ذلك جب خزن الملف قبل تنفذه وتم الخزن من
لتظهر نافذة نكتب من خاللها اسم الملف saveنختار منها االمر fileخالل قائمة
أ االسم برقم, ان الحتوي االسم ونحدد مكان الخزن والذي شترط فه ) ان البد
(.+ * − ÷على مسافة فاصلة, ان الحتوي على الرموز الراضة
عند خزن البرنامج تم تنفذه باحدى الطرق التالة: -2
من خالل نافذةM-file نختار القائمةdebug ومن ثم نختار االعازrun.
من خالل نافذةM-file نضغط على المفتاحF5.
افذة من خالل نM-file ومن شرط االدوات نختار االداة.
من خالل نافذة االوامر نكتب اسم الملف ونضغط المفتاحEnter.
مثال:
Q\ Write program in MATLAB using M-file and save the program with name ‘prog’ and run it in used four methods.
1 x=-3:0.2 =3;
2 y=cos(x);
3 [x,y]=meshgrid(x,y);
4 Z=peaks(x,y);
5 mesh(x,y,z)
: مالحظة
لك نجعل البرنامج ف الماتالب على شكل دالة اي ان البرنامج ستقبل مدخالت وعط نتائج جب والذي صغته العامة : functhinان تكون الخطوة االولى ف البرنامج ه اعاز الـ
Function [output]_name function[input]
هذه الحالة تحول البرنامج الى دالة وعند التنفذ جب اوال حفظ البرنامج باسم الدالة ومن ثم وف كتابة االمر المتمثل والمدخالت ف نافذة االوامر.
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
65
مثال:
Q\ Compute the value of function y=x3+x2 using matlab after inter value of x:
function y=prog2(x)
y=x^3+x^2
>> prog2(3)
ans
36
ايعازات المجموعات والبتات وااليعازات القاعدية
ايعازات المجموعات
تجمع منت م لعدد من القام وانطالقاا مان هاذا ألنهامجموعات إنهانستطع تقم المصفوفات على
المثاال التاال وقدم لك الختبار ومقارنة المجموعات, توابععدة MATLABم لك برنامج الفهم, قد
ابسط اختبار للمساواة:
>> a = rand (2, 5);
>> b = rand (2, 5);
>> isequal (a, b)
ans =
0
>> isequal (a, a)
ans =
1
:اإلدخالبحذك العناصر المتكررة من وسط uniqueوقدم لك المثال التال االعاز
>> a = [2: 2: 8; 4: 2: 10]
a =
2 4 6 8
4 6 8 10
>> unique (a)
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
66
ans =
2
4
6
8
10
كماا ismemberومكن تحدد مجموعاة العناصار المشاتركة بان وساطن عبار اساتخدام االعااز
ل:
>> a = 1: 9
a =
1 2 3 4 5 6 7 8 9
>> b = 2: 2: 9
b =
2 4 6 8
>> ismember (a, b)
ans =
0 1 0 1 0 1 0 1 0
>> ismember (b, a)
ans =
1 1 1 1
.التحاد مجموعتن unionكذلك االعاز
>> union (a, b)
ans =
1 2 3 4 5 6 7 8 9
.لتقاطع مجموعتن intersect إعازكذلك
>> intersect (a, b)
ans =
2 4 6 8
للفضلة بن مجموعتن. setdiff إعازكذلك
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
67
>> setdiff (a, b)
ans =
1 3 5 7 9
مالح ة:
مصفوفات خالا. أوالعملات السابقة على مصفوفات رمزة إجراءمكن
البت إيعاز
العملاات بااجراءالمعامالت المنطقة الت ذكرناها ساابقا, انمن البارامج توابعاا تسام إلى إضافة
الصححة. األعدادالمنطقة على بتات منفصلة من
>> bitand (3, 4)
ans =
0
>> bitor (3, 4)
ans =
7
>> bitxor (13, 27)
ans =
22
>> bitcmp (20, 5) لخمس بتات 21متمم العدد
ans =
11
>> bitset (30, 1) 1كون 31من ىجعل البت األول
ans =
31
>> bitget (30, 1) 31من ىجلب البت األول
ans =
0
>> bitshift (3, 2) )إزاحة للسار )موقعن
ans =
الموقع
العدد الموقع
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
68
12
>> bitshift (12, -2) )إزاحة للمن )موقعن
ans =
3
>> z = [7 5 4 ; 3 8 9];
>> circshift (z, 1)
ans =
3 8 9
7 5 4
االيعازات القاعدية
وفاق أخرىقواعد إلىالعشرة األعدادالت تحول األوامرالعدد من MATLABنمن برنامج
ناالعااازالثنائااة عباار واألعاادادالعشاارة األعاادادصااغ سالساال رمزااة ونسااتطع التحواال باان
bin2dec,dec2bin :كما ل
>> a = dec2bin (17)
ans =
10001
>> class (a)
ans =
char
>> bin2dec (a)
ans =
17
>> class (ans)
ans =
double
>> dec2bin (17, 6)
ans =
01001
عدد الخانات
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
69
( عبر االعازن16العد فها العدد أساس)كون العشرة والستة عشرة األعدادتحول بن الوتم
hex2dec وdec2hex :كما ل
>> a = dec2hex (2047)
a =
7FF
>> dec2hex (2047, 4)
ans =
07FF
>> class (a)
ans =
char
>> hex2dec (a)
ans =
2047
>> class (ans)
ans =
double
عدد الخانات
رمزي
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
70
اإلدخال اإلخراج
الدوال والبرامج الفرعية
ه: للدوال . والصغة العامةMATLAB لغة تستخدم الدوال بشكل واسع ف
[out1, out2,…, outn] = function_name (input1, input2,...,inputn);
التالة: األمثلةكما ف
(:1) مثال
>> x = [1, 2, 3, 4, 5, 6, 7, 8];
>> y = [11, 12, 13, 2, 9, 70];
>> avgx = average1 (x);
>> avgy = average1 (y);
function result = average1 (z);
L = length (z);
sum1 = sum (z);
result = sum1 / L;
>> avgx
avgx =
4.5000
>> avgy
avgy =
19.5000
(:2) مثال
>> res1 = mult2 (x);
>> res2 = mult2 (y);
تدخالالم المخرجات
اسم الدالة
البرنامج الرئس
البرنامج الفرع )الدالة(
البرنامج الرئس
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
71
function result = mult2 (x);
result = 2 * x;
>> res1
res1 =
2 4 6 8 10 12 14 16
>> res2
res2 =
22 24 26 4 18 140
(:3) مثال
>> [sin_x, cos_x, x_2] = multf (x);
>> [sin_y, cos_y, y_2] = multf (y);
function [x1, x2, x3] = multf (x);
x1 = sin (x);
x2 = cos (x);
x3 = 2 * x;
>> plot (sin_x) لرسم النقاط
البرنامج الفرع )الدالة(
البرنامج الرئس
البرنامج الفرع )الدالة(
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
72
(:4) مثال
امتة داىح تاستخذا تشاذ اىاتالب ىحساب اىق اىتاىح :
z1=x2+sin(y)-tan(z)
z2= cos(z-y)+log(x)
solve:
function[z1 z2]=prog3(x,y,z)
z1=x^2+sin(y)-tan(z)
z2= cos(z-y)+log(x)
end
>>prog3(1,2,3) تفز ف شاشح اىتفز
(:5) مثال
:nامتة تشاذ ىحساب ضشب
solve:
function fact(n)
ni=0
for m=1:n
ni=ni*ni
end
(:6) مثال
:sامتة تشاذ ىحساب قح
S=1/(x+y)+ 1/(x+y)2+ 1/(x+y)
3+…..1/(x+y)
n
solve:
function s=prog(x,y,n)
s=0;
for m=1:n
s=s+1/(x+y)^ n
end
نقوم بحفظه بأسمprog : ثم نذهب الى نافذة االوامر لك ننفذه
>>prog(3,2,5)
. 90—10س/ اكتة دانح نحساب مجموعح االعذاد انمحصورج تين
انمتسهسح انتانيح:س/ اكتة دانح نحساب قيمح
S=r+r2+…..+r
n
(:7) مثال
اىعادىح االتح: sامتة تشاذ ىحساب قح
S=1/11+1/21+ ….. +1/n!
solve:
function s=prog1(n)
s=0;
mi=1;
for m=1:n
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
73
for k=1:m
mi=mi*k
end
s=s+1/mi
end
end
شت تتاىت ف ز اىحاىح زة ا ت االعاص forا الحظ اا حتاد اى استخذا االعاص
ت forقثو ا ت االعاص االه نزا ا ا ارا احتزا اى امخش endاىخا خاله اىعثاسج
ااء االعاص االخش ح قثو االخش.
:اتمالح
بعد اساتدعائها بالبرناامج إالالدالة الت تكون على شكل ملك مفصول المكن تنفذها مباشرة -1
الرئس.
)=( الموجود ف السطر تكون اسم الدالة المخزون ف القرص الصلب واسم الدالة بعد عالمة -2
متطابقن. جب ان كونا األول
مثال:
function y = myfunction (a, b);
-------
-------
-------
myfunction.mفكون الخزن
.(end)تحتوي نهاة الدالة على ال -3
لدوال.تخزن البرامج بعد كل تعدل وخاصة ا -4
بحرك. تبدأ أناسم الدالة المخزون جب -5
.أخرىتستدع دالة من قبل دالة أنمكن -6
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
74
الرسوم البيانية
وثالثاة األبعاادهار الباناات ثنائاة بالعدد من االعاازات التا ت MATLABزودك برنامج
بنماا رسام بعضاها ساطوحا األبعاادوثالثاة بعااداأل, حث رسام بعضاها منحناات ثنائاة األبعاد
, كما مكن استخدام اللون كبعد رابع.وإطارات
انزسم انثنائي نهذوالقوم هذا plot سس ح اىذاه اىت تخو اىعالقح ت تغش ف اىست خاله االعاص
اىز صغت اىعاح : هار البانات على شكل ثنائ األبعاد االعاز با
plot (x.axis, y.axis, 'p')
حثx.axis عبارة عن متجه تمثل قم المتغر االول اي محورx.
y.axis عبارة عن متجه تمثل قم المتغر الثان اي محورy.
P .تمثل إحدى مختصرات خواص المنحن الت تمثل اللون والشكل, تكون اختارة
مختصزاخ خواص انمنحني:b اىي االصسق g االخضشاىي r اىي االحش m اىي اسرا
y اىي االصفش k شنو اىقطح . اىي االسد o شنو دائشج
x شنوx + شنو اىزح * شنو سض اىزع S شنو اىشتع
v شنو خيج ىي < شنو خيج ىيساس > شنو خيج ىألعي ^ شنو خيج ىألسفو
غشا اخش تذ خط سس none شنو خط قط : شنو خط تصو -
(:1) مثال
x = [1: 0.5: 10];
;y = exp (x) )مصفوفة( yالحتساب مجموعة قم للـ
plot (x, y) x, y لرسم قم بانة للمحورن
(:2) مثال
x = 1: 10;
plot (x)
:مالح ة
رة باالمحورن برسم قم بانة متنا plotواحد )قائمة واحدة( قوم االعاز إحداثف حالة وجود
( لكل عناصر القائمة.x, xأي )
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
75
(:3) مثال
y = [ ];
for i = 1: 10
y (i) = exp (i);
end;
plot (y);
(:4) مثال
y = [ ];
for i = 1: 10
y = [y exp (i)];
end;
plot (y);
(:5) مثال
>> x=0:0.1:1*pi;
>> y=sin(x);
>> plot(x,y)
plotعذ تفز االعاص سظش
اىشس ثاششج ف افزج ستقيح
figureNعاا حج N
ىفتحح خو تسيسو اىافزج ا
ما ف اىشنو اىقاتو
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
76
(:6) مثال
(graph).ارسم مخطط بان
clc;
clear;
x = 0: pi / 100: 2 * pi;
y = sin (x);
plot (x, y);
legend ('sin (x)'); دلل المخطط
xlabel ('x = 0: 2: pi'); x عنوان المحور
ylabel ('sin (x) cos (x)'); y عنوان المحور
title ('plot sin cos function'); )عنوان المخطط الرئس )أعلى المخطط
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
77
اما اذا اردنا اضافة خواص مثل )المنحن بشكل دوائر
وباللون االحمر( فكون االعاز التال :بالشكل
>> plot(x,y,'ro')
(:7) مثال
plot (x, sin (x), 'r: +', x, cos (x), 'b: *');
تسميح انمحاور واننوافذ:عح خاله االعاصاخ اىتاىح:ن تسح اىحاس مزىل اعطاء عا ىيشنو ا ىقطح
xlabel ('عا حس اىساخ اىطيب')
ylabel ('عا حس اىصاداخ اىطيب')
title ('عا اىشنو اىطيب')
text (x, y, z, 'عا اىقطح اىطيت')
مكن كتابة أي نص على المخطط باستخدام االعاز:
لون احمر sin (x)لون ازرق عالمة المخطط cos (x)عالمة المخطط
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
78
text (x, y, 'string');
تخو احذاحاخ اىقطح اىطيتح ع الحظح ا ز االعاصاخ تفز عي اىافزج اىفعاىح x, yحج ا
:m-fileشاذ ف افزج ما ف اىخاه اىتاى حج سف نتة ت
x=0:0.1:1*pi;
y=sin(x)
plot(x,y)
xlabel('x-axis')
ylabel('y-axis')
title('the curve of
sin')
text(0.2,0.19887,'the
point1')
text(1.5,1,'the
point2')
text(3.2,0.058379,'the
point3')
خو تز sinx z خو تز yىن ىغاح 0 عثاسج ع اىق xتمزين: ىتن اىتز
cosx ا w خو اىتز x2
ق تتفز اإلرشاءاخ اىتاىح:
ف نافذة واحدة بحث كون المنحن بلون اخضر وعلى x,y (y=sinx)ارسم الدالة بن .1
.y=sinxشكل مربعات على ان كون عنوان الرسم
وتاثره على الرسم السابق. plotالعاز والحظ تنفذ ا z=cosxارسم الدالة .2
w=xوالدالة z=cosxوالدالة y=sinxارسم الدالة .32
ف نافذة واحدة وباكثر من طرقة.
اعد تنفذ التمرن مع عنوان المحاور. .4
فتح امخش افزج سس احذج ستن اخش افزج اىافزج اىفعاىح figureتفز االعاص عذمالحظح:
اىت تستتقثو تتيحش االعتاصاخ اىفتزج ىتزىل فعتذا تتاد رعتو افتزج عتح ت اىافتزج اىفعاىتح ستتخذ
تخال زعتو اىتشمتض عيت figure(3) خو تسيسو اىافتزج اىطيتتح تخال nحج figure(n)االعاص
.3زج راخ تسيسو اىاف
وظهور الرسم ف نافذة الشكل فان تنفذ االعاز مرة اخرى بصغه plotعند تنفذ االعاز مالحظة:
جددة ؤدي الى مسح الرسم االول ورسم الرسم الجدد.
لتجنب مشكله ضاع الرسومات سوك نتبع ف الرسم احد الطرق التالة:
االحداث النص المطلوب االحداث كتابته الصادي السن
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
79
نافذة واحدةرسم عدة دوال بأشكال منفصلة في -1
والذي قوم subplotمكن رسم عدة دوال وبأشكال منفصلة ف نافذة واحدة من خالل االعاز
بتحول النافذة الواحدة الى مصفوفة من االشكال المنفصلة ف النافذة الواحدة والذي صغته العامة
ه:
subplot (n,m,x)
مثل متجه حدد من خالله تسلسل الشكل xمثل عدد االعمدة و mمثل عدد الصفوف و nحث ان
الذي سأخذ التركز او مكانه ف المصفوفة وكون هو الفعال فعلى سبل المثال تم تقسم النافذة الى
الثان 2),(1االول والشكل 1),(1ثالثة صفوف وثالثة عمدة وتم تسلسل االشكال بالتسلسل فالشكل
ف االعاز هو تسلسل الشكل xعله فالذي كتب بدل الموقع الخامس وهكذا و 2),(2واتسلسل
المطلوب.
, وكما ف المثال التال حث xواذا اردنا دمج اكثر من شكل فتم كتابته تسلسل االشكال ف المتجه
طبق ف شاشة التنفذ اعاز اعاز:
>> x= -1:0.1: 1; >> y=asin(x); >> z=cos(x); >> subplot(3,3,1) >> plot(x,y,'or') >> title('the curve of asin') >> subplot(3,3,5) >> plot(x,z,'ok') >> title('the curve of cos')
: m-fileوكما مكن تطبقه بشكل برنامج كامل ف نافذة
x= -1:0.1: 1; y=asin(x); z=cos(x); subplot(3,3,1) plot(x,y,'or') title('the curve of asin') subplot(3,3,5) plot(x,z,'ok') title('the curve of cos')
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
80
حث نالحظ ان الشكل االول اخذ الموقع االول ضمن مصفوفة ابعادها حث نالحظ ان الشكل االول
والشكل الثان اخذ الموقع الخامس. 3x3اخذ الموقع االول ضمن مصفوفة ابعادها
او باستخدام شاشة التنفيذ: file-mتمرين: اكتب برنامح باستخدام
w=xو z=cosxو y=sinxارسم الدوال -2
كما ف التمرن السابق حث جزء النافذة الواحدة
واسم الدالة 4و 3ف الموقعن y=sinxواجعل الدالة (4x4)الى مصفوفة من االشكال
z=cosx ف الموقع السابع وارسم الدالةw=x2
.11و 10و 9ف المواقع
التمرن مع تنفذ عنوان االشكال والمحاور.اعد -
رسم اكثر من دالة في نافذة واحدة -2
مكن رسم اكثر من دالة ف نافذة واحدة وذلك باحد الطرقتن:
اوال: وذلك من خالل وضع كل الدوال ف اعاز واحد كما ف المثال التال:
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
81
>> x=0:0.1:2*pi; >> y=sin(x); >> z=cos(x); >> plot(x,y,'or',x,z,'sk')
وكما ف المثال التالوالذي ؤدي plotقبل كل تنفذ جدد لإلعاز hold onثانا: باستخدام االعاز
الى ظهور الشكل اعاله:
>> x=0:0.1:2*pi; >> y=sin(x); >> z=cos(x); >> plot(x,y,'or') >> hold on >> plot(x,z,'sk')
نوافذ منفصلةرسم اكثر من دالة في -3
والذي ستخدم لفتح نافذة جددة وكما ف المثال التال: figureستخدم االعاز
>> x=0:0.1:2*pi; >> y=sin(x); >> z=cos(x); >> plot(x,y,'or') >> figure >> plot(x,z,'sk')
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
82
بعض االمثلة لرسم الدوال:
الدوال المثلثة : -1
x=6الى x=0من sin(x)مثال : ارسم الدالة
x= 0:pi/50:6*pi; y=sin(x); plot(x,y)
.cos(x) ,sec(x) ,tan(x) ,cos(x)تمرن : حاول رسم بقة الدوال المثلثة
الدوال المثلثة القطع الزائد: -2
=xالى x=0ف الفترة من cosh(x) والدالة sinh(x)مثال : ارسم الدالة
x= 0:pi/50: pi; y1=sinh(x); y2=cosh(x); plot(x,y1,':',x,y2'-') legend('sinh(x)','cosh(x)')
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
83
الدوال المعكوسة: -3
x≤1≥1-ف الفترة sin-1(x)مثال : ارسم الدالة
x= -1:0.1: 1; y=asin(x); plot(x,y)
ارسم الدوال التالة وحسب الفترة المحددة: تمرين:
1. Y= е –x
; 0≤x≤10
2. Y=log(x) ; 0.1≤x≤10
3. Y=log10(x) ; 1≤x≤105
انزسم ثالثي االتعاد نهذوال:
plot3 سس ح اىذاه اىت تخو اىعالقح ت حالث تغشاخ ف اىفضاء خاله االعاص
اىز صغت اىعاح :
Plot3(x.axis,y.axis,z.axis,'p') .xعبارة عن متجه تمثل قم المتغر االول وهو محور x.axisحث ان -
- y.axis وهو محور الثانعبارة عن متجه تمثل قم المتغر y.
- z.axis وهو محور الثالثعبارة عن متجه تمثل قم المتغر z.
- P .تمثل احدى مختصرات خواص المنحن كاللون والشكل وتكون اختارة
plot3 (x1, y1, z1, s1, x2, y2, z2, s2,…);
-
-
االحداث االحداث االحداث اللون )خط رمزي( الثالث الصادي السن
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
84
مثال:
>> x=0:0.125:10;
>> z=peaks(x,y);
>> plot3(x,y,z)
عثاسج ع داىح راضج تستخذ ىشس حاخ تحت ق ختيفح. peaks اىذاىح
عذ تفز االعاصاخ ما ف اىخاه اعال ظش ثاششج ما ف اىشنو اعال ن اىتحن تاىافزج
figureاىظاشج ما ش تا ف اىشس اىخائ حج ن فتح افزج رذذج ىيشس تا خاله االعاص
ح اىرد ستخذ ىتس xlabel,ylablel,zlabelمزىل ن تسح اىحاس خاله االعاصاخ
.textىتسح قطح عح ستخذ االعاص titleاالعاص
انزسم ثالثي االتعاد عهى شكم شثكح:
عثاسج ع تحو احذاحاخ ىتغش االه اىخا اى شنو شثنح )تا( خاله االعاص
meshgrid رىل فق تاىشس خاله االعاص ح تحذذ اىعالقح تا ت اىتغش اىخاىج تعذ
mesh:حج ا اىصغح اىعاح ىالعاص ما ي
[X_new Y_new]= meshgrid (X_old,Y_old);
اى شنو شثنح ت خضا تتغش X_old,Y_oldا ق تتحو اىتزت meshgridاالعاص
X_old,Y_old :ما ضح ف اىخاه اىتاى
>> x=-3:0.125:3;
>> y=x;
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
85
>> [x,y]=meshgrid(x,y); >> z=peaks(x,y); >> mesh(x,y,z)
ا متاتت االعاصاخ تشنو اخش:
>> [X,Y] = meshgrid(-3:.125:3); >>Z = peaks(X,Y); >>mesh(X,Y,Z); >>axis([-3 3 -3 3 -10 5])
حج ا اىتشتثا عطا فس اىشنو:
فصغت اىعاح : meshحج ا االعاص
mesh(x,y,z)
اىزاه اىقاتو ىالحاءاخ في فزا زا االعاص فسن cحج ا meshcاك اعاص اخش
اىشس ما ف اىشنو اىتاى:
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
86
=zىتن y=sin(x) ىتن x=0:0.1:10ىن تمزين: ( )
( ) اسس اىعالقح ت ز
اىتغاساخ اىخالحح شج سس اعتاد شج عي شنو شثنح.
:(1)مثال
t = linspace (0, 10 * pi, 100);
plot3 (sin (t), cos (t), t);
xlabel ('sin (t)');
ylabel ('cos (t)');
zlabel ('t');
text (0, 0, 0, 'origin');
grid on لرسم الشبكة
(:2) مثال
for i = 1: 10
for j =1: 10
mult (i, j) = i * j;
end;
end;
surf (mult) ( ثالث االبعاد)شكل مجسم
مالح ة:
هندسة منها: أشكالهناك من االعازات لرسم
bar االيعاز
bar chartستخدم لرسم
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
87
مثال:
x = -2.9: 0.2: 2.9;
bar (x, exp (-x .* x));
hist االيعاز
histogramستخدم لرسم
مثال:
x = -2.9: 0.1: 2.9;
y = randn (10000, 1);
hist (y, x);
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
88
pieااليعاز
pie chartستخدم لرسم
مثال:
x = [1 3 0.5 2.5 2];
explode = [0 1 0 0 0];
pie (x, explode);
لرسم مخطط بان. مثال:
clear;
clc;
corr = [0.0012, 0.0208, 0.0633, 0.1391];
amount = [1, 2, 3, 4];
subplot (211);
plot (amount, corr, '--rs');
title ('Cipher-image VS Amount of Encrypted Data');
xlabel ('Amount of Encrypted Data');
ylabel ('Cipher-image Correlation');
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
89
في الماتالب (polynomials)التعامل مع الدوال الكثيرة الحدود
x^2+2*x+3الدالة الكثرة الحدود من الدرجة الثانة
x^3+2*x^2+3*x+1الدالة الكثرة الحدود من الدرجة الثالثة
على صورة مصفوفتن كالتال: جتم ادخالهم ف البرنام
>> p=[0 1 2 3]
p = 0 1 2 3
>> g=[1 2 3 1]
g = 1 2 3 1
اي وضع معامالت كثرة الحدود ف مصفوفة صفة. ولنتعامل مع دالتن جب وضعهم ف درجة
واحدة اي بوضع الحد االعلى الغر موجود ف الدالة االولى بقمة تساوي صفر, والجراء الجمع بن
دالتن كالتال:
>> q=p+g
q = 1 3 5 4
كالتال: convالضرب بن دالتن نستخدم دالة والجراء
>> c=conv(p,g)
c = 0 1 4 10 13 11 3
كالتال: residueوالجاد القسمة نستخدم الدالة
>> w=residue(p,g)
w =
-0.1336 - 0.1283i
-0.1336 + 0.1283i
1.2672
كما التال: polyvalنستخدم الدالة xد عند قمة معنة للمتغر المستقل وإلجاد قمة كثرة الحدو
>> x=3;
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
90
>> v=polyval(p,x)
v = 18
كما rootsوإلجاد جذور المعادلة عندما تكون قمة الدالة كثرة الحدود تساوي صفر نستخدم الدالة
التال:
>> r1=roots(p)
r1 =
-1.0000 + 1.4142i
-1.0000 - 1.4142i
>> r2=roots(g)
r2 =
-0.7849 + 1.3071i
-0.7849 - 1.3071i
-0.4302
polyوإلجاد كثرة الحدود عند معرفة الجذور نستخدم الدالة
>> pr1=poly(r1)
pr1 = 1.0000 2.0000 3.0000
>> gr2=poly(r2)
gr2 = 1.0000 2.0000 3.0000 1.0000
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
91
حل المعادالت االنية باستخدام جبر المصفوفات عن طريق الماتالب:
لحل المعادالت االنة االتة:
X+2y=5
2x+y=4
نكتب المعادلتن على شكل مصفوفات:
1 2 X 5
2 1 Y 4
اي ان:
AxZ=B
Z=A-1
Xb
كالتال:والبرنامج سكون
clc clear a=[1 2; 2 1]; b=[5;4]; z=inv(a)*b x=z(1) y=z(2)
والتنفذ كالتال:
z = 1.0000 2.0000
x = 1
y = 2.0000
: solveحل المعادالت االنية باستخدام الدالة
لحل المعادالت على النحو التال solveنستخدم الدالة
>> eg1='x+5=0'
eg1 =
x+5=0
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
92
>> solve(eg1)
ans = -5
كما مكن استخدامها بصورة مباشرة كالالت:
>> solve('y^2+3*y+2=0')
ans =
-1
-2
كالتال yبداللة xوكون الحل x,yكما مكن حل المعادلة ف
>> solve('x^2+9*y^4=0')
ans =
3*i*y^2
-3*i*y^2
كالتال: x,yومكن حل معادلتن ف متغرن
>> eq1='6*x+2*y=14';
>> eq2='3*x+7*y=31';
>> [x,y]=solve(eq1,eq2)
x = 1 y = 4
example:
>> eq1='(x-3)^2+(y-5)^2=4';
>> eq2='(x-5)^2+(y-3)^2=3';
>> [x,y]=solve(eq1,eq2)
x =
33/8+1/8*47^(1/2)
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
93
33/8-1/8*47^(1/2)
y =
31/8+1/8*47^(1/2)
31/8-1/8*47^(1/2)
التفاضل والتكامل:
diff(e,v,n)الصغة العامة لدالة التفاضل ه
عدد مرات التفاضل. nمتغر التفاضل و vه الصغة المراد تفاضلها, eحث ان
Examples:
>> syms x
>> diff(sin(x^2))
ans =
2*cos(x^2)*x
>> syms x
>> diff(sin(x^2))
ans =
2*cos(x^2)*x
>> syms y
>> diff(x*y^2,'y',2)
ans =
2*x
int(e,v,a,b)اما الصغة العامة للتكامل
رمزه a,b ومن الممكن ان كون bالى الحد aمن الحد vبالنسبة للمتغر eاي تكامل
جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة
94
Examples:
>> syms x
>> int(2*x)
ans =
x^2
>> int(1/x)
ans =
log(x)
>> syms x
>> int(-2*x/(1+x^2))
ans =
-log(1+x^2)
>> int(x^2,2,5)
ans =
39
>> syms x y
>> int(x*y^2,y,0,5)
ans =
125/3*x
>> syms x a b
>> int(x^2,a,b)
ans =
1/3*b^3-1/3*a^3
>> syms x