![]() |
|
![]() |
![]() |
|
|
|||||||
|
![]() |
|
|
LinkBack | أدوات الموضوع |
التقييم:
|
|
|||
|
إستبدال عنصر قد تكون هذه العملية نادراً ما يتم إستخدامها, ولكنها هامة جداً, حيث توفر إمكانية إستبدال عنصر أو عدة عناصر داخل المصفوفة, ولتوضيح هذه الخاصية, سنقوم بتعريف مصفوفة كما ذكرنا مسبقاً ![]() ولنقوم بإستبدال العنصر في الصف الثالث والعمود الأول إلى الرقم صفر ![]() وإذا أردنا إستبدال عدة عناصر, يمكن ذلك بعمل مثال بسيط, لنقل أننا نريد أن نستبدل الصف الأول والثاني والعمودين من الأول إلى الثالث بقيمة صفر ![]()
__________________
![]() |
|
|||
|
حذف أكثر من عنصر لايقوم الماتلاب بعملية حذف لعنصر واحد فقط في مصفوفة, حيث أنه من غير المعقول حذف عنصر من داخل المصفوفة, وبقية الصف والعمود بهم قيم, ولكن إذا أردت أن تقوم بحذف صف كامل أو عمود كامل فيمكن ذلك بعمل التالي نقوم أولاً بعمل مصفوفة للعمل عليها [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] لنقل اننا نريد حذف الصف الثالث كله [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] ولحذف العمود الرابع كله, قم بعمل التالي [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
نداء عنصر عملية نداء عنصر من أكثر العمليات هامة جداً داخل الماتلاب, أي أنه نود الحصول على عنصر وحيد من المصفوفة, وذلك بذكر رقم الصف ورقم العمود الذي به هذا العنصر, ولتوضيح هذا الأمر, نقوم بعمل مثال بسيط, معتمدين على نفس المصفوفة التي تم ذكرها في المثال السابق [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] لنقل اننا نريد العنصر في الصف الأول والعمود الثالث [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] ولنداء أكثر من عنصر, نقوم مثلاً بنداء الصف الثاني ومن العمود الثاني إلى الرابع [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] هذا في حالة أننا نعرف حجم المصفوفة, ولكن ماذا إذا لم نكن نعرف حجمها, ونريد أن نحصل على العنصر الأخير مثلاً من الصف الثاني [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وسنقوم بعد عملية الشرح تماماً بالعديد والعديد من الأمثلة التي تزيد من سرعتك ومهارتك في الماتلاب
__________________
![]() |
|
|||
|
إيجاد العنصر الأكبر يقوم الماتلاب بإيجاد العنصر الأكبر عن طريق العمل على المصفوفة بشكل مختلف, فكيف يبحث عن العنصر الأكبر في المصفوفة, يقوم الماتلاب بالبحث عن العنصر الأكبر في كل عمود في المصفوفة, وبعدما يقوم بعمل ذلك, يقوم بعمل متجه به الرقم الأكبر من كل عمود, أنظر المثال التالي للتوضيح لدينا الآن مصفوفة تم إنشائها على الماتلاب [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] ولنقم بكتابة الأمر max كما ذكرنا مسبقاً [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] كما تلاحظ فلقد قام الماتلاب بإختيار العنصر الأكبر من كل عمود, ولإختيار الرقم الأكبر بينهم يجب كتابة نفس الأمر للناتج الخارج, وبالتالي نحصل على الرقم الأكبر في المصفوفة ككل [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
إيجاد العنصر الأصغر هذه العملية أيضاً كثيرة الإستخدام في التطبيقات المختلفة, وهي نفس الخطوات السابق ذكرها في إيجاد العنصر الأكبر ولكن يتم إستخدام الأمر min وإليكم المثال التالي [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
إيجاد مجموع العناصر لإيجاد المجموع كما تعلمنا نقوم بإستخدام الأمر sum ولكن عملية الجمع يقوم الماتلاب بإيجاد جمع كل عمود على حدى وتوضع في صورة متجه, كما في المثال التالي ![]()
__________________
![]() |
|
|||
|
إيجاد حاصل ضرب العناصر يمكن ضرب عناصر المصفوفة, ولكن في الماتلاب عملية الضرب تكون لكل عمود على حدى ويتم وضع الناتج في متجه, وإذا تم إستخدام الأمر مرة أخرى يتم ضرب عناصر المتجه جميعها, لينتج حاصل الضرب المصفوفة جميعها, أنظر المثال التالي [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
إيجاد قطر المصفوفة هذه العملية قد تكون ذات إستخدام أكاديمي, ولكنها هامة جداً, وخصوصاً أن تلك الخاصية تخدم المصفوفة المربعة ( عدد الصفوف يساوي عدد الأعمدة), ويتم إستخدام الأمر diag, وهذا مثال لذلك [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] يمكننا الآن عمل العديد من العمليات على قطر المصفوفة, فمثلاً نريد الحصول على عملية الجمع لعناصر المصفوفة [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] أو أننا نريد الحصول على حاصل ضرب تلك العناصر [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
المصفوفة السحرية حقاً كلمة قد يستغربها البعض, ولكنها حقيقة فحقاً إنها سحرية, حيث أن الماتلاب لديه القدرة على إنتاج مصفوفة مربعة يقوم الماتلاب بإختيار أرقامها بشكل عشوائي, كل ما عليك إلا إستخدام الأمر magic وتحديد N حيث انها تمثل عدد الصفوف المساوي لعدد الأعمدة, هذه المصفوفة مهمة جداً وخصوصاً في عمليات إختبار الأنظمة, كما سنتحدث لاحقاً بإذن الله في الشبكات العصبية. ولنأخذ مثالاً مبسطاً [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
M-File هي وسيلة لإدخال الأوامر ولكن ليس من خلال نافذة الأوامر, ولكن ماذا قد يختلف في هذه الوسيلة الجديدة في إدخال الأوامر؟ 1- في عملية إدخال الأوامر التي كنا نستخدمها, إذا أردنا تعديل عنصر أو أكثر كان يجب إعادة إدخال الأمر من جديد. 2- إذا وجد خطأ, فيجب كتابة الأمر من جديد 3- إذا كتبنا برنامج كبير, وأردنا إعادة العملية مرة أخرى يجب إدخال جميع الأوامر من جديد وبنفس الترتيب. 4- إذا حدث خطأ في ترتيب الأوامر لهذا البرنامج الكبير ستقوم بإعادة الإدخال الأوامر من البداية مرة إخرى. 5- يصعب عمل عملية تصحيح للأخطاء Debugging وهذا بالطبع يستغرق وقتاً كبيراً هذا بالإضافة إلى الملل الذي يحدث للمستخدم وطبعاً حلاً لهذه المشكلة, تم عمل بما يسمى M-File والتي تعطي القدرة على كتابة البرنامج كاملاً أولاً بدون تشغيل, وبعد الإنتهاء منه يتم تشغيله, هذه الخاصية تعطي القدرة على تعديل القيّم دون الحاجة إلى كتابتها مرة أخرى, أو إعادة إدخال الأوامر التي تعتمد على هذا الأمر. فكيف يتم تشغيل تلك الخاصية؟ إتبع الصورة التالية [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وبالتالي ستظهر نافذه جديدة, تأخذ الشكل التالي [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وسنتعرف على نافذة M-File بالتفصيل الممل بإذن الله في الدرس القادم
__________________
![]() |
|
|||
|
نافذة M-File سنقوم الآن بالتعرف على نافذة M-File, أنظر الصورة التالية [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] ولكن عند الضغط على زر التشغيل, سيطالبك الماتلاب بحفظ البرنامج, ولكن يشترط الآتي عند حفظ البرنامج 1- أن لايبدأ بأرقام 2- أن لا يكون أمراً معرفاً في الماتلاب 3- أن لا يحتوي الإسم على مسافات فاصلة 4- أن لاتحتوي على رموز خاصة مثل + , - , & , * يجب مراعاة تلك الشروط وإلا لن يقوم الماتلاب بتنفيذ البرنامج فالنقم بتنفيذ المثال المكتوب الآن في النافذة السابقة 1- يتم الضغط على زر التشغيل كما هو واضح في الصورة التالية [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] 2- سيطالبنا الماتلاب بحفظ البرنامج أولاً, ولنسميه training1 [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] 3- ستظهر القيم في كلاً من Command Window and Workspace [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] 4- لنعود إلى M-File ونقوم بتغيير بعض القيم للمصفوفة, كما في الشكل التالي [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] 5- سنقوم الآن بتشغيل البرنامج, وسيقوم الماتلاب الآن بالحفظ تلقائياً دون الحاجة لإعادة التسمية, ثم شاهد نافذة الأوامر Command Window [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وكما تلاحظ فإنه في كل عملية تحديث للبرنامج ستظل قيم البرنامج القديم موجودة, فحلاً لهذه المشكلة, يتم وضع الأمر CLC في أول كل برنامج, وهذا يكون مبدأ في جميع البرامج التي نقوم بعملها لابد من أن تبدأ بهذا الأمر. ودعونا نقوم بمثال يوضح لنا ذلك
__________________
![]() التعديل الأخير تم بواسطة م.أحمد عفيفي سلامة ; 18-08-2006 الساعة 02:11 AM. |
|
|||
|
سنقوم الآن بكتابة الـــ M-File [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] سنقوم الآن بتعديل المثال, وحتى نتأكد أن أمر CLC يعمل, ستختفي القيم من Command Window وتظهر القيم الجديدة [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وبهذا نتأكد من أن الأمر CLC يعمل بكفاءة ولكن دعونا نشاهد نافذة Workspace والتي تحتوى على قيم A,B,C [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] لنقم بتعديل بسيط في البرنامج عن طريق تغيير الرموز فقط من A,B,C إلى D,E,F ومشاهدة النافذة Workspace [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] ولتلافي هذه المشكلة, يجب وضع أمر Clear بعد الأمر clc بحيث يقوم بمسح أي قيمة سابقة من أي برنامج آخر في Workspace , ويجب تثبيت هذا الأمر أيضاً في جميع البرامج والتي سيتم عملها لاحقاً بإذن الله. وسنقوم الآن بتنفيذ نفس البرنامج ولكن بعد وضع الأمر clear, وستلاحظ الفرق الشاسع في الماتلاب الآن [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
بعض الأوامر الهامة قبل الإنتقال إلى الرسم plotting لابد من أخذ بعض الأوامر الهامة, والتي سيتم تداولها بشكل مستمر بإذن الله [LINE]hr[/LINE] linspace هذا الأمر كثير الإستخدام, والذي يستخدم في عملية إنتاج متجه, عن طريق تحديد الرقم الأصغر والرقم الأكبر, وعدد النقط المرغوبة بين هذين الرقمين ويأخذ الصورة التالية [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] فالمثال التالي يوضح كيفية إستخدام 10 نقاط من بين الرقمين 5 و 15 [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وهذا ما يسمى النظام العشوائي للماتلاب Randomization System in Matlab والميزة في هذا النظام هو أن المتجه نظام عشوائي متزايد [LINE]hr[/LINE] randint هذا الأمر من ضمن الأوامر والتي تنشأ نظام عشوائي للأرقم, ولكن ليس نظام نظام عدد صحيح وليس على هيئة كسور مثل الأمر السابق, كما أن نظام الأرقام به ليس تزايدياً أو تناقصياً بل عشوائياً ويأخذ الصورة التالية [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وهذا مثال بسيط بإستخدام هذا الأمر على الماتلاب [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] Input هذا الأمر هام جداً في الماتلاب, حيث يقوم المستخدم من خلال إستخدامه يجعل الماتلاب يسأله عن متجه أو مصفوفة, أو حتى حروف وأسماء وذلك تبعاً لما يقوم المستخدم بتعريفه فمثلاً إذا أردنا الماتلاب يطالبك بإدخال سنك, سنقوم بعمل التالي [LINE]hr[/LINE] ![]() [LINE]hr[/LINE] وإذا أردنا أن نعرف للماتلاب بأن ما سيتم إدخاله هو إسم وليس رقم, يتم كتابة البرنامج بالشكل التالي [LINE]hr[/LINE] ![]() [LINE]hr[/LINE]
__________________
![]() |
|
|||
|
لنستكمل الأوامر الهامة أولاً ما الفرق بين String and Character؟ string هو حرف أو كلمة في الماتلاب character هو عبارة عن رقم أو مجموعة من الآرقام وهنالك أمر يقوم بتحويل string to Character والعكس كذلك وهما num2str str2num ولكن فيما يفيدوا هذه الأوامر سنقوم بمثال بسيط حتى تفهم المقصود من هذه الأمور, سنقوم بإستخدام الأمر input في وضعية string وسنقوم بإدخال أرقام, ستبدأ تستغرب الآن, فهل الماتلاب حتى بعد إدخالي الرقم سيتعرف عليها كأنها أرقام أم أي شئ غير ذلك, شاهد الصورة التالية ![]() سنقوم الآن بإستخدام str2num لتحويل string إلى character أو رقم, شاهد الصورة التالية ![]() ماذا بخصوص الأمر الثاني num2str يستخدم هذا الأمر في تحويل الأرقام إلى string كتعريف لدى الماتلاب, ولكنه لا يغير من شكله, فالمثال التالي طلب منا إدخال الإسم والسن, ثم سنضع الإسم والسن في متجه, ولكن يجب أن نراعي كما ذكرنا مسبقاً أن المتجه إما يحتوي على أرقام أو string فقط وليس كلاهما ![]() والآن نحن على إتم إستعداد للبدء في الجزء المتعلق بالرسم الثنائي والثلاثي الأبعاد
__________________
![]() التعديل الأخير تم بواسطة م.أحمد عفيفي سلامة ; 18-08-2006 الساعة 02:08 AM. |
|
|||
|
الرسم ثنائي الأبعاد 2D Plotting المقصود بالرسم ثنائي الأبعاد هو ان تكون العلاقة التي تحكم عملية الرسم تكون بين متغيرين فقط أحدهما يسمى independent والآخر يسمى dependent فما المقصود بـــ independent Variable أي المتغير المستقل أي أن قيمه لا تحكمها علاقة بينما dependent Variable أي المتغير المُعتمد حيث يعتمد قيمه على قيم المتغير المستقل الآن وبعد شرح هذين العنصرين الهامين, سنقوم بشرح الأمر plot حيث يأخذ الصورة التالية ![]() وهذا مثال بسيط لكيفية رسم sine Wave ![]() وتلاحظ أننا قد إخترنا 10 نقاط فقط لرسم Sine Wave , وهذا عدد قليل لرسم Sine Wave وتلاحظ ظهور الرسمة بالشكل التالي ![]() وحلاً لهذه المشكلة, لابد من زيادة عدد النقاط داخل المتجه, كما في الشكل التالي ![]() وستلاحظ أن الرسمة قد تحسنت كثيراً ![]() وسنأخذ في الدرس القادم كيفية وضع مسميات حول محور السينات X-Axis ومحور الصادات Y-Axis وعنوان للرسمة,ووضع شبكة على الرسمة ,وكيفية تغيير لون الرسمة, وكذلك وضع أكثر من رسمة فوق بعضهما, وكيفية عمل كل رسمة في نافذة منفصلة, وكيفية إنشاء عدة رسومات منفصلة في نافذة واحدة بإذن الله
__________________
![]() التعديل الأخير تم بواسطة م.أحمد عفيفي سلامة ; 18-08-2006 الساعة 04:03 PM. |
![]() |
| مواقع النشر (المفضلة) |
| أدوات الموضوع | |
| تقييم هذا الموضوع | |
|
|