You are on page 1of 24

‫‪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‬‬

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

You might also like