أهلا وسهلا بك إلى منتديات مديرية التكوين المهني.

منتدى المتربصين
 
الرئيسيةPortailمكتبة الصورس .و .جالتسجيلدخول
اهلا بكم في منتديات معهد الوطني المنتخصص في التكوين و التعليم المهنيين - نوميرات -غاردية
المواضيع الأخيرة
» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:57 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:55 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:53 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:51 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:50 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:49 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:42 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:40 من طرف علي رجب حسين

» جامعة المدينة العالمية
الإثنين 27 يوليو - 23:37 من طرف علي رجب حسين


شاطر | 
 

 Matlab 02

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
Admin
avatar

Messages : 153
Date d'inscription : 06/05/2009

مُساهمةموضوع: Matlab 02   الإثنين 28 سبتمبر - 4:23

. تعريف المصفوفات

المصفوفات ذات بعد واحد
للحصول على مصفوفة ذات بعد واحد يمكن إستعمال الرمز ":" بالكيفية التالية:
كود
>> x = -5:5
والنتيجة هي مصفوفة ذات بعد واحد تحتوي الأعداد الموجودة بين الحدين اللذان تم تحديدهما ( 5-و 5 في مثالنا هذا ) والفارق بين عددين متواليان هو 1 وهو الفارق التلقائي الذي يحدده البرنامج. أي النتيجة :5-, 4-, 3-,..., 3, 4 , 5
يمكن تغير الفرق بين الأرقام المتتالية "الخطوة" عبر تحويل الكود السابق بالكود التالي:
كود
>> x = -5:.5:5
النتيجة هنا مماثلة للكود السابق إلا أن الخطوة تساوي نصف وقد أضفت العدد 5. بين الرمزان ":" ولا يوجد فرق بين كتابة 0.5 و 5. حيث أن البرنامج يعتبر تلقائيا الرقم قبل الفاصلة يساوي صفر. إذا النتيجة هي كما يلي:
إقتباس
5.0000-, 4.5000-, 4.0000-,... ,0.5000-,... 0,... 4.0000, 4.5000, 5.0000
ملاحظة: الفاصلة في الأعداد ليست الرمز "," بل الرمز "." أي لكتابة العدد نصف مثلا نكتب 0.5 وليس 0,5. يفهم البرنامج الكتابة الثانية على أنهما رقمان مستقلان.

يمكن إستعمال كلتا الطريقتين السابقتن لتعريف المصفوفة بالشكل التالي ولكم الإطلاع على النتيجة:
كود
x=[1:2:8,1:5]
يبين المثالان السابقان كيفية تعريف مصفوفتين ذوات بعد واحد, لكن ماذا لو أردنا تعريف واحدة نعرف نحن عناصرها؟ هناك إمكانية تعريفها بالكيفية التالية:
كود
>> x = [3,5,8,9,8,9,8,0,0,2]
هذه الطرق الرئيسية المستعملة لتعريف مصفوفة ذات بعد واحد لكن ليست الوحيدة, يمكن أيضا تعريفها من تعريف مصفوفة ذات أكثر من بعد. كأخذ سطر أو عمود أو أرقام معينة من مصفوفة ذات بعدين المعرفة سابقا في شاشة التعليمات. كيفية تعريف المصفوفات ذات بعدين هو الهدف من العنصر اللاحق.

المصفوفات ذات بعدين
المصفوفات ذات بعدين مستعملة كثيرا في حل العديد من المعادلات الرياضية و معالجة الصور وغيرها من التطبيقات. أعد العدة اللازمة لذلك ووفر Matlab العديد من الدوال والوضائف التي تيسر ذلك وسأسعى في هذا الجزء من الدرس تبين بعض منها مبتدأ بإبراز كيفية تعريفها/تكوينها.
تعريف المصفوفة ذات بعدين يعتمد على جملة من القواعد أهمها كتابة الرمز ";" للفصل بين مختلف الأسطر وهذه الأخيرة يجب أن تكون متساوية الطول.في هذا المثال عرفت نفس المصفوفة بطريقتين مختلفين
كود
>> A=[1,2,3;4,5,6], A1=[1:3;4:6]
يوفر Matlab عدة مصفوفات جاهزة مثل eye, magic, pascal, rand, zeros,...
للتعرف على هاته المصفوفات يكفي تجربة التعليمات التالية:
كود
>> eye(4), pascal(4), magic(4), zeros(4), rand(4)
كما ذكرت سابقا من الممكن تعريف مصفوفة ذات بعد من أخرى ذات بعدين, هذا مثال لأخذ السطر الأول والعمود الأولى من magic(5)
كود
M=magic(5), M_First_line=M(1,Smile, M_First_column=M(:,1), M_Element = M(2,2)

II. التعامل مع الدوال في ال Matlab
الآن وقد تعودنا التعامل مع شاشة التعليمات سننتقل لإستعمال نافذة أخرى يوفرها البرنامج وهي ال Editorحيث نصبح قادرين على كتابة برنامج متكامل يصل حتى إلى تصميم واجهة رسومية كما هو في باقي لغات البرمجة. لذك سنبدأ بكتابة ما يلي في نافذة التعليمات:
كود
>> edit <option>
هنا "<option>"تعرف إسم الملف الذي نريد فتحه سوى كود سبق كتابته أو كود دالة يوفرها البرنامج. بالنسبة لنا سنترك إسم الملف فارغ لكي يتم إنشاء ملف جديد سنكتب فيه الكود الذي سأدرجه لا حقا. الآن وقد فتحت نافذة كتابة الكود, سنقوم بتسمية دالتنا الأولى Example1 وننسخ فيها الكود التالي:
كود
function Example()
clc
M=magic(5)
M_First_line=M(1,Smile
M_First_column=M(:,1)
M_Element = M(2,2)

سبق و تعرفنا على هاته التعليمات لا تزال كلمة function. نلاحظ أن لون هذه الكلمة أزرق أي أنها كلمة محتجزة من قبل البرنامج وتستعمل لتعريف الدوال. الدوال في الMatlab تأخذ مدخلات وترجع مخرجات أيضا, سأفسر ذلك لاحقا.
الآن و قد عرفنا الدالة وأضفت لها التعليمةclc لتنظيف شاشة التعليمات قبل ترجمة التعليمات الرئيسية, سنقوم بالترجمة. هذه الأخيرة تكون بطرق مختلفة من بينها:

run.jpg ( 18.28كيلوا بايت ) عدد مرات التحميل: 28

الصورة رقم1: ترجمة كود Matlab

في الصورة رقم واحد قمت بإبراز كيفة ترجمة محتويات ال Editor. ويبقى الإختصار F5 الأيسر لذلك. طريقة أخرى في الترجمة تتمثل في كتابة إسم الملف الذي نريد ترجمت تعليماته, ومن الأفضل تسميت الملف بنفس إسم الدالة الرئيسية الموجودة فيه. نفهم من هذا أنه من الممكن كتابة أكثر من دالة في نفس الملف.
Example.rar ( 623بايت ) عدد مرات التحميل: 150

في الملف المرفق قمت بكتابة مثال حول مختلف طرق تعريف الدوال في نفس ملفm. و إستدعائها في دالة أخرى.عند الترجمة يتم مراجعة الأخطاء في كافة الدوال لكن يتم تنفيذ تعليمات الدالة الرئيسية فقط إذا لم يتم إستدعاء الدوال الأخرى داخلها, أو واحدة منها وبدورها تستدعي دوال أخرى.
إثر تسمية الدالة الرئيسية كتبت بعض التعليق. تلك الطريقة في التعليق هي الطريقة المعتمدة في البرنامج لإضافة نصوص المساعدة لمختلف الدوال ولتأكد من ذلك يكفي كتابة التعليمة التالية:
كود
>> help Example
لا يجب أن يكون نص التعليق مفصولا بسطر فارغ لأن في هذا الحال لن يظهر نص التعليق الموجود بعد هذا السطر. إذا أردت ترك سطر فارغ في نص التعليق ينبغي بدأه بالرمز "%".

عند كتابة أكثر من دالة في نفس الملف يجب تحديد نهاية كل دالة عبر إستعمال الكلمة المفتاحend.

نلاحظ أني إستعملت التعليمة التالية:
كود
sprintf('Example2 inputs are: out1=%d, out2=%d', out1, out2)
هذه التعليمة تمكن من إرجاع نص في شاشة التعليمات لتتبع سير الكود, هذه الدالة نعرفها في البرمجة باللغة سي في المكتبة stdio.h, هذه المكتبة موجودة في Matlabولا حاجة لإضافتها سوى للبرنامج أو للكود. كما يمكن إستعمال الدالة sscanf لقراءة قيمة ما و fscanf وfprintf للقراءة والكتابة/تحديث في ملفات خارجية.

عند إكتشاف خطأ ما في نص الكود, يرجع الMatlab تفاصيل حول الخطأ والسطر الموجود فيه. مثال:
إقتباس
??? Undefined command/function 'M5'.

Error in ==> Example at 11
M_Element = M5(2,2)

يمكن الذهاب الى مكان الخطأ لإصلاحه أو النقر على النص المسطر في رسالة الخطأ وسيحملك مباشرة الى السطر الذي يحتوي الخطأ.وبما أننا بصدد الحديث عن أخطاء الترجمة وتتبعها, سنواصل مع ما يعرف ب Debug. هذه الخاصية تمكن من توقيف الترجمة في نقطة معينة من الكود. عند الوصول الى النقطة التي تم تحديدها
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://numibox.spaces.live.com
 
Matlab 02
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
أهلا وسهلا بك إلى منتديات مديرية التكوين المهني. :: منتدى الكمبيوتر :: منتدى الرياضيات والخوارزميات-
انتقل الى: