Post on 23-Jan-2020
transcript
MATLAB بلغة البرمجة
بلغة البرمجة
إعـداد
1
Dr. HammedComputer Science
علوم لمادة التدريسيين من مجموعةالحاسبات
والبحث العالي التعليم وزارةالعلمي
الحاسبات علوم قسم
2008نيسان
MATLAB بلغة البرمجة
MATLAB: البرمجـــــــــــة لغة
(The MATLAB programming language) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~.MATLAB التقني االحتساب لغة عن - مقدمة1والمتغيرات. - الثوابت2المصفوفات. على والعمليات - المصفوفات3األبعاد. متعددة - المصفوفات4الخاليا. - مصفوفات5الرمزية. - السالسل6واإلخراج. اإلدخال - جمل7الشرطيـــــة. - الجمل8والتكرار. الدوران - جمل9
. MATLABببرنامج الخاصة البيانات - ملفات10القاعدية. وااليعازات والبتات المجموعات - ايعازات11الفرعية. والبرامج - الدوال12البيانية. - الرسوم13
:المصــــــــــادر1 -MATLAB 6.5البيكو, الكريم عبد والتعليمي, المهندس المرجعي الدليل
للنشر(. شعاع )دار2 -MATLAB Help Version 6.5
3 -www.mathworks.com
2
MATLAB بلغة البرمجة
MATLAB : The MATLAB Programming Language البرمجة لغة
مقدمة هذا يستخدم إذ العلمية، األوساط في األشهر البرنامج MATLAB برنامج يعتبر
ظاهرة أو مسألة أي نمذجة وبعد والهندسية، العلمية المسائل معظم في البرنامج وأحدثها الطرق بأبسط ويحللها البرامج تلك مع ليتعامل البرنامج هذا دور بعدها يأتي
معهد200 من أكثر يعلـــــم البرنامج هذا بان ذكره الجدير ومن برمجة، وأيسرها العالم، وبقية أوربا في المعاهد تلك عدا فقط، األمريكية المتحدة الواليات في وكلية
فقط وتكتب االنترنت شبكة على البحث محركات أحد إلى تدخل أن ويكفيMATLAB، البرنامج. هذا عن تتحدث التي المواقع عدد من فســـــتــــذهل
التقنية, الحسابات إلجراء تستخدم األداء عالية برمجية لغةMATLAB لغة وتعتبر إلى تحتاج ال أنها كما البرمجة سهلة بيئة ضمن واإلظهار الحساب بعمليات وتقوم
خاصة حسابيا، التقنية المسائل من العديد حل من اللغة هذه كبير. تمكنك احتراف البرمجة بلغات لبرمجتها كبير جهد إلى تحتاج والتي بمصفوفات عنها يعبر التي
.FORTAN و C لغة مثل األخرى )مختبر MATrix LABoratory التعبير اختصار من اللغة هذه تسمية أتت
على العمليات مع للتعامل أساسا مصمم البرنامج إن حيث المصفوفة(، تطبيقات وحل لمعالجة أدوات اللغة بهذه أرفقت بسيط. كما بشكل المصفوفات
األدوات هذه وتعتبر أداة(، عشرين من أكثر )وهيtoolboxes سميت خاصة علمية هامة حل تقنيات وتطبيق بتعلم لهم تسمح حيث اللغة، هذه لمستخدمي جدا
التحكم اإلشارة, ونظم معالجة مثل خاصة، ومسائل مشكالت لمعالجة متخصصة الجبر ومسائل واإلحصاء والمالي الكمي والتحليل العصبية والشبكات والمحاكاة
... الخ. واالمثلية الخطي
3
MATLAB بلغة البرمجة
Graphical User الرسومية التخاطب واجهة أدواتMATLAB برنامج يؤمن
Interface (GUI)متطورة. تطبيقية أداة انه على البرنامج مع تتعامل تجعلك التي
MATLAB برنامج تشغيلالتالية: الطرق بأحد البرنامج تشغيل يتم رمز إضافة عليها. يتم تعمل التي الحاسبة علىMATLAB برنامج تنصيب - بعد1
عند فتحة ويتم الرمز ويحمل الحاسبة مكتب سطح على البرنامج أيقونة.double click مزدوجتين بنقرتين األيقونة على النقر
أسم ثمPrograms برامج إلى ومنهاstart قائمة إلى الذهاب طريق عن - أو2 .MATLAB 6.5 البرنامج
اإلصدار ونسخةMATLAB البرنامج أسم تحمل شاشة لنا تظهر سوف عندها البرنامج نافذة تظهر قليلة ثواني بعد (. ثم1) رقم الشكل في كما النشر وسنة
هذه تحتوي ( حيث2) رقم الشكل في كما التشغيل بداية في تكون والتي الرئيسيةفرعية. نوافذ على Windows نظام بيئة تحت تعمل التي البرمجيات كسائر النافذة
4
start Programs MATLAB 6.5
Dr. HammedComputer Science
(: شاشة اسم البرنامج 1شكل )MATLAB
(: شاشة نافذة البرنامج 2شكل )MATLABالرئيسية( سطح مكتب )
MATLAB بلغة البرمجة
MATLAB برنامج مكتب سطح
احدها عنوان نوافذ عدة شاشتك على ستظهرMATLAB برنامج تشغيل عند MATLABبرنامج مكتب سطح وتسمى MATLAB، وتتحكم النافذة هذه تحوي
تنصيب خيارات . وحسبMATLAB لبرنامج المكونة األخرى النوافذ بجميع. MATLABنافذة ضمن مخفية أو مرئية النوافذ هذه بعض تكون فقد البرنامج، MATLAB نافذة مكونات
التالية:- األجزاء منMATLAB نافذة تتكون يساره على يوجد األشرطة باقي عن مميز لون ذات ويكون العنوان - شريط1
يمينه وفي البرنامج وأسم للبرنامج الصوري الرمز
تحرير قائمة ،File ملف بقائمة يبدأ(Lists Bar) أو(Menu Bar) قوائم - شريط2Edit، عرض قائمة View، المساعدة قائمة ... وحتى Help.
في الموجودة االيعازات لبعض صورية رموز ويضم(Tools Bar) األدوات - شريط3السابق. الشريط قوائم
Current) الحالي الدليل يدعى مهم جزء األدوات شريط من األخير الجزء في هناك
Directory)موجود هو الحاسب من جزء أي في المستخدم يخبر والذي وكما حاليا وعلىMATLAB6P5\work)المجلد( الدليل على بأننا ( يعلمنا2) الشكل في
:C القرص
5
MATLAB بلغة البرمجة
Start األولى كلمتان وفيهMATLAB برنامج بنافذة خاص مهام شريط - هنالك4
البرنامج بأن تعلمكReady االيعازات. بينما بعض لتنفيذ مختصر كطريق وعملهاله. المعطى التوجيه حسب للعمل جاهز
يمكن التي الفرعية النوافذ من مجموعة هناك أعاله األشرطة إلى باإلضافة أسم تأشير يتم ( حيث3) الشكل في كما وذلك الحاجة حسب إخفائها أو تفعيلها نافذة هي للعمل أساسية نافذة هناك لكن (،√) بإشارة بعرضها المرغوب النافذة
األوامر وتنفيذ بكتابة التعامل يتم خاللها من والتي ،Command Window األمرمباشرة. غير أو مباشرة بصورة
) رقم الشكل في كماView قائمة في أسمائها الظاهرة الداخلية النوافذ - تعتبر5 وكما الخاص عملها منها نافذة ولكلMATLAB برنامج نافذة مكونات من ( هي3
يلي:-
ألن عنها االستغناء يمكن ال نافذة وهيCommand Window: األمر أ- نافذة األوامر تلك تنفيذ من عليها نحصل التي النتائج وعرض األوامر تنفيذ يتم بواسطتها
(.<<) الحث عالمة بعد وتكتب باستعراض لك تسمح تخاطبية واجهة عن : وهيWorkspace العمل ساحة ب- نافذة
المتغير أسم تضم قائمة تظهر حيثMATLAB لغة متغيرات وحفظ وتحميل صنف من هيMATLAB لغة متغيرات )جميع وصنفه بياناته وعدد وحجمه
(.4) الشكل في مصفوفة(, كما
6
(: النوافذ الداخلية في قائمة 3شكل )View
MATLAB بلغة البرمجة
الدليل تحدد رسومية واجهة أيضا وهيCurrent Directory: الحالي الدليل ج- نافذة.MATLAB برنامج معه يتعامل الذي للملف الحاوي
بالبحث لك )رسومية( تسمح تخاطبية نافذة وهيHelp: المساعدة د- نافذةمباشر. بشكل الوثائق واستعراض
شجرية بنية تستعرض نافذة عن عبارة وهيLaunch Pad: التنفيذية البرامج و- لوحةالتنفيذية. والبرامج لألدوات
تنفيذ إعادة من النافذة هذه تمكنكCommand History: السابقة األوامر هـ- نافذة األمر نافذة في المنفذة السابقة األوامر أخرى. مرة كتابتها من بدال
.... تفعيلها بعدMATLAB البرنامج لنافذة الداخلية النوافذ ( يبين5) والشكل
7
بعد MATLABالنوافذ الداخلية لنافذة البرنامج (: 5شكل )تفعيلها
listsشريط القوائم )bar)
toolsشريط األدوات )bar)
ونافذة ساحة Command Window(: نافذة األمر 4شكل ) Workspaceالعمل .
MATLAB بلغة البرمجة
:مالحظات موجهةMATLAB لغة مصفوفة، عن عبارةMATLAB في متغير كل-1
المتغيرات كانت وان حتى بالمصفوفات (.scalar) مفردة أعدادا من والدوال المتغيرات لحذف يستخدمWorkspace ضمنclear األمر-2
. الذاكرة Windowاألمر نافذة لمسح يستخدمWorkspace ضمنclc األمر-3
ommand.مختلفة: أظهار بتنسيقاتMATLAB لغة في العددية النتائج إظهار يمكن-4
format short, long, short e, long e, hex, blank, +, rat…, منMATLAB في جاهزة كايعازاتdemo( demonstration) تنفيذ يمكن-5
خالل: Help Demos ( Toolboxes )مثال المحدد الموضوع أختر
في:- منها االستفادة يمكن شفرة (. ج- عرضHelp) الموضوع حول أكثر . ب- تعليمDemos أ- تنفيذ .M–file إلى Demo من البرنامج شفرة . د- استنساخ البرنامج
8
Start
MATLAB بلغة البرمجة
من Demos إلى الدخول يمكن : مالحظـــــة على للداللة بفراغ مسبوقة السطر نهاية )...( في متتالية نقاط ثالث-6
التالي. السطر في االيعاز استمرار نافذة في الناتج أو المتغير طباعة تمنع اإليعاز بعد منقوطة فارزة-7
Commandنافذة في وكذلك Editor. يعتبر بعدها يأتي نص فكل للتعليق )%( تستخدم المئوية النسبة إشارة-8
مثل: تعليق، نص % This Program Compute Area
m.) توسعها وتكونM–files تسمىMATLAB ملفات-9 ) (, مثالexamplel.m.)
Command نافذة في والالحقة السابقة االيعازات بكتابة االحتفاظ-10
واألسفل. لألعلى السهم بحركة شاشة في واالخراجات( تظهر )النتائجMATLAB برنامج تنفيذ نتيجة-11
Command Windowالتنفيذ. بعد إليها االنتقال يجب لذلك واألنواع والثوابت المتغيرات عن اإلعالن إلى تحتاج الMATLAB لغة-12
بالبرنامج. المستخدمة األخرى البيانية تأشيرها البرنامج( يتم من مقطع أو )تعليمة البرنامج من مقطع لتنفيذ-13
المنسدلة: القائمة فتظهر أيمن النقر ثم
9
لحساب الجزء المؤشر وإظهار النتيجة في نافذة Command
الذهاب إلى الدالة المؤشرة للجزء المؤشرHelpالذهاب للـ
قصنسخلصق
تعليقرفع التعليق
هيكلة المقطع
MATLAB بلغة البرمجة
Paste ونختارCommand Window إلى وننتقلCopy نختار ذلك وبعد
وننفذها. )البيضاء( الفارغة الصفحة أيكونة على أنقر ،M-file نصي ملف إلنشاء-14
منNew اختر أو ،MATLAB مكتب سطح أدوات شريط ضمن الموجودة موجود ملف لفتحOpen اختيار أوM-file اختر ثم ومنFile القائمة
كتابة في يمكنك التي النصوص محرر نافذة األوامر هذه مسبقا. يستدعي(. 8(, )7(, )6) األشكال في البرامج(. كما كتابة )نافذةMATLAB أوامر
شريط في الموجودةRun أيكونة باختيار المخزون الملف تنفيذ يمكن-15 القائمة من Run االختيار أوF5 المفتاح ضغط عبر أوEditor نافذة أدواتDebug، نافذة في<< الحث عالمة أمام المخزون الملف اسم كتابة أو
Commandكملف الملف هذا )الملف( يخزن البرنامج كتابة انتهاء . بعد M-fileمعين باسم اختيار عبر الصلب قرصك ( علىexample1.m )مثال مكتب سطح أدوات شريط ضمن الخزن أوFile القائمة منSave االختيار
MATLAB(. 9) الشكل في (. كمامالحظة:
االسم إعطاء فباإلمكان(Untitle1) افتراضي اسم البرنامج يحمل الخزن عندعليه. البقاء أو المبرمج فيه يرغب الذي
10
تنفيذ البرنامجخزن البرنامج
شريط الحالة رقم العمودرقم السطر
(: نافذة كتابة البرامج )محرر 7شكل )(: إنشاء ملف جديد.6شكل )الملفات النصية(.
(: نافذة كتابة البرامج )محرر 8شكل )الملفات النصية(.
(: تنفيذ 9شكل )البرنامج.
MATLAB بلغة البرمجة
منExit MATLAB االختيار عبرMATLAB برنامج إغالق نريد عندما-16 كتابة عبر أوMATLAB مكتب سطح نافذة في الموجودةFile القائمة
مكتب سطح زاوية )×( في عالمة أو ، Command نافذة فيExit األمرMATLABاليمنى. العليا
والبرنامج الدوال بين عالمي متغير عن لإلعالنglobal اإليعاز-17الرئيسي.
االيعازات. ( بينtoc) ( وtic) تعليمتي نضع البرنامج تنفيذ زمن لحساب-18مثال:
clc;
clear;
tic;
(commands)
t = toc;
خالل: منHelp الـ في إيعاز عن للبحث -19 Help MATLAB Help
منها:- اإليعاز، عن للبحث طرق عدة هناك 1- Contents.
11
يفضل كتابتها في بداية
أي برنامج رئيسي
MATLAB بلغة البرمجة
2- Index.
3- Search.
4- Demos.
أو البرنامج من جزء أو البرنامج تنفيذ بإيقاف يقومbreak - اإليعاز20تــــنفذ(. الbreak بعد التي )التعليمات الدالة
: أمثـــــلــةfunction ……. if ……. …….
……. ……. …….
……. else …….
……. break; break;
break; .…….
….….
الدالة. من للخروجreturn اإليعاز -21 12
{توقف تنفيذ الدالة فقط}
{توقف في حالة {else
ال تنفذ
MATLAB بلغة البرمجة
function …… مثال:
……..
…….
……
return;
……..
.…...
الخطأ. ونوع السطر رقم على تحتوي الخطأ رسالة -22.ans المتغير إلى تلقائيا تنسب متغير إلى منسبة غير حسابية عملية أي-23 سوف البرنامج فان العمليات في ويدخل مستخدم غير متغير أي-24
خطأ. يعطي
MATLAB : MATLAB Symbols لغة رموزالتالية: األساسية العناصر منMATLAB لغة تتكون
A, B, … , Z, a, b, … , zإنكليزية: وهي: أبجدية أ- حروف
9, …, 2, 1, 0حسابية: ب- أرقام ... الخ.,} , + , - ,= , < , > , ; , *, ( , ) مثل: خاصة ج- رموز
Constants : الثوابتأهمها:- الثوابت من متعددة أنواعMATLAB لغة في يوجد
:Numerical Constants العددية )أ( الثوابتهي: أشكال عدة ولها األرقام من عدد من وتتكون
13
خروج من الدالة
ال تنفذ
MATLAB بلغة البرمجة
18, -472, 23, +0 مثل: الصحيحة: ( الثوابت1)مستخدم. صحيح عدد : أكبرمالحظة
>> bitmax
ans =
9.007199254740991e+015
1-253 تقابل والتي18.0, -472.5, 51.8, 0.0 مثل: الحقيقية: ( الثوابت2)
>> realmin مالحظة:
ans =
2.225073858507201e-308
>> realmax
ans =
1.797693134862316e+308
>> pi
ans =
3.146
المدونة الحقيقية ( الثوابت3) 10N الجبرية الصيغة تحول حيثيائيا: تدوينا
103 تصبح فمثالEN يائيةMATLAB صيغة إلى 2.0E+3 أو2.0E3الجبر: في2.0
102 تصبح وكذلكMATLAB في اليائي بالتدوين في1.7E2-الجبر: - في1.7:0.0032 تصبح وكذلك اليائي التدوين
10-3 3.2E-3 : 3.2 2i , 6 - 9i , 6 + sin (0.5) * j , sqrt (-2) - 1 مثل: العقدية: ( الثوابت4)
= i = jحيث: c = -7.7782 – 4.9497i كان: إذا : 1 مثال
cr = real cr = -7.7782 (c) الحقيقي الجزء فالستخراج
ci = -4.9497 ci = imag التخيلي الجزء وإلستخراج
(c)
14
MATLAB بلغة البرمجة
c2 = 3 * (2 – sqrt (-1) * 3) 6.000 – 9.000i : 2 مثال
: 2 مثال : 1 مثال >> x = 100; >> x = 100;
>> x = double (x); >> x = uint8 (x);
>> y = x + 1; >> y = x + 1;
y = 101 Error
String Constants: الرمزية )ب( الثوابت
من النوع هذا يسمى وأرقام حروف من يتكون هذا الثابت ألن "ثوابت" مجازا كعناوين عادة ويستخدم' ' أي مفردةquotations اقتباس عالمتي بين توضع ورموز بين والموجودة التالية العبارات تسمى ووحداتها، الحسابات من الناتجة القيم توضح
رمزية. ثوابت العليا الحاصرات'The speed of wind ='
�'I love Basrah'
'My birthday = 1970'
تحمل ال فهي داخلها، حسابية أرقاما استخدمت وان أعاله، الرمزية الثوابت كل يجوز ال انه الرمزية الثوابت استعمال أثناء بالذكر الجدير ومن حسابي، معنى
15
Numeric الرقمية )العددية(
int8, uint8 (1 byte)int16, uint16 (2 bytes)int32, uint32 (4 bytes)int64, uint64 (8 bytes)
singlereal نوع
(4 bytes)
doubleMATLAB االفتراضي في
real نوع (8 bytes)
ال تدخل في العمليات الحسابية )تستخدم لتقليل
حجم الخزن(
ال تدخل في العمليات الحسابية
تدخل في العمليات الحسابية
MATLAB بلغة البرمجة
هناك أن أي التنبيه ينبغي كما حاصراتها، داخل علوية حاصرات استخدام رمزية قيمابالصورة: ذلك كتابة ويمكن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 لغة فيl (small letter) . حرف3 عن زائد رمز أي وسيهمل رمزا 63 تحوي أن المتغيرات ألسماء . يمكن4
63 . أو األرقام من عدد بأي متبوعا بحرف المتغيرات أسماء تبدأ أن . يجب5
الفراغ. أو الخاصة الرموز استخدام زيجو . وال underscore أو األحرف., …(if, while, input) الصغيرة بالحروف تكتب MATLAB أوامر . جميع6 وهي:MATLAB لغة في المتغيرات من أنواع عدة هناك
Numerical Variables: العددية )أ( المتغيرات
أن ويمكنb إلىa وZ إلىA من الحروف من مجموعة أو واحد حرف من تتكون والحروف األرقام من سلسلة تكون أن ويمكن9 إلى0 من أرقام على يحتوي أن كذلك بحرف( ويمكن مبدوءة وحروف أرقام من )خليط بحرف يبدأ أن بشرط
16
MATLAB بلغة البرمجة
عددية المتغير قيمة رمزا. وتكون63 حتىunderscore على المتغير يحتويأسي(. أو عقدي حقيقي، ) صحيح،مثال:
Ali_Ahmed, X2, S2, ks, K
الحسابي التعبير عمليات بينهما تجمع والمتغيرات الثوابت من مجموعة من الحسابي التعبير يتكون
عن تعبر آالتية ^ واألمثلة *، /، -، +، مثل الحسابية الرموز فيها ويستخدم حسابية.MATLAB بلغة صيغت جبرية تعابير
MATLAB بلغة التعبير الجبري التعبير a – 3 * b a – 3b
c ^ 2 – 10 c2 - 10
(a ^ 2 + b ^ 2) / 12 a2 + b2 / 12
m * (7 * d – 8 * g) m (7d – 8g)
Rule of Precedence)األولوية( األسبقية قاعدة التعابير في الحسابية العمليات أولويات وترتيب فهم في مهمة القاعدة وهذه
األولوية أن على القاعدة وتنص الحاسب، وينفذها يجريها كما الحسابية، والمعامالت اليمين, وبالنسبة إلى اليسار ومن القوسين بين الموجودة للعمليات تعطى األولى
)أو والجمع القسمة( ثانيا، )أو أوال, والضرب األس إلى فالرفع الحسابية للعمليات القاعدة: هذه يوضع التالي والمثال الطرح( أخيراالتعبير:
A / B + C الجبر في يكافئ +C
الجبر في يكافئA( / B + C) التعبير يكافئ بينما
17
1
2
2
1
MATLAB بلغة البرمجة
يجري األقواس داخل الجمع الن نتيجة علىA يقسم ثم األولوية حسب أوالالقوس.
التعبيرمثال: M) ^ A - B / (K * F - X
التالية: الخطوات حسب العمليات تنفيذأيضا. األولوية حسب داخلها العمليات وتنفذ األولى، األولوية األقواس تأخذ
واحدة. كمية لتصبحM األس إلىX : رفع األولى العمليةواحدة. كمية لتصبح F في K ضرب الثانية: العملية النتيجة وتصبح الثانية العملية نتيجة من األولى العملية نتيجة : طرح الثالثة العملية
واحدة. كميةواحدة. كمية النتيجة وتصبح الثالثة العملية نتيجة علىB : تقسم الرابعة العمليةواحدة. كمية النتيجة وتصبحA من الرابعة العملية نتيجة : تطرح الخامسة العملية
Arithmetic Statement الحسابية الجملة
أن إال الجبر في الحسابية المعادلة تكافئMATLAB في الحسابية الجملة MATLABاأليسر الطرف في قيمته حساب المراد المتغير اسم يكون أن تشترط
األيمن، الطرف المعادلة( في )بقية الحسابي التعبير يكون بينما أشارة بدون وحدهالتالية: األمثلة في كما
18
34
2
5
1
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';
في استخدمت لو حسابية قيم لها يكون ال األيمن الطرف في التعابيرمالحظة:. ' ' داخل موضوعة ألنها حسابية عمليات
:Library Functions المكتبية االقترانات
19
23
1
MATLAB بلغة البرمجة
اقترانات رياضية يكثرMATLAB يتوفر في معظم الحاسبات باستخدام لغة استعمالنا لها، مثل الدوال واالقترانات المثلثية واللوغارتيمية وغيرها ويمكن
استدعائها في أي وقت، ومنها:المعـــــــــنىاالقتران
Sqrtالتربيعي الجذرabsالمطلقة القيمةexp10 بأساس قوة إلى المرفوعlogالطبيعي اللوغاريتم
log 10العشري اللوغاريتمlog 22 األساس ذو اللوغاريتمsinالزاوية جيبCosالزاوية تمام جيبTanالزاوية ظلatanالزاوية معكوس ظلfixالصفر باتجاه التدوير
floorالسالبة الالنهاية باتجاه التدويرceilالموجبة الالنهاية باتجاه التدوير
roundصحيح عدد أقرب باتجاه التدويرmodالقسمة حاصل من الصحيح الجزءremالقسمة بقيةSignموجبة, سالبة, صفر كانت إذا العدد إشارةimagالتخيلي القسمrealالحقيقي القسم
factorاألولية العواملIsprimeيعيد trueأوليا العدد كان إذاprimesاألولية باألعداد قائمة ينشئ
20
MATLAB بلغة البرمجة
gcdاألعظم المشترك القاسمlcmاألصغر المشترك المضاعف
: مثال>> x = 2.6;
>> y1 = fix (x); y2 = floor (x); y3 = ceil (x); y4 = round (x);
y1 = 2
y2 = 2
y3 = 3
y4 = 3 األربعة الدوال بين س/ مالفرق
أعاله؟مالحظة:
الحسابية. العمليات تنفيذ عند األقواس بعد أولوية المكتبية االقترانات تأخذ sin (a + b) – m / sqrt (d)
يلي: كما الحسابية العمليات تنفيذ يكون.b معa جمع قيمة : إيجاد األولى العملية(.1) العملية لناتج الزاوية جيب قيمة : إيجاد الثانية العملية.d لــ التربيعي الجذر قيمة : إيجاد الثالثة العملية(.3) العملية ناتج علىm قسمة ناتج قيمة ناتج : إيجاد الرابعة العملية النتيجة ( وتصبح2) العملية ناتج ( من4) العملية ناتج : طرح الخامسة العملية واحدة كمية النهائية واحدا(. )عددا في قيمتها وإزائها الجبر في مكتبية إقترانات التالية الجمل تمثلمثال:
MATLAB:
21
54
312
MATLAB بلغة البرمجة
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)
r = 2 * sqrt (exp (x – 5 ))
t = abs (x – sqrt (y)) / (a + m)
g = p ^ (3 / 2) + (a * b / c) ^ (1 / 5)
22
MATLAB بلغة البرمجة
المصفوفات على والعمليات المصفوفات البعد وحيدة أعداد من مؤلفة اآلن حتى أجريتها التي الحسابات جميع كانت لقد
هي المفردة األعداد على المجراة العمليات مفردة. وتعتبر أعداد سنسميها نفس إجراء الشخص يريد وعندما الوقت، الرياضيات. وبنفس علم أساسيات
مرات، عدة العملية إجراء إعادة أكثر إلى فسيحتاج أكثر، أو مفرد عدد على العملية إلىMATLAB برنامج عمد المشكلة، هذه والجهد. ولحل الوقت في هدر يعني مما
البيانات. من مصفوفة على الرياضية العمليات إجراءالبسيطة المصفوفة
أن إذ سلسلة، وبطريقة مباشر بشكل المصفوفات معMATLAB برنامج يتعامل جدا. سهلة بطريقة يتم المصفوفات إنشاء
x = [1, 3, 7, 9, 20] ( 1 ) مثال : حيثy = sin (x) (: 2 ) مثال
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 لغة في مصفوفة إلنشاء عليك ما كل يقتصر بقوس المصفوفة أغلق )فارزة( ثم أو بفراغ المطلوبة القيم تدخل ثم يساري
حساب تريد بأنك يعلمMATLAB برنامج فأنsin (x) كتابة تريد يميني. وعندما هذه وتجعلy هي أخرى مصفوفة في النتائج بوضع ويقومx قيم لكل الجيب
األخرى. البرمجة لغات عن مختلفةMATLAB اإلمكانيةالفهرسة أو المصفوفة عنونة
منها عنصر أي إلى الوصول يمكن عنصر،11 من تتكون أعاله المصفوفة له. الفهرسة باستخدام
>> x (3)
23
x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9y 0 0.31 0.59 0.81 0.95 1 0.95 0.81 0.59 0.31 0
MATLAB بلغة البرمجة
ans =
0.6283
>> y (5)
ans =
0.9511
يستخدمMATLAB برنامج فأن الوقت بنفس العناصر من مجموعة ولتعريف ):(. المتعامدتين النقطتين
>> x (1: 5)
ans =
0 0.3142 0.6283 0.9425 1.2566
تبدأ بأن 5: 1 الرمز ويجبرك ،x المصفوفة من األولى الخمسة العناصر هي هذه.5 الرقم حتى وتعد1 بالرقممثال:
>> x (7: end)
ans =
1.885 2.1991 2.5133 2.8274 3.1416
آخر إلىend الكلمة تشير إذ المصفوفة، نهاية وحتى السابع العنصر من تكمل وهناالمصفوفة. عناصر من عنصرمثال:
>> y (3: -1: 1)
ans =
0.5878 0.3090 0
بأن1: 1: -3 الرمز ويخبرك عكسي، بترتيب األول ثم الثاني ثم الثالث العنصر هنا وتعد3 بالرقم تبدأ .1 الرقم عند وتقف1 بقيمة نزوال
مثال:>> x (2: 2: 7)
ans =
24
MATLAB بلغة البرمجة
0.3142 0.9425 1.5708
بأن7: 2: 2 الرمز ويخبرك ،x المصفوفة من والسادس والرابع الثاني العنصر هنا.7 الرقم إلى تصل عندما وتقف2 بــ األعلى نحو وتعد2 بالرقم تبدأ
مثال: >> y ([8 2 9 1])
ans =
0.8090 0.3090 0.5878 0
بالترتيبy المصفوفة عناصر لوضع[1 9 2 8] أخرى مصفوفة هنا استخدمنا الثامن العنصر وضع حيث فيه، نرغب الذي وضع بينما ثانيا، الثاني والعنصر أوال
التاسع العنصر 9 2 8] المصفوفة تدل الواقع رابعا. في األول والعنصر ثالثا.y المصفوفة من المرغوبة العناصر عناوين[1مثال:
>> y ([1 1 3 4 2 2])
ans =
0 0 0.5878 0.8090 0.3090 0.3090
مثال: حيث صحيح غير كرقم الدليل يقبل الMATLAB برنامج بأن التالية األمثلة توضحخطأ. رسالة يعطي
>> y (3.2)
Error
>> y (3.7)
Error
>> y (11.6)
Error المصفوفة طول الدليل تجاوز بسبب خطأالمصفوفة إنشاء
25
MATLAB بلغة البرمجة
قمنا لقد المصفوفة، ضمن العناصر كل كتابة عبرx مصفوفة قيم بإدخال سابقا عشر احد تحويx المصفوفة الن مقبول األمر وهنا احتوت لو ماذا فقط، عنصرا عنصرا؟111المتعامدتين. النقطتين باستخدام وذلك ،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 =
1 2 3 4 5
b =
1 3 5 7 9
26
القيمة االبتدائية القيمة النهائيةعدد القيم
MATLAB بلغة البرمجة
مالحظة: واحد سطر ضمن التعبيرين دمج تستطيع بأنك تذكر ولكن مصفوفتين، إنشاء تم هنابفواصل: تفصل لم إذا
>> 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 =
27
MATLAB بلغة البرمجة
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 متساوية غير األعمدة عدد 28
a السطر )المدور( لتحويل المنقول إشارة هنا استخدمنا لقد.b العمود إلى
تنزيل سطر آخر
MATLAB بلغة البرمجة
مالحظة: ; half = g (2, 2) عنصر
; 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 =
29
MATLAB بلغة البرمجة
-1 0 1 2
3 4 5 6
7 8 9 10
.2 العددg المصفوفة عناصر من عنصر كل من ط���رح وهنامثال:
>> 2 * g – 1
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 =
30
عناصر من عنصر كل فضرب هنا أما كل من ط�رح , ثم 2 بالعدد g المصفوفة
1. الرقم الناتجة العناصر من عنصر
MATLAB بلغة البرمجة
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
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
31
MATLAB بلغة البرمجة
12 14 16 18
الحظ أسبقية تسلسل نفس تعتمد المصفوفات بين الحسابية العمليات بأن أيضا المفردة, ويمكن األعداد على الحسابية العمليات إجراء عند المعتمد العمليات أيضا بالعنصر عنصر كل ضرب ويمكن األولوية. كما تلك لكسر األقواس استخدام�سبق إن شرط قسمته أو األخرى المصفوفة من له المناظر أو الضرب إشارة تالشكل: في كما بنقطة القسمة
>> g .* h
ans =
1 2 3 4
10 12 14 16
27 30 33 36
استخدام عبر بعنصر عنصر 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
32
MATLAB بلغة البرمجة
MATLAB برنامج سيقوم بنقطة, عندها القسمة إشارة إحدى سبقت إذا مالحظة:
ستحدد نقطة, فإننا بدون القسمة كانت إذا بعنصر. أما عنصرا المصفوفتين بتقسيمعادية. مصفوفات قسمة
>> g .^ 2
ans =
1 4 9 16
25 36 49 64
81 100 121 144
. g المصفوفة عناصر من عنصر كل مربع هنا وجدنا ولقدالقياسية المصفوفات
تلك لتمتع قياسية, وذلك مصفوفات إنشاء من MATLAB برنامج يمكنك خاصة, وتتضمن وميزات بخواص المصفوفات جميع التي المصفوفات أيضا
والمصفوفات العشوائية األعداد للواحد, ومصفوفات مساوية أو صفرية عناصرهاثابتة. أعداد عناصرها التي والمصفوفات القطرية
>> ones (3) ( واحديه مصفوفة )
ans =
1 1 1
1 1 1
1 1 1
>> zeros (2, 5) ( صفرية مصفوفة )
ans =
0 0 0 0
0 0 0 0
>> size (g) ( مصفوفة أبعاد تحديد )
ans =
33
األعمدة األسطر
MATLAB بلغة البرمجة
3 4
>> ones (size (g))
ans =
1 1 1 1
1 1 1 1
1 1 1 1
zeros أو ones (n) مثل مفرد برقم القياسية المصفوفة اسم يتبع عندمامالحظة:
(n) برنامج فأن MATLAB مربعة مصفوفات ينشىء n nأو أصفارا على تحتوي الترتيب. على واحديه
>> 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)
ans =
0.4447 0.6154 0.7919 0.9218 0.7382
مثال:>> d = pi;
>> d * ones (3, 4)
ans =
34
MATLAB بلغة البرمجة
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) (3 4 دباألبعا 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]
A =
1 2 3
4 5 6
7 8 9
35
MATLAB بلغة البرمجة
>> 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]
B =
7 8 9
4 5 6
36
صفرا.( 3, 3) الموقع في العنصر جعل
ان وبما1 تكون( 6, 2) الموقع في العنصر جعل سيقوم أعمدة, لذلك ستة تمتلك الA المصفوفة
العناصر بقي ويضع الضرورة حسب بتوسيعها البرنامج مستطيلة. وتكون صفرا
4 تكون الرابع العمود عناصر جميع جعل
4 تكون الرابع العمود عناصر جميع جعل
MATLAB بلغة البرمجة
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
37
A المصفوفة توسيع عبرC المصفوفة على حصلنا
.B المصفوفة من والثالث األول العمودين بإضافة
MATLAB بلغة البرمجة
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)
38
العمود اسطر كل حذف عبرB المصفوفة صياغة إعادة تمت عنصر أي تضع األصلية, وعندماB المصفوفة من الثاني مساويا
المصفوفة من حذفها تريد انك يعني , فهذا] [ الفارغة للمصفوفةالحذف. بعد المتبقية العناصر على لتحافظ وتقليصها
MATLAB بلغة البرمجة
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
يمكن المنطقية. كما العمليات عن الناتجة المنطقية المصفوفات هناك أيضا المصفوفات لحجم مساويا حجمها كان إذا المنطقية المصفوفات استخدام
وهيtrue أي(1) القيمة ذات العناصر على اإلبقاء الحالة هذه في المعنونة, ويتم غير العناصر وهي false أي(0) العناصر يتجاهل بينما للشرط المحققة العناصرالتالي: المثال الشرط. ولنأخذ المحققة
>> abs (x) > 1
ans =
1 1 0 0 0 1 1
39
MATLAB بلغة البرمجة
>> y = x (abs (x) > 1)
من اكبر قيمتها التيx المصفوفة من العناصر تلك من y المصفوفة إنشاء تم هناالواحد.
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 االيعاز الترتيب, ويؤمنالتالي: المثال
40
MATLAB بلغة البرمجة
= 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
وكما مختلف بشكل تتم الترتيب عملية فان البعد ثنائية المصفوفة تكون وعندمايلي:
عمود( بعد )عمود >> 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
41
المواقع القديمة الترتيب الجديد
MATLAB بلغة البرمجة
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
جزئية مصفوفة عن البحث شرطا تحقق التي العناصر دليل أو موقع تعرف إن األحيان بعض في المفيد من
هذه بتحقيق MATLAB برنامج معينة. يقوم مصفوفة ضمن معينا, والموجودة نتيجة تكون الذي العنصر موقع أو دليل لك يعيد , والذيfind االيعاز عبر الغاية
التالي: المثال , واليكtrue ما لشرط تحقيقه>> x = -3: 3
x =
-3 -2 -1 0 1 2 3
>> k = find (abs (x) > 1)
k = (الموقع) 1 2 6 7
>> y = x (k)
y =
-3 -2 2 3
>> y = x (abs (x) > 1)
y =
-3 -2 2 3
بعد )عمود أيضا البعد الثنائية المصفوفات في يعمل أنfind االيعاز ويستطيععمود(, فمثال:
42
MATLAB بلغة البرمجة
>> 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 =
>> diag (A)
ans =
7
8
8
9
مالحظة: في عنصر واصغر اكبر يوجدان الذين max، min الدالتين MATLAB برنامج يوفر
ومواقعهما. المصفوفة
43
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
البعد: ثنائية المصفوفة كون حالة في>> 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
44
MATLAB بلغة البرمجة
>> [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
أخرى: طريقة توجدمالحظة: >> z = max (max (A));
>> z = min (min (A));
.sum المجموع لحساب الشيء نفسمالحظة: 45
MATLAB بلغة البرمجة
>> 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) السفلى المثلية الجزء استخالص
46
MATLAB بلغة البرمجة
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
) األعمدة عدد الثاني العنصر يعطي بينما( 2)األسطر عدد عن األول العنصر يعبر4).
47
MATLAB بلغة البرمجة
>> [r, c] = size (A)
r =
2
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
48
MATLAB بلغة البرمجة
ans =
2
بالدمج. مصفوفة توليد طريقةمالحظة:>> x = [1 2; 3 4];
>> y = [x x .^ 2; x .^ 3 x .^ 4];
اإلبعاد متعددة المصفوفات التي والعمليات األبعاد وثنائية أحادية المصفوفات السابق الفصل في شرحنا لقد
n-D) )أي األبعاد متعددة المصفوفات MATLAB برنامج عليها. يدعم تجري
arrays أحادية المصفوفات على المطبقة العنونة وتقنيات االيعازات نفس وذلك تمتلك , ولذلك(pages) صفحات عبر الثالث البعد عام, يرقم البعد. وبشكل وثنائية
49
MATLAB بلغة البرمجة
من صفحة كل تتألف وصفحات, حيث وأعمدة اسطرا البعد ثالثية المصفوفات متساويا عددا صفحة كل تمتلك أن وأعمدة, ويجب اسطر ذات البعد ثنائية مصفوفة
صفحة. كل في بالعكس والعكس واألعمدة األسطر من ثالثية مصفوفات سنستخدم المصفوفات, ولكننا في األبعاد لعدد حد هناك ليس
وإظهارها. تخيلها سهولة بسبب الفصل هذا في األبعادالمصفوفة تركيب
بعضها: مختلفة, واليك بطرق األبعاد المتعددة المصفوفة إنشاء يمكن >> A = zeros (4, 3, 2)
A (:, :, 1) =
0 0 0
0 0 0
0 0 0
0 0 0
A (:, :, 2) =
0 0 0
0 0 0
0 0 0
0 0 0
وصفحتين, ولقد أعمدة وثالثة اسطر أربعة من الصفرية المصفوفة هذه تتألفالثانية. الصفحة ثم األولى الصفحة ظهرتمثال:
>> B (:, :, 1) = zeros (2, 3);
>> B (:, :, 2) = ones (2, 3);
>> B (:, :, 3) = 4;
>> B
B (:, :, 1) =
50
MATLAB بلغة البرمجة
0 0 0
0 0 0
B (:, :, 2) =
1 1 1
1 1 1
B (:, :, 3) =
4 4 4
4 4 4
إلى األبعاد ثنائية مصفوفة من المصفوفة لتحويل reshape االيعاز استخدام يمكنوكاالتي: األبعاد ثالثية مصفوفة
>> C = [B (:, :, 1), B (:, :, 2), B (:, :, 3)]
C =
0 0 0 1 1 1 4 4 4
0 0 0 1 1 1 4 4 4
>> reshape (C, 2, 3, 3)
ans (:, :, 1) =
0 0 0
0 0 0
ans (:, :, 2) =
1 1 1
1 1 1
ans (:, :, 3) =
4 4 4
4 4 4
المصفوفة حجمسابقا. شرحنا كما أبعادها كل وفق المصفوفة بعد يعيد size االيعاز
>> [r, c, p] = size (C)
51
MATLAB بلغة البرمجة
r =
2
c =
3
p =
3
نستطيع متغيرة, عندما ابعادها كانت أو المصفوفة إبعاد عدد نعرف لم وإذايلي: كما ndims االيعاز استخدام
>> ndims (C)
ans =
3
>> numel (C) المصفوفة عناصر عدد إيجاد
ans =
18
>> length (size (C)) بالمصفوفة بعد اكبر طول إيجاد
ans =
3
Cell Arrays الخاليا مصفوفة عن عبارة عناصرها تكون MATLAB لغة في مصفوفات الخاليا مصفوفات تعتبر
خلية كل خاليا, وتتضمن أو رمزية أو عددية مصفوفات تكون قد البيانات من نوعا خاليا مصفوفات أو بسيطة كائنات الخلية مصفوفة من خلية تحوي قد أخرى. فمثال
52
MATLAB بلغة البرمجة
على الثالثة تحوي رمزية, بينما مصفوفة األخرى الخلية وتحوي عددية مصفوفة متجانسة(( كما )غير مختلفة بيانية بأنواع مصفوفات باستخدام )يسمح عقدية أعداد
المصفوفات مع الحال هي كما كان بعد بأي الخاليا مصفوفات إنشاء ويمكنالبعد. أحادية مصفوفات عن عبارة تكون الخاليا مصفوفات معظم العددية, ولكن
تقسيم إعادة عبر أو اإلسناد تعابير استخدام عبر الخاليا مصفوفات تنشأ الخاليا. إلى البيانات بإسناد نقوم , ثم cell باإليعاز المصفوفة
مصفوفة رموز استخدام أردت الخاليا. وإذا إلى للوصول مختلفتان طريقتان هناك ,} { مجموعة بأقواس الخلية تحيط أن عليك المصفوفة, يجب على للداللة قياسية
الخاليا, واليك مصفوفات لتعريف األقواس هذه يستخدمMATLAB برنامج إن إذالتالية: األمثلة
>> A (1, 1) = {[1 2 3; 4 5 6; 7 8 9]};
>> A (1, 2) = {2 + 3i};
>> A (2, 1) = {'Ali Ahmed'};
>> A (2, 2) = {12: -2: 0};
>> A
A =
[3 3 double] [2.0000 + 3.0000i]
'Ali Ahmed' [1 7 double]
2 بعداها خلية كمصفوفة المصفوفة يظهر MATLAB برنامج إن الحظ ولكن2 أساسي بشكل الخلية محتويات البرنامج يظهر , وإنما الخلية محتويات يظهر ال ذلك المحتويات هذه تأخذ لم إذا أخذت إذا الخلية محتويات ويوصف كبيرا, كما حجما
يدل المساواة من األيمن الجانب على مجموعات أقواس وجود معقوال. إن حجما cell) الخلية بفهرسة يسمى ما وهذا عددية قيما وليس خلية هو إليه المشار إن على
indexing) نفسها. الخلية مصفوفة التالية التعابير , وسينشئ
مالحظة:
53
MATLAB بلغة البرمجة
يضع بأن MATLAB برنامج A {i, j} = x وA (i, j) = {x} التعبيرين كال يخبر .A الخلية مصفوفة من(i, j) العنصر في x المتغير A {i, j} التعبير يدعى , بينما (cell indexing) الخلية بفهرسة A (i, j) التعبير يدعى
محتوى على} { المجموعة أقواس تدل أي ( content addressing) المحتوى بعنونةمحتواها. إلى النظر دون ) ( الخاليا العادية األقواس تعرف الخلية, بينما
مثال:>> y = {1, 'hello', 1 > 5}
y =
[1] 'hello' [0]
>> y {1}
ans =
1
>> y {2}
ans =
hello
>> y {3}
ans =
0
مثال: >> ce = {[1 2 3; 5 6 7], 'yes', 3 > 2};
>> ce {1}(2, 2)
ans =
6
مثال:>> x = rand (3, 3);
>> y = rand (3, 3);
>> z = rand (3, 3);
54
MATLAB بلغة البرمجة
>> w {1} = x;
>> w {2} = y;
>> w {3} = z;
>> w
ans =
[3 3 double] [3 3 double] [3 3 double]
مثال:>> x {1} = rand (3, 3);
>> x {2} = rand (3, 3);
>> x {3} = rand (3, 3);
.
.
.
.
.
>> x {9} = rand (3, 3);
>> x {1}
ans =
0.8462 0.6721 0.6813
0.5252 0.8381 0.3795
0.2026 0.0196 0.8318
)الخلية( األولى مصفوفة في الثاني والعمود الثاني السطر في الموجود العنصر ( >>x {1} (2, 2
ans =
0.8381
واحدة. مصفوفة في السابق المثال في التسعة المصفوفات لجمع برنامجمثال: 55
MATLAB بلغة البرمجة
>> L = length (x);
>> sum1 = 0;
>> for i = 1: L
b = x {i};
sum1 = sum1 + b;
end;
بالنموذج الخاليا محتوى إظهار علىMATLAB برنامج celldisp اإليعاز يجبر ذلك: يوضح الذي التالي المثال العادي, واليك
>> celldisp (A)
A (1, 1) =
1 2 3
4 5 6
7 8 9
A (2, 1) =
Ali Ahmed
A (1, 2) =
2.0000 + 3.0000i
A (2, 2) =
12 10 8 6 4 2 0
�ظهر كما باستخدام الخلية محتوى طلب عبر المفردة الخلية محتوى البرنامج ي
المحتوى, وهذا عنونة إلى الدخول دون فقط الخلية تعرف التي الخلية فهرسة عن مختلف بشكل يتم
الخلية, فمثال: محتوى>> A {2, 2}
ans =
12 10 8 6 4 2 0
>> A (2, 2)
56
MATLAB بلغة البرمجة
ans =
[1 7 double]
>> A (1, :)
ans =
[3 3 double] [2.0000 + 3.0000i]
خاليا الن , وذلكans االسم السابقة الخاليا لجميع استخدم البرنامج بأن الحظ محدد. اسم لها ليس المخزونة البيانات
استخدمنا لقد أقواس العددية, وتعمل المصفوفات إلنشاء المربعة األقواس سابقا تفصل بينما بفواصل األعمدة للخاليا, وتفصل بالنسبة العمل نفس المجموعة
التالي المثال منقوطة. واليك بفواصل األسطر :
>> B = {[1 2], 'John Smith'; 2 + 3i, 5}
B =
[1 2 double] 'John Smith'
[2.0000 + 3.0000i] [5]
�مأل أن العددية المصفوفات استخدام عند المألوف من صفرية بعناصر المصفوفة ت�مأل ثم مصفوفات في المنهج نفس استخدام الالزمة, ويمكن بالبيانات جديد من ت
] [ فارغة عددية بمصفوفات ويملؤها خلية مصفوفة cellااليعاز ينشأ الخاليا, حيثالتالي: المثال ولنأخذ
>> C = cell (2, 3)
C =
[ ] [ ] [ ]
[ ] [ ] [ ]
عنونة طريق عن الخاليا تعميم يمكن فأنة الخلية مصفوفة تعريف يتم إن ما التالي: المثال يبينه الخاليا, كما وفهرسة المحتوى
>> C (1, 1) = 'The does n't work'
Error
57
MATLAB بلغة البرمجة
الطرف يكون أن وبالتالي, يجب الخلية دليل األيسر الجانب في هنا استخدمنا لقد �خط لم كوننا الخطأ, وليس ظهور سبب ما وهذا خلية األيمن بأقواس محتوياتها ن
مجموعة.>> C (1, 1) = {'The does n't work'}
C =
'The does n't work' [ ] [ ]
[ ] [ ] [ ]
>> C (2, 3) = {'This works too'}
C =
'This does work' [ ] [ ]
[ ] [ ] 'This works too'
األخيرة, فان العبارة من األيسر الجانب في المجموعة أقواس وجود وبسبب مرة هنا المعنونة. ويوجد الخلية في الرمزي الخيط سيضع MATLAB برنامج األصلية العبارة تعتبر محتوى, بينما عنونة أخرى المصفوفة. فهرسة عن مثاال
الخلية مصفوفة مع التعامل المربعة األقواس نستخدم أن يمكن مصفوفات ضمن الخاليا مصفوفات لضم أيضا
التالي: المثال العددية, واليك للمصفوفة الحال هو اكبر, كما>> A
A=
[3 3 double] [2.0000 + 3.0000i]
'Ali Ahmed' [1 7 double]
>> B
B =
[1 2 double] 'John Smith'
[2.0000 + 3.0000i] [5]
58
MATLAB بلغة البرمجة
>> C = [A; B] ( األبعاد متساوية )
C =
[3 3 double] [2.0000 + 3.0000i]
'Ali Ahmed' [1 7 double]
[1 2 double] 'John Smith'
[2.0000 + 3.0000i] [5]
لعنونة مناسبة تقنيات استخدام عبر جديدة خاليا إلنشاء جزئية خاليا تحديد يمكن التالي: المثال في كما الخلية مصفوفة
>> D = C ([1 3], :)
D =
[3 3 double] [2.0000 + 3.0000i]
[1 2 double] 'John Smith'
الفارغة. الخلية استخدام عبر الخلية مصفوفة سطر حذف ويمكن>> C (3, :) = [ ]
C =
[3 3 double] [2.0000 + 3.0000i]
'Ali Ahmed' [1 7 double]
[2.0000 + 3.0000i] [5]
حذف أو إضافة يستطيع ال الخاليا, ولكنه مواضع لتغير reshape االيعاز ويستخدمالتالي: المثال ذلك, نأخذ وليبان الخاليا
>> x = cells (3, 4);
>> size (x)
ans =
3 4
>> y = reshape (x, 6, 2);
>> size (y)
ans =
59
MATLAB بلغة البرمجة
6 2
يعيد نوعها, وكذلك تغير بدون مصفوفة أية تشكيل يعيد reshape االيعاز إن أي المصفوفات. من نوع أي حجم size االيعاز
تكرارها على يعمل حيث الخاليا مصفوفات مع بالتعامل repmat االيعاز يعيد كذلك المطلوب. للتكرار وفقامثال:
>> y
y =
[ ] [ ]
[ ] [ ]
[ ] [ ]
[ ] [ ]
[ ] [ ]
[ ] [ ]
>> z = repmat (y, 1, 3)
z =
[ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]
60
MATLAB بلغة البرمجة
الرمزية السالسل األرقام, مع التعامل على القدرة في الحقيقية MATLAB برنامج قوة تكمن
يحتاج ولكنه وأسماء العناوين وضع حالة في كما النصوص مع التعامل إلى أحياناالرسومات. على المحاور
الرمزية السلسة تركيب قيم من خاصة عددية مصفوفات من MATLAB لغة في الرمزية السالسل تتألف
ASCII الرمزية, فمثال: السلسة أظهار تعيد والتي>> t = 'How about this character string?'
t =
How about this character string?
>> size (t)
ans =
1 32
>> whos وصنفها بياناتها وعدد وحجومها المتغيرات أسماء عرض إيعاز
Name Size Bytes Class
ans 1 2 16 double array
t 1 32 64 character array
Grand total is 34 elements using 80 bytes
كل مفردة. ويعتبر علوية بفاصلة محاطة نص هي ببساطة الرمزية السالسل إن السلسة في حرف حرف, كل لتخزين بايتين إلى نحتاج مصفوفة, والتي من عنصرا
أو العددية المصفوفة عناصر من عنصر لكل المخصصة بايت8 عن بذلك ونختلف بعض إلجراء فقط نحتاج رمزية لسلسلةASCII التمثيل الدقة. ولرؤية مضاعفة المثال في , وكماdouble االيعاز استخدام أو السلسلة على الرياضية العمليات
التالي:
61
MATLAB بلغة البرمجة
>> u = double (t)
u =
Columns 1 through 12
72 111 119 32 97 98 111 117 116 32 116 104
Columns 13 through 24
105 115 32 99 104 97 114 97 99 116 101 114
Columns 25 through 32
32 115 116 114 105 110 103 63
>> char (u)
ans =
How about this character string?
>> char (u (1))
ans =
H
التعامل أدوات بكل معها التعامل يمكن مصفوفات, لذلك هي السالسل إن وبما , فمثال:MATLAB لغة في المتوفرة المصفوفات مع
>> u = t (16: 24)
u =
character
السالسل وتعنون 24 إلى16 من العناصر المصفوفات, وتحوي تعنون كما تماماcharacter الكلمة أعاله المثال في
>> u = t (24: -1: 16)
u =
retcarahc
عكسي. بشكل character الكلمة تهجئة تمت وهنا >> u = t (16: 24)'
u =
62
MATLAB بلغة البرمجة
c
h
a
r
a
c
t
e
r
مدور)منقول(. عملية عبر عمود مصفوفة إلى character كلمة تحويل هنا وتم وكاالتي: الرمزية المصفوفات دمج يمكن
>> u = 'Hameed ';
>> v = 'Aiad';
>> w = [u v]
w =
Hameed Aiad
المثال في كما المتغير اسم طباعة بدون السلسلة إظهار disp االيعاز لنا ويسمح التالي:
>> disp (u)
Hameed
اسطر, المصفوفات( عدة باقي في )كما الرمزية السالسل تتملك أن ويمكن سطر كل يحوي أن يجب ولكن عددا استخدام يجب األعمدة, لذلك من متساويا
التالي: المثال في كما متساوية األسطر كل طول لجعل الفراغات>> v = ['character strings having more than '
'one row must have the same number'
'of columns just like arrays! ']
63
MATLAB بلغة البرمجة
v =
character string having more than
one row must have the same number
of columns just like array!
األسطر متعددة نصية مصفوفةchar االيعاز وينشئ مستقلة سالسل من انطالقاالتالي: المثال في الطول, كما مختلفة
>> legends = char ('Wilt', 'Russel', 'Kareem', 'Bird', 'Magic', 'Jordan')
legends =
Wilt
Russel
Kareem
Bird
Magic
Jordan
>> size (legends)
ans =
6 6
وبالعكس رمزية سالسل إلى األعداد تحويل رمزية سالسل إلى العددية النتائج بتحويل الحاالت من العديد في نرغب قد
MATLAB برنامج الرمزية. يزودك السالسل من العددية البيانات واستخراج
سالسل إلى العددية النتائج لتحويل وغيرها fprintf وint2str و num2str باإليعازالتحويل: على التالية األمثلة رمزية, واليك
>> int2str (35)
ans =
35
>> class (ans)
64
MATLAB بلغة البرمجة
ans =
char
>> num2str (3.5)
ans =
3.5
>> class (ans)
ans =
char
>> fprintf ('% 4.3f\n', sqrt (2))
1.414
>> size (fprintf ('% 4.3f\n' , sqrt (2))
ans =
1 1
مثال:>> radius = sqrt (2);
>> area = pi * radius ^ 2;
>> fprintf ('A circle of radius% 6.4f has an area of % 6.4f', radius, area)
A circle of radius 1.4142 has an area of 6.2832
. area والمتغير radiusالمتغير إلظهار خانات ست6.4f% الصيغة هنا تحدد أخرى(: )طريقة مثال
>> S = ['A circle of radius ', (num2str (radius)), 'has an of ', (num2str (area)) '.']
S =
A circle of radius 1.4121 has an area of 6.2832.
عددية إلى الرمزية السالسل تحويل>> S = str2num ('3.5')
S =
3.5
65
▼ فراغات
MATLAB بلغة البرمجة
>> t = ['3.5▼' 'sqrt(2)' ;'▼1.5' '▼▼▼▼9.5']
متساوية األسطر أطوال تكون إن يجبt =
3.5 sqrt(2)
1.5 9.5
>> str2num (t)
ans =
3.5000 1.4142
1.5000 9.5000
>> t = '[3.5▼sqrt(2);▼1.5▼9.5]' غير األسطر أطوال تكون أن يمكن
متساويt =
[3.5▼sqrt(2);▼1.5▼9.5]
>> str2num (t)
ans =
3.5000 1.4142
1.5000 9.5000
أخرى. سلسلة ضمن موجودة رمزية لسلسلة البداية أدلة findstr االيعاز يعيد>> b = 'Peter Piper picked a peck of pickled peppers';
>> findstr (b, '▼')
ans =
6 12 1 9 21 26 29 37
>> findstr (b, 'p')
ans =
9 13 22 30 38 40 41
>> findstr (b, 'cow')
ans =
66
مصفوفة رمزية
مصفوفة عددية
مصفوفة رمزية
حرف صغير
MATLAB بلغة البرمجة
[ ]
الرمزية للسالسل الخاليا مصفوفة متعبا, النصية المصفوفات اسطر جميع في األعمدة عدد تساوي شرط يبدو
المشكلة هذه حل آلخر, ويمكن سطر من المضافة الفراغات عدد اختلف إذا خاصة مصفوفة ضمن البيانات أنواع كل وضع يمكننا الخاليا, حيث مصفوفات استخدام عبر
الرمزية. السالسل مع الخاليا لمصفوفة األكبر االستخدام الخاليا, ويتجلى ببساطة الخلية مصفوفة تعتبر بتسمية للمستخدم تسمح التي البيانات من نوعا
التالي: المثال يبينه كما المختلفة, وذلك والحجوم األنواع ذات البيانات من مجموعة>> C = {'How'; 'about'; 'this for a'; 'cell array of strings?'}
C =
'How'
'about'
'this for a'
'cell array of strings?'
>> size (C)
ans =
4 1
في استخدمناها الخاليا, وذلك مصفوفة إلنشاء} { المجموعة أقواس تستخدم اسطر أربعة المثال هذا في Cالمصفوفة بأكملها, وتملك الرمزية السلسلة حصر
مختلفة رمزية سلسلة الخلية مصفوفة من عنصر كل واحدا, ويحوي وعموداالطول.
يلي: كما المصفوفات, وذلك بقية تعنون كما الخاليا مصفوفات وتعنون >> C (2: 3)
ans =
'about'
'this for a'
67
MATLAB بلغة البرمجة
>> C ([4 3 2 1])
ans =
'cell array of strings?'
'this for a'
'about'
'How'
>> C (1)
ans =
'How'
>> size (C (1))
ans =
1 1
C (indices)التعبير الن خاليا, وذلك مصفوفات عن عبارة أالن حتى النتائج زالت ما
خلية محتويات الخاليا. والسترجاع هذه محتوى يحدد ال ولكنه المعطاة الخاليا يعنونالتالي: المثال في كما مجموعة أقواس استخدام عليك محددة جزئية
>> S = C {4}
S =
cell array of strings?
>> size (s)
ans =
1 22
يلي: كما الجزئية الخلية مصفوفة محتويات من جزء عنونة ويمكن كما >> C {4} (1: 10)
ans =
cell array
يبينه مناسبة, كما نصية مصفوفة إلى الخلية مصفوفة محتوياتchar االيعاز يحول التالي: المثال
68
MATLAB بلغة البرمجة
>> S = char (C)
S =
How
about
this for a
cell array of strings?
>> size (S)
ans =
4 22
الرمزية السالسل صياغة ويعيد العكسي التحويل بإجراء cellstrااليعاز ويقوم يلي: كما جيد بشكل
>> cellstr (S)
ans =
'How'
'about'
'this for a'
'cell array of strings?'
69
MATLAB بلغة البرمجة
واإلخراج اإلدخال جملاإلدخال جمل
منها: التنسيب عملية إلى باإلضافة لإلدخال صيغ عدة هناك :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');
للداللة على إدخال 70 string
MATLAB بلغة البرمجة
حوار(: مربع شكل )على لإلدخال ثابتة صيغة -2مثال:
prompt = {'enter x'};
def = {'20'};
dlgTitle = 'Input for my program';
lineNo = 1; % المدخلة السطور عدد
answer = inputdlg (prompt, dlgTitle, lineNo, def);
x = str2num (answer% رقم مع التعامل حالة فيnum إلى string تحويل
{1});
اإلخراج جملمنها: لإلخراج صيغ عدة هناك :disp - تعليمة1
(: 1 ) مثال>> d = 15;
>> disp (d);
15
(: 2 ) مثال>> a = 'ali';
>> disp (a);
ali
71
مصفوفة من األولى القيمةالخاليا
MATLAB بلغة البرمجة
(: 3 ) مثال>> sum = 9.8;
>> disp (['sum = ', num2str (sum)]);
sum = 9.8
(: 4 ) مثال>> disp ('computer');
computer
(: 1 ) مالحظة الواحدة الجملة ضمن واحد بياني نوع ذات قيمةdisp محتويات يكون أن يجب
واحد(. بياني نوع جملة )كل (: 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);
72
عنوان الشيء المطلوب طباعته ) نوع بياني الصندوق
رمزي(
MATLAB بلغة البرمجة
>> 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% يائي تدوين
f% الثابتة النقطة تدوين i% عشري تدوين o% ثماني تدوين
s% رمزي تدوين
x% عشر سداسي تدوين
(: 2 ) مالحظة فارزة بدون االيعازات كتابة خالل من والنتائج واألسماء األعداد طباعة يمكن
.Command Window األمر نافذة في النتائج وستظهر منقوطة
73
MATLAB بلغة البرمجة
الشرطية الجمل العمليات يدعم مثلما والمقارنة المنطقية العمليات MATLAB برنامج يدعم
التي لألسئلة أجوبة على الحصول المنطقية والمعامالت العمليات الرياضية, وتهدف.(True/False) خطأ أو بصح عنها يجاب
إن المقارنة وعمليات المنطقية التعابير جميع مع تعاملها فيMATLAB لغة تعتبر التعابير جميع إخراج ويكون , كماFalse الصفر ويعتبرTrue هو صفري غير عدد أي
من واحد العدد تحوي منطقية مصفوفات عن عبارة المقارنة وعمليات المنطقية.False اجل من صفر والعدد True اجل
نوعا المنطقية المصفوفات وتعتبر يمكن العددية, كما المصفوفات من خاصا استخدمها التي المصفوفات باقي عنونة طريقة بنفس المنطقية المصفوفة عنونة العددية. التعابير ضمن سابقا
Relational Operators العالئقية( : )العوامل المقارنة معامالت المقارنة الشائعة والمدرجة في الجدول تتضمن معامالت المقارنة كل اإلشارات
التالي:الوصفالمقارنة معامل
من أصغر>يساوي أو أصغر>=من أكبر<
يساوي أو أكبر<=
عن نميزها )لكي المساواة إشارة==)=
74
MATLAB بلغة البرمجة
المساواة عدم اشارة~=
الحجم, أو نفس لها مصفوفتين بين للمقارنة المقارنة معامالت استخدام يمكن المصفوفة من عنصر كل مقارنة الحالة هذه وتتم مفرد وعدد مصفوفة بين للمقارنة
تمت التي المصفوفة حجم بنفس الناتجة المصفوفة المفرد, وتكون العدد معالتالي: المثال يبينه كما مقارنتها
(: 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 عناصر إيجاد هنا تم لقد مالحظة:
75
MATLAB بلغة البرمجة
)==( تعنيان )=( و اإلشارتين بان الحظ )==( بمقارنة يقوم مختلفا, حيث شيئا متساويين كانا إذا واحد العدد وتعيد متغيرين متساويين, بينما يكونا لم إذا وصفرامتغير. إلى العملية إخراج )=( إلسناد تستخدم
(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
: Logical Operatorsالمنطقية( )العوامل المنطقية المعامالت توفر المعامالت المنطقية طريقة لدمج أو نفي تعابير المقارنة, ويظهر الجدول
MATLABالتالي المعامالت المنطقية الموجودة في لغة :الوصفالمنطقي المعامل
&AND)و( |OR )أو( ~NOT )نفي(
المنطقية: المعامالت استخدام على األمثلة بعض يلي فيما لك وسنقدم >> a = 1;
>> b = 5;
>> x = a ~= b
76
MATLAB بلغة البرمجة
x =
1
>> 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
. من واقل2 من اكبرA من العنصر يكون عندما واحد العدد العبارة هذه تعيد حيث6
77
MATLAB بلغة البرمجة
المعامل أسبقية تعبير قيمة بإيجادMATLAB برنامج يقوم القواعد من مجموعة إلى مستندا
المعامالت قبل العليا األسبقية ذات المعامالت المعامل, وتحسب ألسبقية الناظمة إلى اليسار من المتساوية األسبقية ذات المعامالت الدنيا, وتقيم األسبقية ذات
برامج يعتدها التي المعامل أسبقية قواعد التالي الجدول اليمين. ويشرحMATLAB.
المعامل مستوىاألسبقية
األعلى) ( األقواس
.(^, ^) (, القوة'المدور)
(~) النفي إشارة.(/ ،/) .(, القسمة*) *, الضرب
)-( )+(, والطرح الجمع):( المتعامدتين النقطتين معامل
نم (, اكبر>=يساوي) أو (, واصغر>) من أصغر (, المساواة<=يساوي) أو من (, اكبر<)
(~)= المساواة )==(,عدمANDالمنطقي)&( الجمع
األدنىOR( |) المنطقي المعامل
78
MATLAB بلغة البرمجة
IF-ELSE-END الصيغة أوامر من مجموعة حساب إلى نحتاج قد اختبار عن ناتج إخراج إلى استنادا
if-else-end الصيغة استخدام عبرMATLAB لغة في التعليمة هذه شرطي. وتنفذ
يلي: وكماif expression
(commands)
end
التعبير قيمة كانت إذاend و if العبارتين بين ( الواقعةcommands) األوامر وستنفذ (expression)تكون trueالتالي: المثال . واليك
>> x = 10;
>> if x == 10
disp ('ok')
end;
يلي: كماif-else-end الصيغة خياران, فتصبح لدنيا كان وإذا
if expression
(commands evaluated if True)
else
(commands evaluated if False)
end
expression التعبير امتلك حال في األوامر من األولى المجموعة ستنفذ حيث
.false القيمةexpression التعبير امتلك إذا الثانية المجموعة تنفذ بينما ،true القيمةالتالي: الشكلif-else-end التعبير حاالت, فستأخذ عدة هناك كانت وإذا
if expression1
(commands evaluated if expression1 is true)
elseif expression2
79
MATLAB بلغة البرمجة
(commands evaluated if expression2 is true)
elseif expression3
(commands evaluated if expression3 is true)
elseif expression4
(commands evaluated if expression4 is true)
.
.
.
else
(commands evaluated if no other expression is true)
end
التالية: األمثلة واليك (: 1 ) مثال
>> x = 10;
>> if x == 10
msgbox ('ok', 'result');
(: 2 ) مثال>> if x == 10
msgbox ('ok', 'result');
else
msgbox ('no', 'result');
end;
(: 3 ) مثال>> x = 11;
>> if x == 1
disp ('1');
elseif x == 2
80
MATLAB بلغة البرمجة
disp ('2');
else
disp ('3');
end;
اإلخراج 3
SWITCH-CASE الصيغة أوامر تنفيذ علينا يتوجب عندما لوسط كمي الختيار متكرر استخدام على اعتمادا
التالية: العامة الصيغة لها التي switch-caseالصيغة استخدام السهل من ما, عندهاswitch expression
case test-expression1
(commands1)
case test-expression2
(commands2)
otherwise
(commands3)
end
أما هناexpression يكون أن يجب عددا التعبير رمزية. يقارن سلسلة أو مفرداexpressionبالتعبير السابقة الصيغة في الموجودtest-expression1في الموجود
(commands1) األوامر تنفيذ التعبيران, سيتم تساوى األولى. وإذا case عبارة األول, الشرط يتحقق لم إذا . أماend العبارة حتى بعدها الواقعة التعليمات وتخطي
العبارات مع السابق المثال في expressionسيقارن الثاني, حيث الشرط فسيختبرtest-exoression2عبارة في الموجودة caseالتعبيران, سيتم تساوى الثانية. وإذا
عبارة أي تحقق لم . إذاend عبارة حتى العبارات بقية ( وتهمل(commands2 تنفيذcaseالتعبير مع المساواة expressionاألوامر ستنفذ , عندها commands3)تلي ( التي
.otherwise العبارة
81
MATLAB بلغة البرمجة
أحدى تنفيذ سيتم بأنه switch-case صيغة عن أوردناه الذي الشرح من الحظ التالية: األمثلة واليك switch-case للصيغة المكونة األوامر مجموعات
(: 1 ) مثال x = 1;
switch x
case {1, 2, 3, 4, 5}
disp ('1..5');
case {9, 10}
disp ('9..10');
otherwise
disp ('this is impossible');
end;
(: 2 ) مثالclc;
clear;
n = 3;
switch n
case {0}
m = n + 3;
case {2}
m = 'ali';
case {3}
m = magic (n);
otherwise
disp ('error');
end;
82
5..1 اإلخراج
MATLAB بلغة البرمجة
disp (m);
اإلخراج 8 1 6
3 5 7
4 9 2
(: 3 ) مثالx = 2.7;
units = 'm';
switch units
case {'inch', 'in'}
y = x * 2.54;
case {'meter', 'm'}
y = x / 100;
case {'feed', 'ft'}
y = x * 2.54 / 12;
case {'millimeter', 'mm'}
y = x * 10;
case {'centimeter', 'cm'}
y = x;
otherwise
disp (['Unknown Units:' units]);
end;
اإلخراج y = 0.027
83
MATLAB بلغة البرمجة
والتكرار الدوران جملوهي: والتكرار الدوران جمل من مجموعة MATLAB لغة توفر
for جملة
المرات من معين لعدد األوامر من مجموعة تنفيذ بإعادة for حلقات تقوم يلي: كما for لحلقة العامة الصيغة معينة, وتعطى وبخطوة
for i = x1: x3: x2
(commands)
end;
القيمة منend وfor عبارتي بين الواقعة( commands)األوامر تنفيذ يعاد حيث التالي: المثال في . كماx3 مقدارها وبزيادةx2 النهائية القيمة إلىx1االبتدائية
مثال:>> for n = 1: 10
84
MATLAB بلغة البرمجة
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
يلي: كما أعاله الدوارة تفسير ويمكن حتى الموجودة العبارة قيمة حساب يجب10 إلى1 من nلـ قيمة كل اجل من
الثانية الدورة في , وتكونn = 1 األولى الدورة فيn قيمة التالية, تكونend عبارةn = 2إلى تصل حتى وهكذا 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
هناn الحلقة متغير سيأخذ .array بالمصفوفة ( معطاة10) ( و1) بين عشوائية قيمامالحظة:
85
MATLAB بلغة البرمجة
التالي: المثال في متداخلة, كماfor حلقات عدة إنشاء يمكن>> for n =1: 5
for m = 5: -1: 1
A (n, m) = n ^ 2 + m ^ 2;
end;
disp (n);
end;
اإلخراج 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
86
MATLAB بلغة البرمجة
2
3
.
.
10
>> for i = 0: 2: 10 disp (i);
end; اإلخراج 0
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
87
( الضرب جدول طبع )
MATLAB بلغة البرمجة
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 جملة
�جري الحساب عملياتwhile حلقات ت عكس على المرات من محدد غير عددا تؤدي التيfor حلقات عددا لحلقة العامة الصيغة كتابة التمريرات, ويمكن من معيناwhileيلي: كما
while expression
(commands)
end;
أن طالماend وwhile العبارتين بين الواقعة(commands)األوامر مجموعة ستنفذ تمتلكexpression ضمن العناصر كل نتيجة تكون ما , وعادة(true) صحيحة قيما
expression مفردا. عددا (: 1 ) مثال
>> x = 1;
>> while x < 25
disp (x); x = x +
1;
end; اإلخراج 1
2
3
.
88
MATLAB بلغة البرمجة
.
24
(: 2 ) مثال>> num = 0; EPS = 1;
>> while (1 + EPS) > 1
EPS = EPS / 2;
num = num + 1;
end;
>> num
num =
53
مالحظة: وكاالتي: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
مالحظة: 89
MATLAB بلغة البرمجة
فان اكبر حلقات ضمن واقعة داخلية حلقة ضمنbreak التعليمة وجدت أذا األكبر. الحلقات من يخرج وال التعليمة فيها صادف التي الحلقة من يخرج البرنامج
MATLAB ببرنامج الخاصة البيانات ملفات صيغة , وفقMATLAB برنامج عمل ساحة في الموجود المتغير تخزين يمكن
يلي: كماsave األمر استخدام طريق عن , وذلكMATLAB ببرنامج خاصة>> save
في(Workspace) العمل ساحة في الموجودة المتغيرات جميع خزن يتم وبذلك هذه الحالي. وتحافظ المجلد في يوضعmatlab.mat باسم ثنائية صيغة ذي ملف
وبدقة القيم كامل , علىMATLAB ببرنامج الثنائية, والخاصة صيغة ذات الملفات MAT-files ملفات تعتبر الدقة, وال بنفس المتغيرات أسماء وتخزن مضاعفة, كما
متوافقة هي مستقلة, إنما أصول ذات في الموجودة الملفات أنواع بقية مع تماما من وفتحة الملفات من نوع وفق متغير أي تخزين نستطيع , إذ MATLABبرنامج
للملف. خاصة معالجة أية إجراء دون األخرى األنواع قبلالتالي: المثال في كما معينة متغيرات لتخزينsave األمر يستخدم أن ويمكن
>> save var1 var2 var3
90
MATLAB بلغة البرمجة
أن , ويمكنmatlab.mat الملف ضمنvar3 وvar2 وvar1 المتغيرات بتخزين قم أي يلي: كماsave لألمر أول كوسيط الملف اسم نحدد
>> save filename var1 var2 var3
ملف ضمنvar1, var2, var3 المتغيرات يلي: خزن كما السابقة التعليمة وتفسر .filename.mat اسمه
إنشاؤها تم التي البيانات ملفات األمر هذا يفتح إذsave األمرload األمر ويعاكس يلي: كماsave باألمر
>> load
وجدته حيثماmatlab.mat الملف ضمن تجدها التي المتغيرات كل حمل تعني وهي تخزين . ويتمMATLAB لبرنامج البحث مسار في أو الحالي المجلد في سواء أوال
العمل, وستحمل ساحة فيmatlab.mat الملف في المخزونة المتغيرات أسماءوجودها. حال في لها المطابقة األسماء ذات المتغيرات فوق
اسم نذكر ان يجب(MAT-file) الحقة ذي ملف من معينة متغيرات ولتحميل يلي: كما المتغيرات وقائمة الملف
>> load filename var1, var2, var3
إلىvar1, var2, var3 المتغيرات وحملتfilename.mat الملف فتح هنا تم لقد العمل. ساحة
91
MATLAB بلغة البرمجة
القاعدية وااليعازات والبتات المجموعات ايعازاتالمجموعات ايعازات
القيم من لعدد منتظم تجميع ألنها مجموعات إنها على المصفوفات تقييم نستطيع ومقارنة الختبار توابع عدةMATLAB برنامج لك الفهم, يقدم هذا من وانطالقا
للمساواة: اختبار ابسط التالي المثال لك المجموعات, ويقدم>> a = rand (2, 5);
>> b = rand (2, 5);
>> isequal (a, b)
ans =
0
>> isequal (a, a)
ans =
1
92
MATLAB بلغة البرمجة
وسط من المتكررة العناصر بحذفunique االيعاز التالي المثال لك ويقدم اإلدخال:
>> a = [2: 2: 8; 4: 2: 10]
a =
2 4 6 8
4 6 8 10
>> unique (a)
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
93
MATLAB بلغة البرمجة
مجموعتين. التحادunion االيعاز كذلك>> union (a, b)
ans =
1 2 3 4 5 6 7 8 9
مجموعتين. لتقاطعintersect إيعاز كذلك>> intersect (a, b)
ans =
2 4 6 8
مجموعتين. بين للفضلةsetdiff إيعاز كذلك>> setdiff (a, b)
ans =
1 3 5 7 9
مالحظة:خاليا. مصفوفات أو رمزية مصفوفات على السابقة العمليات إجراء يمكن
البت إيعاز البرامج سابقا, يؤمن ذكرناها التي المنطقية المعامالت إلى إضافة تسمح توابعا
الصحيحة. األعداد من منفصلة بتات على المنطقية العمليات بإجراء>> bitand (3, 4)
ans =
0
>> bitor (3, 4)
ans =
7
>> bitxor (13, 27)
ans =
22
94
MATLAB بلغة البرمجة
>> bitcmp (20, 5) بتات لخمس20 العدد متممans =
11
>> bitset (30, 1) 1 يكون30 من األولى البت جعل
ans =
31
>> bitget (30, 1) 30 من األولى البت جلب
ans =
0
>> bitshift (3, 2) موقعين( لليسار إزاحة(ans =
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 =
95
الموقع
الموقع العدد
MATLAB بلغة البرمجة
10001
>> class (a)
ans =
char
>> bin2dec (a)
ans =
17
>> class (ans)
ans =
double
>> dec2bin (17, 6)
ans =
01001
العدد فيها العد أساس )يكون عشرية والستة العشرية األعداد بين التحويل ويتم يلي: كماdec2hex وhex2dec االيعازين ( عبر16
>> a = dec2hex (2047)
a =
7FF
>> dec2hex (2047, 4)
ans =
07FF
>> class (a)
ans =
char
>> hex2dec (a)
ans =
2047
96
عدد الخانات
عدد الخانات
رمزي
MATLAB بلغة البرمجة
>> class (ans)
ans =
double
الفرعية والبرامج الدوالهي: للدوال العامة . والصيغة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);
97
المخرجات المدخالت
اسم الدالة
البرنامج الرئيسي
البرنامج الفرعي )الدالة(
اإلدخال اإلخراج
MATLAB بلغة البرمجة
L = length (z);
sum1 = sum (z);
result = sum1 / L;
>> avgx
avgx =
4.5000
>> avgy
avgy =
19.5000
(: 2 ) مثال>> res1 = mult2 (x);
>> res2 = mult2 (y);
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 ) مثال 98
البرنامج الفرعي )الدالة(
البرنامج الرئيسي
MATLAB بلغة البرمجة
>> [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) النقاط لرسم
مالحظات: بعد إال مباشرة تنفيذها اليمكن مفصول ملف شكل على تكون التي الدالة-1
الرئيسي. بالبرنامج استدعائها )=( عالمة بعد الدالة واسم الصلب القرص في المخزون الدالة اسم تكون-2
متطابقين. يكونا ان يجب األول السطر في الموجودمثال:
99
البرنامج الرئيسي
البرنامج الفرعي )الدالة(
MATLAB بلغة البرمجة
function y = myfunction (a, b);
-------
-------
-------
myfunction.m الخزن فيكون
.(end) على الدالة نهاية تحتوي ال-3الدوال. وخاصة تعديل كل بعد البرامج تخزن-4بحرف. تبدأ أن يجب المخزون الدالة اسم-5أخرى. دالة قبل من دالة تستدعي أن يمكن-6
البيانية الرسوم ثنائية البيانات تظهر التي االيعازات من بالعديدMATLABبرنامج يزودك
بينما األبعاد وثالثية األبعاد ثنائية منحنيات بعضها يرسم األبعاد, حيث وثالثية األبعاد بعضها يرسم رابع. كبعد اللون استخدام يمكن وإطارات, كما سطوحا
plot االيعازاألبعاد. ثنائي شكل على البيانات بإظهار االيعاز هذا يقوم
(: 1 ) مثالx = [1: 0.5: 10];
;y = exp (x) )مصفوفة( yللـ قيم مجموعة الحتساب plot (x, y) x, y للمحورين بيانية قيم لرسم
(: 2 ) مثال x = 1: 10;
plot (x)
مالحظة:
100
MATLAB بلغة البرمجة
بيانية قيم برسمplot االيعاز واحدة( يقوم )قائمة واحد إحداثي وجود حالة في القائمة. عناصر ( لكلx, x) أي بالمحورين متناظرة
(: 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 ) مثال(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'); المخطط( )أعلى الرئيسي المخطط عنوان
101
MATLAB بلغة البرمجة
(: 6 ) مثالplot (x, sin (x), x, cos (x)); منحنيين لرسم
(: 7 ) مثالplot (x, sin (x), 'r: +', x, cos (x), 'b: *');
102
sin (x) لون ازرق عالمة المخطط cos (x) عالمة المخطط لون احمر
MATLAB بلغة البرمجة
مالحظة:االيعاز: باستخدام المخطط على نص أي كتابة يمكن
text (x, y, 'string');
plot3 إيعاز صيغة نفس لها , وصيغتهplot3 وأصبح األبعاد ثالثي إلىplot االيعاز تمديد تم لقد
plotمساقط ثالث لها البيانات كون عدا البعد ثنائي مسقطين. والصيغة من بداللها: العامة
plot3 (x1, y1, z1, s1, x2, y2, z2, s2,…);
مثال: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 الشبكة لرسم
103
النص المطلوب االحداثي االحداثي
كتابته الصادي السيني
اللون االحداثي االحداثي االحداثي
)خيط رمزي( الثالث الصادي السيني
MATLAB بلغة البرمجة
الجزئية البيانية الرسوم
صور, حيث أو محاور مجموعة من باكثر تمسك ان واحدةfigure نافذة تستطيع المناطق لرسمm*n مصفوفة الى الحالية الشكل نافذةsubplot (m, n, p) يقسم اليسار من الجزئية البيانية الرسومات رسمت فعالة. لقد لتصبحp المساحة ويختار
وهكذا, وذلك السفلي الصف طول على العلوي, ثم الصف طول وعلى اليمين الىيلي: كما
مثال:x = linspace (0, 2 * pi, 30);
y = sin (x);
z = cos (x);
a = 2 * sin (x) .* cos (x);
b = sin (x) ./ (cos (x) + eps);
subplot (2, 2, 1);
plot (x, y); axis ([0 2 * pi -1 1]); title ('Figure1');
subplot (2, 2, 2);
plot (x, z); axis ([0 2 * pi -1 1]); title ('Figure2');
subplot (2, 2, 3);
plot (x, a); axis ([0 2 * pi -1 1]); title ('Figure3');
subplot (2, 2, 4);
plot (x, b); axis ([0 2 * pi -20 20]); title ('Figure4');
104
MATLAB بلغة البرمجة
السطحية البيانية الرسوم المساحات عن تعبر انها عدا البيانية الرسوم تلك السطحية البيانية الرسوم تشبه
يلي: كماsurf االيعاز استخدام الواقعة, عبر (: 1 ) مثال
[x y z] = peaks (30);
surf (x, y, z);
xlabel ('x-axis');
ylabel ('y-axis');
zlabel ('z-axis');
(: 2 ) مثالfor i = 1: 10
for j =1: 10
105
MATLAB بلغة البرمجة
mult (i, j) = i * j;
end;
end;
surf (mult) ( االبعاد )ثالثي مجسم شكلمالحظة:
منها: هندسية أشكال لرسم االيعازات من هناك bar االيعاز
bar chart لرسم يستخدم مثال:
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);
106
MATLAB بلغة البرمجة
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');
107
MATLAB بلغة البرمجة
xlabel ('Amount of Encrypted Data');
ylabel ('Cipher-image Correlation');
108