‫‪1‬‬

‫ا لدرس الول‬
‫ما هو ‪? MatLab‬‬

‫هو أداة وبيئة تطوير برمجية مخصصة للمهام الحسابية‪ ،‬حيث‬
‫تتوفر فيه الكثير من الوظائف والدوال الرياضية المبنية داخليا‬
‫والتي تسهل حل مختلف أنواع المعادلت الرياضية‪ .‬كما تساعد‬
‫لغة برمجة على كتابة دوال وبرامج خاصة‪ .‬بالضافة للعديد من‬
‫المميزات الخرى به‪.‬‬
‫تتضمن استعمالت الـ ‪ MatLab‬المجالت التالية‪:‬‬
‫•الرياضيات و الحساب ‪Math and computation‬‬
‫•تطوير الخوارزميات ‪Algorithm development‬‬
‫•‪Data acquisition‬‬
‫•النمذجة والمحاكاة ‪Modeling, simulation, and‬‬
‫‪prototyping‬‬
‫•تحليل واستكشاف وتصوير البيانات ‪Data analysis,‬‬
‫‪exploration, and visualization‬‬
‫•الرسوم الهندسية والبيانية ‪Scientific and engineering‬‬
‫‪graphics‬‬
‫•بناء واجهات استخدام رسومية للتطبيقات المعدة‬
‫‪Application development, including graphical user‬‬
‫‪interface building‬‬
‫وللمزيد من المعلومات حول ‪ MatLab‬راجع موقع الشركة المنتجة‬
‫للنظام ‪:‬‬
‫‪/http://www.mathworks.com‬‬

‫و اجه ة الت شغيل‪:‬‬
‫عند تشغيلك لـ ‪ MatLab‬سوف تظهر لك واجهة الستعمال‬
‫التالية‪:‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪2‬‬

‫تتكون الواجهة من مجموعة من الطارات‬
‫‪.1‬إطار الوامر ‪Command Window‬‬
‫ومن خلله يتم إدخال الوامر للبرنامج‪ ،‬حيث يظهر المحث على‬
‫الشكل (<<) ويتم كتابة المر بعده‪ ،‬وبما أن لغة ‪ MatLab‬هي‬
‫لغة مفسرة ‪ Interpreted‬فإننا نحصل على الستجابة فور النتهاء‬
‫من كتابة البرنامج‪ ،‬ولكن يمكن تجنب إظهار النتيجة لكل أمر‬
‫بإلحاق المر بفاصلة منقوطة ;‬
‫‪.2‬إطار منطقة العمل ‪Workspace‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪3‬‬

‫حيث يظهر جميع المتغيرات المستعملة في جلسة العمل‬
‫الحالية‪.‬‬
‫‪.3‬إطار الوامر السابقة ‪ Command History‬حيث يتم عرض‬
‫جميع الوامر التي سبق إدخالها في جلسات عمل‬
‫سابقة‪.‬‬
‫‪.4‬إطار المجلد الحالي ‪Current Directory‬‬
‫في هذا الطار يتم عرض جميع الملفات الموجودة في مجلد‬
‫العمل الحالي والذي يكون عادة ‪ C:MATLAB6p5work‬حيث يوجد‬
‫به البرامج التي سنقوم بتشغيلها‪.‬‬
‫يمكن تعديل هذا المجلد لي مجلد آخر من خلل المفتاح (‪)...‬‬
‫المجاور لسم المجلد في أعلى الطار‪ ،‬أو من خلل نفس‬
‫المفتاح الموجود على شريط الدوات (منطقة رقم ‪ 5‬في الصورة)‬
‫أما مفتاح ‪ Start‬الموجود أسفل الشاشة فهو شبيه لمفتاح ‪start‬‬
‫في نظام ويندوز‪ ،‬حيث يمكن من خلله تشغيل بقية الدوات‬
‫المرافقة لبيئة ‪.MatLab‬‬

‫ملح ظة‪:‬‬
‫قد تظهر لديك واجهة الستعمال مختلفة بعض الشيء عن‬
‫المعروضة في الصورة‪ ،‬أو قد ترغب أنت في إخفاء بعض الطر أو‬
‫جعلها خارج الواجهة ‪undock‬‬
‫لجعل أي أطار خارجيا استعمل مفتاح الموجود على الجانب‬
‫اليمن العلوي من الطار‪ ،‬ولعادة داخل الواجهة أختار من الطار‬
‫(‪View -< dock )window name‬‬
‫ولغلقه استعمل مفتاح‬
‫توفر الوثائق المرافقة لـ ‪ MatLab‬الكثير من المعلومات المفيدة‬
‫حول ‪ MatLab‬ويمكنك البدا باستعراضها من خلل اختيار ‪MatLab‬‬
‫‪ Help‬من قائمة ‪.Help‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪4‬‬

‫خلل هذا الدرس تعرفنا على بيئة تطوير ‪ Matlab‬وأطر واجهة‬
‫الستخدام‪ ،‬في الدرس الثاني سوف نتعرف على أوامر ‪MatLab‬‬
‫الخاصة بالتعامل مع المتجهات‪.‬‬
‫الدر س ال ثاني‪:‬‬
‫ال متج ها ت في ‪MatLa b‬‬
‫يوفر ‪ Matlab‬مجموعة من الوامر التي تجعل إدخال المتجهات‬
‫والتعامل معها أكثر سهولة‪ ،‬حيث تشبه الوامر المستعملة في‬
‫‪ MatLab‬أسلوب كتابة المتجهات في الجبر‪.‬‬
‫خلل هذا الدرس سوف نوضح هذه الوامر‪ ،‬وكيفية استعمالها‪.‬‬
‫م علومة‪:‬‬

‫كلمة ‪ MatLab‬هي اختصار لعبارة ‪ matrix laboratory‬أو مختبر‬
‫المصفوفات‪ .‬إنشا ء ال متج هات‪:‬‬
‫ابسط طريقة لتعريف المتجهة هي بكتابة عناصر المتجهة يفصل‬
‫بين كل منها مسافة ومحصورة بقوسين مربعين [ ]‬

‫لحظ أن نتيجة المر الذي قمنا بكتابته قد ظهرت لنا مباشرة جرب‬
‫نفس المر السابق ولكن أضف في نهايته فاصلة منقوطة ;‬

‫هذه المرة ل تظهر نتيجة المر بعده‪.‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪5‬‬

‫كما يمكن تعريف المتجهة من خلل تحديد القيمة الولى ‪ :‬قيمة‬
‫الزيادة‪ :‬القيمة الخيرة‬

‫في إطار منطقة العمل ‪ Workspace‬لحظ المتغيرات المعرفة حاليا‬
‫في جلسة العمل‬

‫كما بالشكل أعله يظهر حتى الن متغيرين هما ‪ a‬و ‪A‬‬
‫‪ MatLab‬حساس لحالة الحرف ‪ Case-sensitive‬لذا فإن المتغير ‪a‬‬
‫مختلف تماما عن المتغير ‪.A‬‬

‫ملح ظة‪:‬‬
‫يمكنك كتابة المر ‪ Whos‬لعرض المتغير المعرفة في جلسة‬
‫العمل الحالية في إطار الوامر ‪Command Window‬‬

‫عر ض ال متج هات‪:‬‬
‫لعرض محتويات أي متجه نقوم بكتابة اسم المتجه ثم نضغط‬
‫على مفتاح الدخال ‪Enter‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪6‬‬

‫أو يمكن عرض القيمة الثانية في المتجه فقط من خلل المر‪:‬‬

‫لحظ المتغير الجديد الذي تم أنشاؤه ‪ .ans‬في كل مرة يتم فيها‬
‫كتابة امر تنتج عنه قيمة بدون تعيين هذه القيمة إلى متغير فأن‬
‫تلك القيمة سوف تحمل في المتغير ‪.ans‬‬

‫لعرض أول ‪ 4‬قيم بالمتجه‪ ،‬أو لعرض القيمة الولى والرابعة فقط‪:‬‬

‫الن وبعد أن تعرفنا على كيفية التعامل مع المتجهات في بيئة‬
‫‪ ، MatLab‬نختتم الدرس بحفظ جلسة العمل الحالية للرجوع لها‬
‫في أي وقت آخر‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪7‬‬

‫حفظ وا ستر جا ع جلس ة ا لعمل‪:‬‬
‫لحفظ جلسة العمل ‪ WorkSpace‬أختار من قائمة < ‪Fil e -‬‬
‫‪Sa ve work sp ac e A s‬‬

‫ومن خلل مربع حوار ‪ Save As‬أختار اسم مناسب لملف جلسة‬
‫العمل مثل‪MyFirstMat :‬‬
‫الملف سوف يحفظ في مجلد العمل والذي يكون عادة مجلد‬
‫‪ C: MA TL AB 6p 5w ork‬ويعطى المتداد ‪MAT‬‬
‫وعند تشغيل ‪ MatLab‬مرة ثانية يمكن استعادة ملف جلسة‬
‫العمل من خلل ‪ Fil e - < O pe n‬ثم اختار الملف ذو المتداد ‪Mat‬‬
‫الذي حفظت به جلسة العمل‪.‬‬
‫الدرس الثالث‪:‬‬
‫المص فوف ات في ‪MatLa b‬‬
‫خلل هذا الدرس سوف نستكمل دراسة المزيد من أوامر‬
‫‪ Matlab‬والمتعلقة بإنشاء المصفوفات والتعامل معها‪.‬‬

‫إن شاء المصفو فات‪:‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪8‬‬

‫طريقة تعريف المصفوفات في ‪ MatLab‬قريبا جداً إلى طريقة‬
‫تعريف المتجهات‪ ،‬نبدأ مباشرة مع أول مثال‪:‬‬
‫]‪>> D = [1 2 3; 4 5 6; 7 8 9‬‬
‫=‪D ‬‬
‫‪1 2 3‬‬
‫‪4 5 6‬‬
‫‪7 8 9‬‬
‫‪ ‬‬
‫لحظ الفرق بين فصل العداد بمسافة أو فاصلة منقوطة‪ ،‬جرب‬
‫هذا السلوب كذلك‪:‬‬
‫;‪>> D = [ 1 2 3‬‬
‫;‪4 5 6‬‬
‫]‪7 8 9‬‬
‫=‪D ‬‬
‫‪1 2 3‬‬
‫‪4 5 6‬‬
‫‪7 8 9‬‬
‫‪>> ‬‬
‫كما يوجد عدد من الدوال لنشاء مصفوفات خاصة‪:‬‬
‫‪.1‬دالة ‪ pascal‬لنشاء مصفوفة متناظرة ‪symmetric‬‬
‫‪.2‬دالة ‪ magic‬لنشاء مصفوفات يتساوى فيها مجموع كل‬
‫الصفوف والعمدة‪.‬‬
‫‪.3‬دالة ‪ zeros‬لنشاء مصفوفة صفرية‪.‬‬
‫‪.4‬دالة ‪ ones‬لنشاء مصفوفة كل عناصرها تساوي ‪1‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪9‬‬

‫لحظ المثلة التالية‬
‫)‪>> P = pascal(3‬‬
‫=‪P ‬‬
‫‪1 1 1‬‬
‫‪1 2 3‬‬
‫‪1 3 6‬‬
‫)‪>> M= magic(3‬‬
‫=‪M ‬‬
‫‪8 1 6‬‬
‫‪3 5 7‬‬
‫‪4 9 2‬‬
‫)‪>> z= zeros(2, 3‬‬
‫=‪z ‬‬
‫‪0 0 0‬‬
‫‪0 0 0‬‬
‫)‪>> o = ones(2, 4‬‬
‫=‪o ‬‬
‫‪1 1 1 1‬‬
‫‪1 1 1 1‬‬
‫‪>> ‬‬
‫الع مل يا ت الح سا بية على المصفو فات‪:‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪10‬‬

‫كما ذكرنا سابقا فإن ‪ MatLab‬يجعل التعامل مع المتجهات‬
‫والمصفوفات أكثر سهولة‪ ،‬جرب المثلة التالية‪:‬‬
‫‪>> Sum = D + P‬‬
‫‪>> Sub = P ­ D‬‬
‫‪>> D = D + 2‬‬
‫‪>> P2 = P * 2‬‬
‫‪>> Mult1 = P * D‬‬
‫‪>> Mult2 = P .* D‬‬
‫‪ ‬‬

‫المر الول‪ :‬يجمع كل من ‪ P‬و ‪ D‬وينتج عنه المصفوفة ‪Sum‬‬
‫المر الثاني‪ :‬ناتج طرح ‪ D‬من ‪ P‬في المصفوفة ‪Sub‬‬
‫المر الثالث‪ :‬يضيف ‪ 2‬إلى كل عنصر من عناصر المصفوفة ‪D‬‬
‫المر الرابع‪ :‬ينتج عنه مصفوفة ‪ Mult1‬والتي يحفظ بها ناتج ضرب‬
‫‪ P‬في ‪D‬‬
‫المر الخامس‪( :‬لحظ النقطة قبل علمة الضرب) هذا المر‬
‫سينتج عنه مصفوفة ‪ Mult2‬والتي هي عبارة عن حاصل ضرب‬
‫كل عنصر في ‪ P‬في العنصر المقابل له في ‪D‬‬
‫جرب أيضا المرين التالين ولحظ الفرق في الناتج‬

‫‪>> M‬‬
‫=‪M ‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪11‬‬

‫‪8 1 6‬‬
‫‪3 5 7‬‬
‫‪4 9 2‬‬
‫‪>> MM = M ^ 2‬‬
‫=‪MM ‬‬
‫‪91 67 67‬‬
‫‪67 91 67‬‬
‫‪67 67 91‬‬
‫‪>> M2 = M .^ 2‬‬
‫=‪M2 ‬‬
‫‪64 1 36‬‬
‫‪9 25 49‬‬
‫‪16 81 4‬‬
‫‪>> ‬‬

‫‪ M ^ 2‬يعني ضرب المصفوفة في نفسها‬
‫‪ M .^ 2‬يعني ضرب كل عنصر في المصفوفة في نفسه‪.‬‬
‫ليج اد مح ور ة المص فوفة‬

‫‪Tran sp os e‬‬
‫'‪>> M‬‬
‫=‪ans ‬‬
‫‪8 3 4‬‬
‫‪1 5 9‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪12‬‬

‫‪6 7 2‬‬
‫ليج اد م عكو س المص فوفة‬

‫‪Inver se‬‬
‫)‪>> inv(M‬‬
‫=‪ans ‬‬
‫‪0.1472 ­0.1444 0.0639‬‬
‫‪­0.0611 0.0222 0.1056‬‬
‫‪­0.0194 0.1889 ­0.1028‬‬
‫‪>> ‬‬

‫لل تعر ف عل ى ح جم المصفوفة‬
‫)‪>> size(z‬‬
‫=‪ans ‬‬
‫‪2 3‬‬
‫‪ ‬‬
‫)‪>> size(o‬‬
‫=‪ans ‬‬
‫‪2 4‬‬
‫‪>>   ‬‬
‫العدد الول يمثل عدد السطر والثانيالدرس الرابع‪:‬‬
‫كث ير ال حدو د في ‪MatLab‬‬

‫أهداف الدرس‪:‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪13‬‬

‫التعرف على كيفية تمثيل كثير الحدود في ‪ ، MatLab‬وكيفية‬
‫التعامل معها‪.‬‬
‫يوفر ‪ Matlab‬عدد من الدوال المبنية داخليا لتسهيل التعامل مع‬
‫كثير الحدود ‪ ، Polynomials‬حيث يتم تمثيلها كمتجه‪ ،‬مثل لتمثيل‬
‫معادلة كثير الحدود التالية‪:‬‬

‫نعرف المتجه التالي‪:‬‬
‫]‪>> x = [1 3 ­15 ­2 9‬‬
‫=‪x ‬‬
‫‪1 3 ­15 ­2 9‬‬
‫كذلك لتمثيل‬
‫]‪>> Z = [1 0 0 0 ­2‬‬
‫=‪Z ‬‬
‫‪1 0 0 0 ­2 ‬‬
‫حس اب قيم ة ك ثير الحد ود عن د قي مة محدد ة‪:‬‬
‫لكي نحسب قيمة كثير الحدود الول ‪ x‬عند قيمة ‪ s=3‬مثل‪،‬‬
‫يمكن استعمال دالة ‪polyval‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪14‬‬

‫احسبها وتأكد من الناتج ‪):‬‬

‫إي جاد ج ذور كث ير ال حدو د ‪:‬‬
‫يقصد بالجذور قيم المتغير ‪ s‬التي تجعل القيمة الكلية للمعادلة‬
‫تساوي ‪0‬‬

‫وا لع كس‪:‬‬
‫يعني لكتشاف معادلة كثير الحدود لجذور معلومة‪ ،‬الدالة هنا‬
‫هي ‪poly‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪15‬‬

‫ض رب وقسم ة ك ثير الحدود‪:‬‬
‫لضرب معادلتين كثير حدود في بعضهما استعمال دالة ‪conv‬‬
‫وللقسمة الدالة ‪deconv‬‬

‫عند استعمال ‪ deconv‬لقسمة كثيري حدود فأنه ينتج متجهين‪:‬‬
‫•الول ‪ d‬ناتج القسمة‪.‬‬
‫•الثاني ‪ r‬باقي القسمة (وفي المثال السابق كان الباقي‬
‫من القسمة متجه صفري)‪.‬‬
‫يمثل عدد العمدة‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪16‬‬

‫الدرس الخامس‪:‬‬
‫أوامر مفيد ة في ‪MatLab‬‬
‫وقفة قصيرة من المور الرياضية ودوالها التي تكلمنها عنها في‬
‫الدروس السابقة‪ ،‬لنتعلم المزيد عن كيفية استعمال ‪matlab‬‬
‫والوامر الساسية به‪.‬‬
‫مس ح إطا ر ال وامر‪:‬‬
‫أثناء عملنا قد نرغب من وقت لخر في مسح كل ما هو موجود‬
‫على إطار الوامر‪ .‬يوجد طريقتين لذلك‪:‬‬
‫‪.1‬إذا كنت من محبي استعمال الفأرة أختار ‪Edit-< Clear‬‬
‫‪Command Window‬‬
‫‪.2‬أما إذا كنت تفضل استعمال لوحة المفاتيح فأكتب ‪ clc‬‬
‫ثم ‪.Enter‬‬

‫ملح ظة‪:‬‬
‫مسح إطار الوامر لن يحذف المتغيرات التي تم تعريفها خلل‬
‫جلسة العمل‪ ،‬أنظر لطار جلسة العمل ‪ Workspace‬ستجد أن‬
‫المتغيرات لم تتغير أو تحذف‪ .‬يمكنك أيضا استعمال المر ‪ Whos‬‬
‫لعرض المتغير المعرفة في جلسة العمل الحالية للتأكد‪ ،‬إذا كان‬
‫إطار جلسة العمل غير ظاهر لديك‪.‬‬
‫حذف ج مي ع الم تغ يرا ت الم عرفة في ج لس ة ال عمل‪:‬‬
‫وهنا أيضا لدينا طريقتين‪:‬‬
‫‪.1‬إذا كنت من محبي استعمال الفأرة أختار ‪Edit-< Clear‬‬
‫‪Workspace‬‬
‫‪.2‬أما إذا كنت تفضل استعمال لوحة المفاتيح فأكتب‬
‫‪ clear‬ثم ‪.Enter‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪17‬‬

‫ط با عة مح تويا ت إطا ر الوامر‪:‬‬
‫لطباعة محتويات إطار الوامر كاملة اختار ‪File -< Print‬‬
‫ولطباعة الجزء المحدد فقط من الطار أختار ‪File -< Print‬‬
‫‪selection‬‬
‫وللتحكم في تنسيق المخرجات من الطباعة اختار ‪File -< Page‬‬
‫‪ Setup‬حيث تظهر لك مربع حوار ‪ page setup‬الذي يمكن من‬
‫خلله التحكم في تنسيق الصفحة مثل ظهور رأس الصفحة‬
‫‪ Header‬أو ل ومحتويات هذا الرأس‪ ،‬ظهور أرقام للسطر‪،‬‬
‫والخطوط ‪ fonts‬المستعملة إثناء الطباعة‪.‬‬

‫ملح ظا ت مف يد ة‪:‬‬
‫•خلل عملك على ‪ matlab‬تذكر أنه حساس لحالة‬
‫الحرف ‪ ،case sensitive‬لذلك فإن ‪ Clear‬ليست مثل‬
‫‪ clear‬على سبيل المثال‪.‬‬
‫•يمكن أن تكتب أكثر من أمر على سطر واحد في‬
‫‪ MatLab‬شرط أن تفصل بينهما بفاصلة منقوطة‪.‬‬
‫;]‪>> A = [1 2 3 4 5]; B = [6 7 8 9 10‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪18‬‬

‫‪>> C= A + B‬‬
‫=‪C ‬‬
‫‪7 9 11 13 15‬‬
‫‪>> ‬‬
‫كما يمكن كتابة المر الواحد على سطرين منفصلين‪( ،‬خاصة إذا‬
‫كان عرض الشاشة ل يتسع له) بأن نضع ثلث نقاط (‪ )...‬عند‬
‫نهاية السطر الول‪.‬‬
‫‪>> D = [ 2 5 2 4 1 66 8 44 88 66 ...‬‬
‫]‪5 7 44 88 44 787 56 66 4‬‬
‫=‪D ‬‬
‫‪Columns 1 through 12 ‬‬
‫‪2 5 2 4 1 66 8 44 88 66 5 7‬‬
‫‪Columns 13 through 19 ‬‬
‫‪44 88 44 787 56 66 4‬‬
‫‪>> ‬‬
‫خلل العمل على ‪ MatLab‬فإن الوامر التي تكتبها في أطار‬
‫الوامر تحفظ في حافظة الـ ‪ History‬وقد تسأل ما الفائدة من‬
‫هذا؟‬
‫الفائدة منه أنه يمكنك إعادة استدعاء إي من هذه الوامر‬
‫السابقة وتنفيذها من جديد‪ ،‬وذلك من خلل الضغط المتكرر على‬
‫مفتاح السهم للعلى حتى تصل إلى المر الذي تريد تكراره‪،‬‬
‫وذلك دون الحاجة إلى إعادة كتابته مرة ثانية‪.‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪19‬‬

‫•للحصول على المساعدة حول أي أمر أو دالة في‬
‫‪ MatLab‬مباشرة في إطار الوامر أكتب ‪ help‬ثم اسم‬
‫المر أو الدالة وسوف تظهر لك كل المعلومات التي‬
‫تريدها حول ذلك المر‪ ،‬جرب مثل ‪help sin‬‬
‫الدرس السادس‪:‬‬
‫البرمج ة في ‪MatLab‬‬

‫كما ذكرنا في الدرس الول من هذه السلسلة فإن ‪ MatLab‬هو‬
‫بيئة تطوير برمجية تحوى العديد من الدوال الجاهزة‪ ،‬بالضافة إلى‬
‫إمكانية كتابة برامج ودوال خاصة بنا حسب الحاجة‪ .‬خلل هذا‬
‫الدرس سوف نتعرف على الوامر البرمجة في ‪.MatLab‬‬
‫ال جمل ة الشر طية ‪: if‬‬
‫تستخدم للختيار بين أمرين حسب شرط محدد‬
‫الصيغة العامة ‪:‬‬
‫‪>if <condition‬‬
‫>‪   <program1‬‬
‫‪else‬‬
‫>‪   <program2‬‬
‫‪end‬‬
‫في حالة تحقق الشرط ‪ condition‬يتم تنفيذ الكود في‬
‫‪ program1‬وإذا لم يتحقق الشرط يتم تنفيذ الكود في‬
‫‪program2‬‬
‫مثال‪:‬‬
‫‪>> if n < 0‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

20

  disp('n is negative')
else
  disp('n is positive')
end
n is positive
>> n
n =
71
>> 
‫ شكل أكثر تداخل باستعمال أكثر من‬if ‫يمكن أن تأخذ جملة‬
elseif ‫مستوي لـ‬
if expression1
  statements1
elseif expression2
  statements2
else
  statements3
end
‫ التي لها نفس العمل‬switch ‫أو يمكن استعمال جملة‬
switch ‫جم لة‬
:‫الصيغة العامة‬
switch switch_expr
  case case_expr 
      statement,...,statement
  case {case_expr1,case_expr2,case_expr3,...}
      statement,...,statement
  ...
‫ ميخائيل صفوت و زاهر المين‬: ‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد‬

‫‪21‬‬

‫‪  otherwise‬‬
‫‪      statement,...,statement‬‬
‫‪end‬‬
‫حيث‪:‬‬
‫‪ switch_expr‬هو المتغير (أو التعبير) الذي سيتم اختبار‬
‫قيمته‪.‬‬
‫‪ case_expr‬أحد القيم التي يمكن أن يأخذها المتغيريمكن أن‬
‫تتضمن الحالة الواحدة أكثر من قيمة‪ ،‬وإذا كانت القيمة للـ‬
‫‪ switch_expr‬غير مدرجة في اي حالة ينتقل التنفيذ للقسم‬
‫‪otherwise‬‬
‫ال حلق ات التكر ارية‪:‬‬
‫عندما نرغب في تكرار أمر معين (أو أكثر) عدة مرات‪ ،‬فإن أفضل‬
‫طريقة لعمل ذلك هو بوضع هذا المر داخل حلقة تكرارية‪.‬‬
‫في ‪ MatLab‬يوجد نوعين فقط من الحلقات التكرارية ‪:‬‬
‫‪ .1‬حلق ة ‪for‬‬
‫وتستخدم عندما يكون المطلوب هو التكرار لعدد محدد من‬
‫المرات‪.‬‬
‫الصيغة العامة‬
‫‪for variable = expression‬‬
‫‪  statement‬‬
‫‪  ...‬‬
‫‪  statement‬‬
‫‪end‬‬
‫مثال‪ :‬حلقة بسيطة سوف تتكرر ‪ 4‬مرات‬
‫‪<< for j=1:4‬‬
‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪22‬‬

‫‪j‬‬
‫‪end‬‬
‫=‪j‬‬
‫‪1‬‬
‫=‪j‬‬
‫‪2‬‬
‫=‪j‬‬
‫‪3‬‬
‫=‪j‬‬
‫‪4‬‬
‫<<‬

‫‪ .2‬حلق ة ‪whil e‬‬
‫حيث يكون التكرار هنا مرتبط بتحقق شرط ما‪ ،‬فإذا لم يعد الشرط‬
‫محقق تنتهي الحلقة‬
‫الصيغة العامة‪:‬‬
‫‪while expression‬‬
‫‪   statements ‬‬
‫‪end‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪23‬‬

‫‪ ‬‬
‫مثال‪ :‬هذا البرنامج يوجد أول عدد صحيح مضروبه ‪ !n‬مكون من‬
‫‪ 100‬خانة عشرية‬
‫;‪>> n = 1‬‬
‫‪while prod(1:n) < 1e100‬‬
‫;‪n = n + 1‬‬
‫‪end‬‬
‫‪>> n‬‬
‫=‪n ‬‬
‫‪70‬‬
‫‪ ‬‬

‫ملح ظة‪:‬‬
‫لغة ‪ MatLab‬هي لغة مفسرة ‪ Interpreted‬أي أن كل أمر يتم‬
‫ترجمته للحاسوب قبل تنفيذه مباشرة‪ ،‬لذا فإن استعمال الحلقات‬
‫التكرارية سوف يجعل البرنامج أكثر بطأ‪ ،‬ويفضل استعمال الوامر‬
‫والدوال الجاهزة لـ ‪ MatLab‬كلما أمكن ذلك‪.‬‬
‫‪: break‬‬
‫يستخدم هذا المر ليقاف تنفيذ حلقة تكرارية وإعادة التحكم‬
‫للبرنامج أو للحلقة الخارجية عند وجود حلقات متداخلة‪.‬‬
‫‪: conti nu e‬‬
‫يقوم هذا المر بوقف التكرار الحالي للحلقة ‪ iteration‬ويبدأ في‬
‫التكرار التالي له‪.‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

‫‪24‬‬

‫جامعة وادى النيل – كلية الهندسة والتقنية – أعداد ‪ :‬ميخائيل صفوت و زاهر المين‬

Sign up to vote on this title
UsefulNot useful