learn matlab in arabic

163
ة ج م ر لب ا ة غ ل ب ة ج م ر لب ا ة غ ل باد عد ا1 Dr. Hammed Computer Science ارة ور م ي ل ع ت ل ا ي ل عا ل ا$ ث ح ب ل وا ي م ل ع ل ا م س ق وم ل ع ات ب س حا ل ا

Upload: bcyoucef

Post on 22-Nov-2014

178 views

Category:

Documents


9 download

DESCRIPTION

MATLAB POUR LES ETUDIANTS DE CENTRE UNIVERSITAIRE BORDJ BOU ARRERIDJ BY ~~~~BcYoucef~~~~

TRANSCRIPT

Page 1: Learn Matlab in Arabic

MATLAB بلغة البرمجة

بلغة البرمجة

إعـداد

1

Dr. HammedComputer Science

علوم لمادة التدريسيين من مجموعةالحاسبات

والبحث العالي التعليم وزارة

العلمي

الحاسبات علوم قسم

2008نيسان

Page 2: Learn Matlab in Arabic

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

Page 3: Learn Matlab in Arabic

MATLAB بلغة البرمجة

MATLAB : The MATLAB Programming Language البرمجة لغة

مقدمة

هذا يستخدم إذ العلمية، األوساط في األشهر البرنامج MATLAB برنامج يعتبر

ظاهرة أو مسألة أي نمذجة وبعد والهندسية، العلمية المسائل معظم في البرنامج

وأحدثها الطرق بأبسط ويحللها البرامج تلك مع ليتعامل البرنامج هذا دور بعدها يأتي

معهد200 من أكثر يعلــّـــم البرنامج هذا بان ذكره الجدير ومن برمجة، وأيسرها

العالم، وبقية أوربا في المعاهد تلك عدا فقط، األمريكية المتحدة الواليات في وكلية

فقط وتكتب االنترنت شبكة على البحث محركات أحد إلى تدخل أن ويكفي

MATLAB، البرنامج. هذا عن تتحدث التي المواقع عدد من فســـــتـُـــذهل

التقنية, الحسابات إلجراء تستخدم األداء عالية برمجية لغةMATLAB لغة وتعتبر

إلى تحتاج ال أنها كما البرمجة سهلة بيئة ضمن واإلظهار الحساب بعمليات وتقوم

خاصة حسابيا، التقنية المسائل من العديد حل من اللغة هذه كبير. تمكنك احتراف

البرمجة بلغات لبرمجتها كبير جهد إلى تحتاج والتي بمصفوفات عنها يعبر التي

.FORTAN و C لغة مثل األخرى

)مختبر MATrix LABoratory التعبير اختصار من اللغة هذه تسمية أتت

على العمليات مع للتعامل أساسا مصمم البرنامج إن حيث المصفوفة(،

تطبيقات وحل لمعالجة أدوات اللغة بهذه أرفقت بسيط. كما بشكل المصفوفات

األدوات هذه وتعتبر أداة(، عشرين من أكثر )وهيtoolboxes سميت خاصة علمية

t هامة حل تقنيات وتطبيق بتعلم لهم تسمح حيث اللغة، هذه لمستخدمي جدا

التحكم اإلشارة, ونظم معالجة مثل خاصة، ومسائل مشكالت لمعالجة متخصصة

الجبر ومسائل واإلحصاء والمالي الكمي والتحليل العصبية والشبكات والمحاكاة

... الخ. واالمثلية الخطي

3

Page 4: Learn Matlab in Arabic

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الرئيسية( سطح مكتب )

Page 5: Learn Matlab in Arabic

MATLAB بلغة البرمجة

MATLAB برنامج مكتب سطح

احدها عنوان نوافذ عدة شاشتك على ستظهرMATLAB برنامج تشغيل عند

MATLABبرنامج مكتب سطح وتسمى MATLAB، وتتحكم النافذة هذه تحوي

تنصيب خيارات . وحسبMATLAB لبرنامج المكونة األخرى النوافذ بجميع

. MATLABنافذة ضمن مخفية أو مرئية النوافذ هذه بعض تكون فقد البرنامج،

MATLAB نافذة مكونات

التالية:- األجزاء منMATLAB نافذة تتكون

يساره على يوجد األشرطة باقي عن مميز لون ذات ويكون العنوان - شريط1

يمينه وفي البرنامج وأسم للبرنامج الصوري الرمز

تحرير قائمة ،File ملف بقائمة يبدأ(Lists Bar) أو(Menu Bar) قوائم - شريط2

Edit، عرض قائمة View، المساعدة قائمة ... وحتى Help.

في الموجودة االيعازات لبعض صورية رموز ويضم(Tools Bar) األدوات - شريط3

السابق. الشريط قوائم

Current) الحالي الدليل يدعى مهم جزء األدوات شريط من األخير الجزء في هناك

Directory)موجود هو الحاسب من جزء أي في المستخدم يخبر والذي t وكما حاليا

وعلىMATLAB6P5\work)المجلد( الدليل على بأننا ( يعلمنا2) الشكل في

:C القرص

5

Page 6: Learn Matlab in Arabic

MATLAB بلغة البرمجة

Start األولى كلمتان وفيهMATLAB برنامج بنافذة خاص مهام شريط - هنالك4

البرنامج بأن تعلمكReady االيعازات. بينما بعض لتنفيذ مختصر كطريق وعملها

له. المعطى التوجيه حسب للعمل جاهز

يمكن التي الفرعية النوافذ من مجموعة هناك أعاله األشرطة إلى باإلضافة

أسم تأشير يتم ( حيث3) الشكل في كما وذلك الحاجة حسب إخفائها أو تفعيلها

نافذة هي للعمل أساسية نافذة هناك لكن (،√) بإشارة بعرضها المرغوب النافذة

األوامر وتنفيذ بكتابة التعامل يتم خاللها من والتي ،Command Window األمر

مباشرة. غير أو مباشرة بصورة

) رقم الشكل في كماView قائمة في أسمائها الظاهرة الداخلية النوافذ - تعتبر5

وكما الخاص عملها منها نافذة ولكلMATLAB برنامج نافذة مكونات من ( هي3

يلي:-

ألن عنها االستغناء يمكن ال نافذة وهيCommand Window: األمر أ- نافذة

األوامر تلك تنفيذ من عليها نحصل التي النتائج وعرض األوامر تنفيذ يتم بواسطتها

(.<<) الحث عالمة بعد وتكتب

باستعراض لك تسمح تخاطبية واجهة عن : وهيWorkspace العمل ساحة ب- نافذة

المتغير أسم تضم قائمة تظهر حيثMATLAB لغة متغيرات وحفظ وتحميل

صنف من هيMATLAB لغة متغيرات )جميع وصنفه بياناته وعدد وحجمه

(.4) الشكل في مصفوفة(, كما

6

(: النوافذ الداخلية في قائمة 3شكل )View

Page 7: Learn Matlab in Arabic

MATLAB بلغة البرمجة

الدليل تحدد رسومية واجهة أيضا وهيCurrent Directory: الحالي الدليل ج- نافذة

.MATLAB برنامج معه يتعامل الذي للملف الحاوي

بالبحث لك )رسومية( تسمح تخاطبية نافذة وهيHelp: المساعدة د- نافذة

مباشر. بشكل الوثائق واستعراض

شجرية بنية تستعرض نافذة عن عبارة وهيLaunch Pad: التنفيذية البرامج و- لوحة

التنفيذية. والبرامج لألدوات

تنفيذ إعادة من النافذة هذه تمكنكCommand History: السابقة األوامر هـ- نافذة

t األمر نافذة في المنفذة السابقة األوامر أخرى. مرة كتابتها من بدال

.... تفعيلها بعدMATLAB البرنامج لنافذة الداخلية النوافذ ( يبين5) والشكل

7

بعد MATLABالنوافذ الداخلية لنافذة البرنامج (: 5شكل )تفعيلها

listsشريط القوائم )bar)

toolsشريط األدوات )bar)

ونافذة ساحة Command Window(: نافذة األمر 4شكل ) Workspaceالعمل .

Page 8: Learn Matlab in Arabic

MATLAB بلغة البرمجة

:مالحظات

موجهةMATLAB لغة مصفوفة، عن عبارةMATLAB في متغير كل-1

t المتغيرات كانت وان حتى بالمصفوفات (.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

Page 9: Learn Matlab in Arabic

MATLAB بلغة البرمجة

من Demos إلى الدخول يمكن : مالحظـــــة

على للداللة بفراغ مسبوقة السطر نهاية )...( في متتالية نقاط ثالث-6

التالي. السطر في االيعاز استمرار

نافذة في الناتج أو المتغير طباعة تمنع اإليعاز بعد منقوطة فارزة-7

Commandنافذة في وكذلك Editor.

يعتبر بعدها يأتي نص فكل للتعليق )%( تستخدم المئوية النسبة إشارة-8

مثل: تعليق، نص

% This Program Compute Area

mt.) توسعها وتكونM–files تسمىMATLAB ملفات-9 ) (, مثال

examplel.m.)

Command نافذة في والالحقة السابقة االيعازات بكتابة االحتفاظ-10

واألسفل. لألعلى السهم بحركة

شاشة في واالخراجات( تظهر )النتائجMATLAB برنامج تنفيذ نتيجة-11

Command Windowالتنفيذ. بعد إليها االنتقال يجب لذلك

واألنواع والثوابت المتغيرات عن اإلعالن إلى تحتاج الMATLAB لغة-12

بالبرنامج. المستخدمة األخرى البيانية

تأشيرها البرنامج( يتم من مقطع أو )تعليمة البرنامج من مقطع لتنفيذ-13

المنسدلة: القائمة فتظهر أيمن النقر ثم

9

لحساب الجزء المؤشر وإظهار النتيجة في نافذة Command

الذهاب إلى الدالة المؤشرة للجزء المؤشرHelpالذهاب للـ

قصنسخلصق

تعليقرفع التعليق

هيكلة المقطع

Page 10: Learn Matlab in Arabic

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معين باسم t اختيار عبر الصلب قرصك ( علىexample1.m )مثال

مكتب سطح أدوات شريط ضمن الخزن أوFile القائمة منSave االختيار

MATLAB(. 9) الشكل في (. كما

مالحظة:

االسم إعطاء فباإلمكان(Untitle1) افتراضي اسم البرنامج يحمل الخزن عند

عليه. البقاء أو المبرمج فيه يرغب الذي

10

تنفيذ البرنامجخزن البرنامج

شريط الحالة رقم العمودرقم السطر

(: نافذة كتابة البرامج )محرر 7شكل )(: إنشاء ملف جديد.6شكل )الملفات النصية(.

(: نافذة كتابة البرامج )محرر 8شكل )الملفات النصية(.

(: تنفيذ 9شكل )البرنامج.

Page 11: Learn Matlab in Arabic

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

يفضل كتابتها في بداية

أي برنامج رئيسي

Page 12: Learn Matlab in Arabic

MATLAB بلغة البرمجة

2- Index.

3- Search.

4- Demos.

أو البرنامج من جزء أو البرنامج تنفيذ بإيقاف يقومbreak - اإليعاز20

تـُـــنفذ(. الbreak بعد التي )التعليمات الدالة

: أمثـــــلــة

function ……. if ……. …….

……. ……. …….

……. else …….

……. break; break;

break; .…….

….….

الدالة. من للخروجreturn اإليعاز -21

12

{توقف تنفيذ الدالة فقط}

{توقف في حالة {else

ال تنفذ

Page 13: Learn Matlab in Arabic

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

خروج من الدالة

ال تنفذ

Page 14: Learn Matlab in Arabic

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

4 المدونة الحقيقية ( الثوابت3) 10N الجبرية الصيغة تحول حيثيائيا4: تدوينا

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

Page 15: Learn Matlab in Arabic

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: الرمزية )ب( الثوابت

t من النوع هذا يسمى وأرقام حروف من يتكون هذا الثابت ألن "ثوابت" مجازا

كعناوين عادة ويستخدم' ' أي مفردة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)

ال تدخل في العمليات الحسابية )تستخدم لتقليل

حجم الخزن(

ال تدخل في العمليات الحسابية

تدخل في العمليات الحسابية

Page 16: Learn Matlab in Arabic

MATLAB بلغة البرمجة

t هناك أن أي التنبيه ينبغي كما حاصراتها، داخل علوية حاصرات استخدام رمزية قيما

بالصورة: ذلك كتابة ويمكن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

Page 17: Learn Matlab in Arabic

MATLAB بلغة البرمجة

t. وتكون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)األولوية( األسبقية قاعدة

التعابير في الحسابية العمليات أولويات وترتيب فهم في مهمة القاعدة وهذه

األولوية أن على القاعدة وتنص الحاسب، وينفذها يجريها كما الحسابية، والمعامالت

اليمين, وبالنسبة إلى اليسار ومن القوسين بين الموجودة للعمليات تعطى األولى

)أو والجمع القسمة( ثانيا، )أو أوال, والضرب األس إلى فالرفع الحسابية للعمليات

t القاعدة: هذه يوضع التالي والمثال الطرح( أخيرا

التعبير:

A / B + C الجبر في يكافئ +C

الجبر في يكافئA( / B + C) التعبير يكافئ بينما

17

1

2

2

1

Page 18: Learn Matlab in Arabic

MATLAB بلغة البرمجة

t يجري األقواس داخل الجمع الن نتيجة علىAِ يقسم ثم األولوية حسب أوال

القوس.

التعبيرمثال:

M) ^ A - B / (K * F - X

التالية: الخطوات حسب العمليات تنفيذ

أيضا. األولوية حسب داخلها العمليات وتنفذ األولى، األولوية األقواس تأخذ

واحدة. كمية لتصبحM األس إلىX : رفع األولى العملية

واحدة. كمية لتصبح F في K ضرب الثانية: العملية

النتيجة وتصبح الثانية العملية نتيجة من األولى العملية نتيجة : طرح الثالثة العملية

واحدة. كمية

واحدة. كمية النتيجة وتصبح الثالثة العملية نتيجة علىB : تقسم الرابعة العملية

واحدة. كمية النتيجة وتصبحA من الرابعة العملية نتيجة : تطرح الخامسة العملية

Arithmetic Statement الحسابية الجملة

أن إال الجبر في الحسابية المعادلة تكافئMATLAB في الحسابية الجملة

MATLABاأليسر الطرف في قيمته حساب المراد المتغير اسم يكون أن تشترط

األيمن، الطرف المعادلة( في )بقية الحسابي التعبير يكون بينما أشارة بدون وحده

التالية: األمثلة في كما

18

34

2

5

1

Page 19: Learn Matlab in Arabic

MATLAB بلغة البرمجة

1( y = A * X + B

2) A = 3.14 * R ^ 2

مثال:

الحسابية: الجمل في الحسابية العمليات أولوية

Z = A – B / C

جميع انتهاء بعد حسابية أولوية آخر تمثل المساواة إشارة أن مالحظة يمكن

األيمن. الطرف في الحسابية العمليات

String Variables: الرمزية )ب( المتغيرات

المتغير قيمة أن هو بينهما الوحيد والفرق العددية المتغيرات تركيبها في تشبه

اقتباس(. عالمتي بين )محصورة رمزية تكون الرمزي

String Statement الرمزية الجملة

طرفها في المتغير أن هو بينهما الوحيد والفرق الحسابية الجملة تركيبها في تشبه

t يكون األيمن يكون األيسر طرفها في اقتباس( والتعبير عالمتي بين )محصورة رمزيا

متغير.

ذلك: توضح التالية واألمثلة

A = 'Hameed Abdul–Kareem';

N = 'Number of Student';

Dept = �'Computer Science';

في استخدمت لو حسابية قيم لها يكون ال األيمن الطرف في التعابيرمالحظة:

. ' ' داخل موضوعة ألنها حسابية عمليات

:Library Functions المكتبية االقترانات

19

23

1

Page 20: Learn Matlab in Arabic

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

Page 21: Learn Matlab in Arabic

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) العملية ناتج : طرح الخامسة العملية

t واحدة كمية النهائية t(. )عددا واحدا

في قيمتها وإزائها الجبر في مكتبية إقترانات التالية الجمل تمثلمثال:

MATLAB:

21

54

312

Page 22: Learn Matlab in Arabic

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

Page 23: Learn Matlab in Arabic

MATLAB بلغة البرمجة

المصفوفات على والعمليات المصفوفات

البعد وحيدة أعداد من مؤلفة اآلن حتى أجريتها التي الحسابات جميع كانت لقد

هي المفردة األعداد على المجراة العمليات مفردة. وتعتبر أعداد سنسميها

نفس إجراء الشخص يريد وعندما الوقت، الرياضيات. وبنفس علم أساسيات

مرات، عدة العملية إجراء إعادة أكثر إلى فسيحتاج أكثر، أو مفرد عدد على العملية

إلىMATLAB برنامج عمد المشكلة، هذه والجهد. ولحل الوقت في هدر يعني مما

البيانات. من مصفوفة على الرياضية العمليات إجراء

البسيطة المصفوفة

أن إذ سلسلة، وبطريقة مباشر بشكل المصفوفات معMATLAB برنامج يتعامل

t. سهلة بطريقة يتم المصفوفات إنشاء جدا

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

Page 24: Learn Matlab in Arabic

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 الرمز ويخبرك عكسي، بترتيب األول ثم الثاني ثم الثالث العنصر هنا

t وتعد¡3 بالرقم تبدأ .1 الرقم عند وتقف1 بقيمة نزوال

مثال:

>> x (2: 2: 7)

ans =

24

Page 25: Learn Matlab in Arabic

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] أخرى مصفوفة هنا استخدمنا

t الثامن العنصر وضع حيث فيه، نرغب الذي وضع بينما ثانيا، الثاني والعنصر أوال

t التاسع العنصر 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

Page 26: Learn Matlab in Arabic

MATLAB بلغة البرمجة

t قمنا لقد المصفوفة، ضمن العناصر كل كتابة عبرx مصفوفة قيم بإدخال سابقا

t عشر احد تحويx المصفوفة الن مقبول األمر وهنا احتوت لو ماذا فقط، عنصرا

t؟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

القيمة االبتدائية القيمة النهائيةعدد القيم

Page 27: Learn Matlab in Arabic

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

Page 28: Learn Matlab in Arabic

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 العمود إلى

تنزيل سطر آخر

Page 29: Learn Matlab in Arabic

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 % المعرفة t سابقا g المصفوفة

ans =

29

Page 30: Learn Matlab in Arabic

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 العدد على الناتج ق�س¡م الواحد. لها أ

المصفوفات بين الحسابية العمليات

t بسيطة المصفوفات بين الحسابية العمليات تعتبر ال الحسابية العمليات مثل تماما

الحسابية أوضح, فالعمليات المفردة. وبشكل واألعداد المصفوفات بين المجراة

التحديد, وتعد صعبة عمليات تعد والحجوم األبعاد مختلفة مصفوفات بين المجراة

وضرب وطرح جمع من األبعاد متساوية المصفوفات على الحسابية العمليات

التالية: األمثلة واليك MATLAB لغة في األساسية العمليات من وقسمة

>> g % السابقة المصفوفة استخدام إعادة

g =

30

عناصر من عنصر كل فضرب هنا أما

كل من ط�رح , ثم 2 بالعدد g المصفوفة

1. الرقم الناتجة العناصر من عنصر

Page 31: Learn Matlab in Arabic

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

Page 32: Learn Matlab in Arabic

MATLAB بلغة البرمجة

12 14 16 18

t الحظ أسبقية تسلسل نفس تعتمد المصفوفات بين الحسابية العمليات بأن أيضا

t المفردة, ويمكن األعداد على الحسابية العمليات إجراء عند المعتمد العمليات أيضا

بالعنصر عنصر كل ضرب ويمكن األولوية. كما تلك لكسر األقواس استخدام

�سبق إن شرط قسمته أو األخرى المصفوفة من له المناظر أو الضرب إشارة ت

الشكل: في كما بنقطة القسمة

>> g .* h

ans =

1 2 3 4

10 12 14 16

27 30 33 36

استخدام عبر بعنصر عنصر h بالمصفوفة g المصفوفة بضرب هنا قمنا ولقد

بنقطة. المسبوقة الضرب إشارة

MATLAB برنامج القياسية الضرب إشارة أمام النقطة وجود يجعلمالحظة:

بان البرنامج لوحدها الضرب إشارة تخبر بعنصر, بينما عنصرا المصفوفتين يضرب

عادية. مصفوفات بضرب يقوم

>> g * h

Error

h للمصفوفة األعمدة عدد g للمصفوفة األسطر عدد الن

t مصفوفتين قسمة إن كما القسمة إشارة كتابة طريق عن ممكنة بعنصر عنصرا

التالي: المثال في كما بنقطة مسبوقة

>> 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

Page 33: Learn Matlab in Arabic

MATLAB بلغة البرمجة

MATLAB برنامج سيقوم بنقطة, عندها القسمة إشارة إحدى سبقت إذا مالحظة:

ستحدد نقطة, فإننا بدون القسمة كانت إذا بعنصر. أما عنصرا المصفوفتين بتقسيم

عادية. مصفوفات قسمة

>> g .^ 2

ans =

1 4 9 16

25 36 49 64

81 100 121 144

. g المصفوفة عناصر من عنصر كل مربع هنا وجدنا ولقد

القياسية المصفوفات

¡نك تلك لتمتع قياسية, وذلك مصفوفات إنشاء من MATLAB برنامج يمك

t خاصة, وتتضمن وميزات بخواص المصفوفات جميع التي المصفوفات أيضا

والمصفوفات العشوائية األعداد للواحد, ومصفوفات مساوية أو صفرية عناصرها

ثابتة. أعداد عناصرها التي والمصفوفات القطرية

>> 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

األعمدة األسطر

Page 34: Learn Matlab in Arabic

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

Page 35: Learn Matlab in Arabic

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

Page 36: Learn Matlab in Arabic

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

t.( 3, 3) الموقع في العنصر جعل صفرا

ان وبما1 تكون( 6, 2) الموقع في العنصر جعل

سيقوم أعمدة, لذلك ستة تمتلك الAِ المصفوفة

العناصر بقي ويضع الضرورة حسب بتوسيعها البرنامج

t مستطيلة. وتكون صفرا

4 تكون الرابع العمود عناصر جميع جعل

4 تكون الرابع العمود عناصر جميع جعل

Page 37: Learn Matlab in Arabic

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 المصفوفة من والثالث األول العمودين بإضافة

Page 38: Learn Matlab in Arabic

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 المصفوفة صياغة إعادة تمت

t عنصر أي تضع األصلية, وعندماB المصفوفة من الثاني مساويا

المصفوفة من حذفها تريد انك يعني , فهذا] [ الفارغة للمصفوفة

الحذف. بعد المتبقية العناصر على لتحافظ وتقليصها

Page 39: Learn Matlab in Arabic

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

t يمكن المنطقية. كما العمليات عن الناتجة المنطقية المصفوفات هناك أيضا

المصفوفات لحجم مساويا حجمها كان إذا المنطقية المصفوفات استخدام

وهيtrue أي(1) القيمة ذات العناصر على اإلبقاء الحالة هذه في المعنونة, ويتم

غير العناصر وهي false أي(0) العناصر يتجاهل بينما للشرط المحققة العناصر

التالي: المثال الشرط. ولنأخذ المحققة

>> abs (x) > 1

ans =

1 1 0 0 0 1 1

39

Page 40: Learn Matlab in Arabic

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

Page 41: Learn Matlab in Arabic

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

المواقع القديمة الترتيب الجديد

Page 42: Learn Matlab in Arabic

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

Page 43: Learn Matlab in Arabic

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

Page 44: Learn Matlab in Arabic

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

Page 45: Learn Matlab in Arabic

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

Page 46: Learn Matlab in Arabic

MATLAB بلغة البرمجة

>> z = sum (sum (A));

المصفوفة مع التعامل توابع

على والمقدرة المصفوفات عنونة إلى , باإلضافةMATLAB برنامج يزودك

t, بعمليات شرحناها التي المصفوفات مع التعامل المصفوفات, مع التعامل سابقا

مثل: التطبيق سهلة وهي

>> 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

Page 47: Learn Matlab in Arabic

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

Page 48: Learn Matlab in Arabic

MATLAB بلغة البرمجة

>> [r, c] = size (A)

r =

2

c =

4

>> r = size (A, 1)

r =

2

>> c = size (A, 2)

c =

4

t: مصفوفة لعناصر الكلي العدد 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

Page 49: Learn Matlab in Arabic

MATLAB بلغة البرمجة

ans =

2

بالدمج. مصفوفة توليد طريقةمالحظة:

>> x = [1 2; 3 4];

>> y = [x x .^ 2; x .^ 3 x .^ 4];

اإلبعاد متعددة المصفوفات

التي والعمليات األبعاد وثنائية أحادية المصفوفات السابق الفصل في شرحنا لقد

n-D) )أي األبعاد متعددة المصفوفات MATLAB برنامج عليها. يدعم تجري

arrays أحادية المصفوفات على المطبقة العنونة وتقنيات االيعازات نفس وذلك

تمتلك , ولذلك(pages) صفحات عبر الثالث البعد عام, يرقم البعد. وبشكل وثنائية

49

Page 50: Learn Matlab in Arabic

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

Page 51: Learn Matlab in Arabic

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

المصفوفة حجم

t. شرحنا كما أبعادها كل وفق المصفوفة بعد يعيد size االيعاز سابقا

>> [r, c, p] = size (C)

51

Page 52: Learn Matlab in Arabic

MATLAB بلغة البرمجة

r =

2

c =

3

p =

3

نستطيع متغيرة, عندما ابعادها كانت أو المصفوفة إبعاد عدد نعرف لم وإذا

يلي: كما ndims االيعاز استخدام

>> ndims (C)

ans =

3

>> numel (C) المصفوفة عناصر عدد إيجاد

ans =

18

>> length (size (C)) بالمصفوفة بعد اكبر طول إيجاد

ans =

3

Cell Arrays الخاليا مصفوفة

عن عبارة عناصرها تكون MATLAB لغة في مصفوفات الخاليا مصفوفات تعتبر

t خلية كل خاليا, وتتضمن أو رمزية أو عددية مصفوفات تكون قد البيانات من نوعا

t خاليا مصفوفات أو بسيطة كائنات الخلية مصفوفة من خلية تحوي قد أخرى. فمثال

52

Page 53: Learn Matlab in Arabic

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

أساسي بشكل الخلية محتويات البرنامج يظهر , وإنما الخلية محتويات يظهر ال ذلك

t المحتويات هذه تأخذ لم إذا t, كما حجما أخذت إذا الخلية محتويات ويوصف كبيرا

t t. إن حجما يدل المساواة من األيمن الجانب على مجموعات أقواس وجود معقوال

cell) الخلية بفهرسة يسمى ما وهذا عددية قيما وليس خلية هو إليه المشار إن على

indexing) نفسها. الخلية مصفوفة التالية التعابير , وسينشئ

مالحظة:

53

Page 54: Learn Matlab in Arabic

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

Page 55: Learn Matlab in Arabic

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

Page 56: Learn Matlab in Arabic

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

Page 57: Learn Matlab in Arabic

MATLAB بلغة البرمجة

ans =

[1 7 double]

>> A (1, :)

ans =

[3 3 double] [2.0000 + 3.0000i]

خاليا الن , وذلكans االسم السابقة الخاليا لجميع استخدم البرنامج بأن الحظ

محدد. اسم لها ليس المخزونة البيانات

tt استخدمنا لقد أقواس العددية, وتعمل المصفوفات إلنشاء المربعة األقواس سابقا

تفصل بينما بفواصل األعمدة للخاليا, وتفصل بالنسبة العمل نفس المجموعة

التالي المثال منقوطة. واليك بفواصل األسطر :

>> 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

Page 58: Learn Matlab in Arabic

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 برنامج

t األصلية العبارة تعتبر محتوى, بينما عنونة أخرى المصفوفة. فهرسة عن مثاال

الخلية مصفوفة مع التعامل

t المربعة األقواس نستخدم أن يمكن مصفوفات ضمن الخاليا مصفوفات لضم أيضا

التالي: المثال العددية, واليك للمصفوفة الحال هو اكبر, كما

>> 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

Page 59: Learn Matlab in Arabic

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

Page 60: Learn Matlab in Arabic

MATLAB بلغة البرمجة

6 2

يعيد نوعها, وكذلك تغير بدون مصفوفة أية تشكيل يعيد reshape االيعاز إن أي

المصفوفات. من نوع أي حجم size االيعاز

تكرارها على يعمل حيث الخاليا مصفوفات مع بالتعامل repmat االيعاز يعيد كذلك

t المطلوب. للتكرار وفقا

مثال:

>> y

y =

[ ] [ ]

[ ] [ ]

[ ] [ ]

[ ] [ ]

[ ] [ ]

[ ] [ ]

>> z = repmat (y, 1, 3)

z =

[ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ]

60

Page 61: Learn Matlab in Arabic

MATLAB بلغة البرمجة

الرمزية السالسل

األرقام, مع التعامل على القدرة في الحقيقية MATLAB برنامج قوة تكمن

t يحتاج ولكنه وأسماء العناوين وضع حالة في كما النصوص مع التعامل إلى أحيانا

الرسومات. على المحاور

الرمزية السلسة تركيب

قيم من خاصة عددية مصفوفات من MATLAB لغة في الرمزية السالسل تتألف

ASCII السلسة أظهار تعيد والتي :t الرمزية, فمثال

>> 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

كل مفردة. ويعتبر علوية بفاصلة محاطة نص هي ببساطة الرمزية السالسل إن

t السلسة في حرف حرف, كل لتخزين بايتين إلى نحتاج مصفوفة, والتي من عنصرا

أو العددية المصفوفة عناصر من عنصر لكل المخصصة بايت8 عن بذلك ونختلف

بعض إلجراء فقط نحتاج رمزية لسلسلةASCII التمثيل الدقة. ولرؤية مضاعفة

المثال في , وكماdouble االيعاز استخدام أو السلسلة على الرياضية العمليات

التالي:

61

Page 62: Learn Matlab in Arabic

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:t لغة في المتوفرة المصفوفات مع , فمثال

>> u = t (16: 24)

u =

character

t السالسل وتعنون 24 إلى16 من العناصر المصفوفات, وتحوي تعنون كما تماما

character الكلمة أعاله المثال في

>> u = t (24: -1: 16)

u =

retcarahc

عكسي. بشكل character الكلمة تهجئة تمت وهنا

>> u = t (16: 24)'

u =

62

Page 63: Learn Matlab in Arabic

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

اسطر, المصفوفات( عدة باقي في )كما الرمزية السالسل تتملك أن ويمكن

t سطر كل يحوي أن يجب ولكن t عددا استخدام يجب األعمدة, لذلك من متساويا

التالي: المثال في كما متساوية األسطر كل طول لجعل الفراغات

>> v = ['character strings having more than '

'one row must have the same number'

'of columns just like arrays! ']

63

Page 64: Learn Matlab in Arabic

MATLAB بلغة البرمجة

v =

character string having more than

one row must have the same number

of columns just like array!

t األسطر متعددة نصية مصفوفة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

Page 65: Learn Matlab in Arabic

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

▼ فراغات

Page 66: Learn Matlab in Arabic

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

مصفوفة رمزية

مصفوفة عددية

مصفوفة رمزية

حرف صغير

Page 67: Learn Matlab in Arabic

MATLAB بلغة البرمجة

[ ]

الرمزية للسالسل الخاليا مصفوفة

t, النصية المصفوفات اسطر جميع في األعمدة عدد تساوي شرط يبدو متعبا

المشكلة هذه حل آلخر, ويمكن سطر من المضافة الفراغات عدد اختلف إذا خاصة

مصفوفة ضمن البيانات أنواع كل وضع يمكننا الخاليا, حيث مصفوفات استخدام عبر

الرمزية. السالسل مع الخاليا لمصفوفة األكبر االستخدام الخاليا, ويتجلى

t ببساطة الخلية مصفوفة تعتبر بتسمية للمستخدم تسمح التي البيانات من نوعا

التالي: المثال يبينه كما المختلفة, وذلك والحجوم األنواع ذات البيانات من مجموعة

>> 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المصفوفة بأكملها, وتملك الرمزية السلسلة حصر

t t, ويحوي وعمودا مختلفة رمزية سلسلة الخلية مصفوفة من عنصر كل واحدا

الطول.

يلي: كما المصفوفات, وذلك بقية تعنون كما الخاليا مصفوفات وتعنون

>> C (2: 3)

ans =

'about'

'this for a'

67

Page 68: Learn Matlab in Arabic

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

Page 69: Learn Matlab in Arabic

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

Page 70: Learn Matlab in Arabic

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

Page 71: Learn Matlab in Arabic

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

مصفوفة من األولى القيمةالخاليا

Page 72: Learn Matlab in Arabic

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

عنوان الشيء المطلوب طباعته ) نوع بياني الصندوق

رمزي(

Page 73: Learn Matlab in Arabic

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

Page 74: Learn Matlab in Arabic

MATLAB بلغة البرمجة

الشرطية الجمل

العمليات يدعم مثلما والمقارنة المنطقية العمليات MATLAB برنامج يدعم

التي لألسئلة أجوبة على الحصول المنطقية والمعامالت العمليات الرياضية, وتهدف

.(True/False) خطأ أو بصح عنها يجاب

إن المقارنة وعمليات المنطقية التعابير جميع مع تعاملها فيMATLAB لغة تعتبر

التعابير جميع إخراج ويكون , كماFalse الصفر ويعتبرTrue هو صفري غير عدد أي

من واحد العدد تحوي منطقية مصفوفات عن عبارة المقارنة وعمليات المنطقية

.False اجل من صفر والعدد True اجل

t نوعا المنطقية المصفوفات وتعتبر يمكن العددية, كما المصفوفات من tخاصا

استخدمها التي المصفوفات باقي عنونة طريقة بنفس المنطقية المصفوفة عنونة

t العددية. التعابير ضمن سابقا

Relational Operators العالئقية( : )العوامل المقارنة معامالت

المقارنة الشائعة والمدرجة في الجدول تتضمن معامالت المقارنة كل اإلشارات

التالي:

الوصفالمقارنة معامل

من أصغر>

يساوي أو أصغر>=

من أكبر<

يساوي أو أكبر<=

== عن نميزها )لكي المساواة إشارة

)=

74

Page 75: Learn Matlab in Arabic

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

Page 76: Learn Matlab in Arabic

MATLAB بلغة البرمجة

t )==( تعنيان )=( و اإلشارتين بان الحظ t, حيث شيئا )==( بمقارنة يقوم مختلفا

t متساويين كانا إذا واحد العدد وتعيد متغيرين متساويين, بينما يكونا لم إذا وصفرا

متغير. إلى العملية إخراج )=( إلسناد تستخدم

(thr من اكبر حالة )في واحدات عناصرها منطقية أحادية مصفوفة لتوليد (: 1 ) مثال

t (.thr تساوي أو نم اصغر حالة )في واصفارا

>> inddent = [10 17 22 0 7 3 2];

>> thr = 7;

>> y = (indent > thr)

y =

1 1 1 0 0 0 0

(thr من راكب حالة )في العناصر نفس عناصرها أحادية مصفوفة لتوليد (: 2 ) مثال

t (.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

Page 77: Learn Matlab in Arabic

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

Page 78: Learn Matlab in Arabic

MATLAB بلغة البرمجة

المعامل أسبقية

t تعبير قيمة بإيجادMATLAB برنامج يقوم القواعد من مجموعة إلى مستندا

المعامالت قبل العليا األسبقية ذات المعامالت المعامل, وتحسب ألسبقية الناظمة

إلى اليسار من المتساوية األسبقية ذات المعامالت الدنيا, وتقيم األسبقية ذات

برامج يعتدها التي المعامل أسبقية قواعد التالي الجدول اليمين. ويشرح

MATLAB.

IF-ELSE-END الصيغة

المعامل مستوى

األسبقية

األعلى) ( األقواس

.(^, ^) (, القوة'المدور)

(~) النفي إشارة

.(/ ،/) .(, القسمة*) *, الضرب

)-( )+(, والطرح الجمع

):( المتعامدتين النقطتين معامل

نم (, اكبر>=يساوي) أو (, واصغر>) من أصغر

(, المساواة<=يساوي) أو من (, اكبر<)

(~)= المساواة )==(,عدم

ANDالمنطقي)&( الجمع

األدنىOR( |) المنطقي المعامل

78

Page 79: Learn Matlab in Arabic

MATLAB بلغة البرمجة

t أوامر من مجموعة حساب إلى نحتاج قد اختبار عن ناتج إخراج إلى استنادا

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

(commands evaluated if expression2 is true)

elseif expression3

79

Page 80: Learn Matlab in Arabic

MATLAB بلغة البرمجة

(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

disp ('2');

else

80

Page 81: Learn Matlab in Arabic

MATLAB بلغة البرمجة

disp ('3');

end;

اإلخراج

3

SWITCH-CASE الصيغة

t أوامر تنفيذ علينا يتوجب عندما لوسط كمي الختيار متكرر استخدام على اعتمادا

التالية: العامة الصيغة لها التي switch-caseالصيغة استخدام السهل من ما, عندها

switch expression

case test-expression1

(commands1)

case test-expression2

(commands2)

otherwise

(commands3)

end

t أما هناexpression يكون أن يجب t عددا التعبير رمزية. يقارن سلسلة أو مفردا

expressionبالتعبير السابقة الصيغة في الموجودtest-expression1في الموجود

(commands1) األوامر تنفيذ التعبيران, سيتم تساوى األولى. وإذا case عبارة

األول, الشرط يتحقق لم إذا . أماend العبارة حتى بعدها الواقعة التعليمات وتخطي

العبارات مع السابق المثال في expressionسيقارن الثاني, حيث الشرط فسيختبر

test-exoression2عبارة في الموجودة caseالتعبيران, سيتم تساوى الثانية. وإذا

عبارة أي تحقق لم . إذاend عبارة حتى العبارات بقية ( وتهمل(commands2 تنفيذ

caseالتعبير مع المساواة expressionاألوامر ستنفذ , عندها commands3)تلي ( التي

.otherwise العبارة

أحدى تنفيذ سيتم بأنه switch-case صيغة عن أوردناه الذي الشرح من الحظ

التالية: األمثلة واليك switch-case للصيغة المكونة األوامر مجموعات

81

Page 82: Learn Matlab in Arabic

MATLAB بلغة البرمجة

(: 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;

disp (m);

اإلخراج

82

5..1 اإلخراج

Page 83: Learn Matlab in Arabic

MATLAB بلغة البرمجة

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

Page 84: Learn Matlab in Arabic

MATLAB بلغة البرمجة

والتكرار الدوران جمل

وهي: والتكرار الدوران جمل من مجموعة MATLAB لغة توفر

for جملة

المرات من معين لعدد األوامر من مجموعة تنفيذ بإعادة for حلقات تقوم

يلي: كما for لحلقة العامة الصيغة معينة, وتعطى وبخطوة

for i = x1: x3: x2

(commands)

end;

القيمة منend وfor عبارتي بين الواقعة( commands)األوامر تنفيذ يعاد حيث

التالي: المثال في . كماx3 مقدارها وبزيادةx2 النهائية القيمة إلىx1االبتدائية

مثال:

>> for n = 1: 10

x (n) = sin (n * pi / 10);

end;

84

Page 85: Learn Matlab in Arabic

MATLAB بلغة البرمجة

>> 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

t هناn الحلقة متغير سيأخذ .array بالمصفوفة ( معطاة10) ( و1) بين عشوائية قيما

مالحظة:

التالي: المثال في متداخلة, كماfor حلقات عدة إنشاء يمكن

>> for n =1: 5

85

Page 86: Learn Matlab in Arabic

MATLAB بلغة البرمجة

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

2

3

86

Page 87: Learn Matlab in Arabic

MATLAB بلغة البرمجة

.

.

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

2 4 6 8 10 12 14 16 18 20

87

( الضرب جدول طبع )

Page 88: Learn Matlab in Arabic

MATLAB بلغة البرمجة

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 جملة

�جري t الحساب عملياتwhile حلقات ت عكس على المرات من محدد غير عددا

t تؤدي التيfor حلقات t عددا لحلقة العامة الصيغة كتابة التمريرات, ويمكن من معينا

whileيلي: كما

while expression

(commands)

end;

أن طالماend وwhile العبارتين بين الواقعة(commands)األوامر مجموعة ستنفذ

t تمتلكexpression ضمن العناصر كل نتيجة تكون ما , وعادةt(true) صحيحة قيما

expression t t. عددا مفردا

(: 1 ) مثال

>> x = 1;

>> while x < 25

disp (x); x = x +

1;

end; اإلخراج

1

2

3

.

.

88

Page 89: Learn Matlab in Arabic

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

Page 90: Learn Matlab in Arabic

MATLAB بلغة البرمجة

فان اكبر حلقات ضمن واقعة داخلية حلقة ضمنbreak التعليمة وجدت أذا

األكبر. الحلقات من يخرج وال التعليمة فيها صادف التي الحلقة من يخرج البرنامج

MATLAB ببرنامج الخاصة البيانات ملفات

صيغة , وفقMATLAB برنامج عمل ساحة في الموجود المتغير تخزين يمكن

يلي: كماsave األمر استخدام طريق عن , وذلكMATLAB ببرنامج خاصة

>> save

في(Workspace) العمل ساحة في الموجودة المتغيرات جميع خزن يتم وبذلك

هذه الحالي. وتحافظ المجلد في يوضعmatlab.mat باسم ثنائية صيغة ذي ملف

وبدقة القيم كامل , علىMATLAB ببرنامج الثنائية, والخاصة صيغة ذات الملفات

MAT-files ملفات تعتبر الدقة, وال بنفس المتغيرات أسماء وتخزن مضاعفة, كما

t متوافقة هي مستقلة, إنما أصول ذات في الموجودة الملفات أنواع بقية مع تماما

من وفتحة الملفات من نوع وفق متغير أي تخزين نستطيع , إذ MATLABبرنامج

للملف. خاصة معالجة أية إجراء دون األخرى األنواع قبل

التالي: المثال في كما معينة متغيرات لتخزينsave األمر يستخدم أن ويمكن

>> save var1 var2 var3

90

Page 91: Learn Matlab in Arabic

MATLAB بلغة البرمجة

أن , ويمكنmatlab.mat الملف ضمنvar3 وvar2 وvar1 المتغيرات بتخزين قم أي

يلي: كماsave لألمر أول كوسيط الملف اسم نحدد

>> save filename var1 var2 var3

ملف ضمنvar1, var2, var3 المتغيرات يلي: خز¡ن كما السابقة التعليمة وتفسر

.filename.mat اسمه

إنشاؤها تم التي البيانات ملفات األمر هذا يفتح إذsave األمرload األمر ويعاكس

يلي: كماsave باألمر

>> load

وجدته حيثماmatlab.mat الملف ضمن تجدها التي المتغيرات كل حمل¡ تعني وهي

تخزين . ويتمMATLAB لبرنامج البحث مسار في أو الحالي المجلد في سواءt أوال

العمل, وستحم¡ل ساحة فيmatlab.mat الملف في المخزونة المتغيرات أسماء

وجودها. حال في لها المطابقة األسماء ذات المتغيرات فوق

اسم نذكر ان يجب(MAT-file) الحقة ذي ملف من معينة متغيرات ولتحميل

يلي: كما المتغيرات وقائمة الملف

>> load filename var1, var2, var3

إلىvar1, var2, var3 المتغيرات وحملتfilename.mat الملف فتح هنا تم لقد

العمل. ساحة

91

Page 92: Learn Matlab in Arabic

MATLAB بلغة البرمجة

القاعدية وااليعازات والبتات المجموعات ايعازات

المجموعات ايعازات

القيم من لعدد منتظم تجميع ألنها مجموعات إنها على المصفوفات تقييم نستطيع

t ومقارنة الختبار توابع عدةMATLAB برنامج لك الفهم, يقد¡م هذا من وانطالقا

للمساواة: اختبار ابسط التالي المثال لك المجموعات, ويقدم

>> a = rand (2, 5);

>> b = rand (2, 5);

>> isequal (a, b)

ans =

0

>> isequal (a, a)

ans =

1

92

Page 93: Learn Matlab in Arabic

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

Page 94: Learn Matlab in Arabic

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

مالحظة:

خاليا. مصفوفات أو رمزية مصفوفات على السابقة العمليات إجراء يمكن

البت إيعاز

t, يؤمن ذكرناها التي المنطقية المعامالت إلى إضافة t البرامج سابقا تسمح توابعا

الصحيحة. األعداد من منفصلة بتات على المنطقية العمليات بإجراء

>> bitand (3, 4)

ans =

0

>> bitor (3, 4)

ans =

7

>> bitxor (13, 27)

ans =

22

94

Page 95: Learn Matlab in Arabic

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

الموقع

الموقع العدد

Page 96: Learn Matlab in Arabic

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

عدد الخانات

عدد الخانات

رمزي

Page 97: Learn Matlab in Arabic

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

المخرجات المدخالت

اسم الدالة

البرنامج

الرئيسي

البرنامج الفرعي

)الدالة(

Page 98: Learn Matlab in Arabic

اإلدخال اإلخراج

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

البرنامج الفرعي

)الدالة(

البرنامج

الرئيسي

Page 99: Learn Matlab in Arabic

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

البرنامج

الرئيسي

البرنامج الفرعي

)الدالة(

Page 100: Learn Matlab in Arabic

MATLAB بلغة البرمجة

function y = myfunction (a, b);

-------

-------

-------

myfunction.m الخزن فيكون

.(end) على الدالة نهاية تحتوي ال-3

الدوال. وخاصة تعديل كل بعد البرامج تخزن-4

بحرف. تبدأ أن يجب المخزون الدالة اسم-5

أخرى. دالة قبل من دالة تستدعي أن يمكن-6

البيانية الرسوم

ثنائية البيانات تظهر التي االيعازات من بالعديدMATLABبرنامج يزودك

بينما األبعاد وثالثية األبعاد ثنائية منحنيات بعضها يرسم األبعاد, حيث وثالثية األبعاد

t بعضها يرسم رابع. كبعد اللون استخدام يمكن وإطارات, كما سطوحا

plot االيعاز

األبعاد. ثنائي شكل على البيانات بإظهار االيعاز هذا يقوم

(: 1 ) مثال

x = [1: 0.5: 10];

;y = exp (x) )مصفوفة( yللـ قيم مجموعة الحتساب

plot (x, y) x, y للمحورين بيانية قيم لرسم

(: 2 ) مثال

x = 1: 10;

plot (x)

مالحظة:

100

Page 101: Learn Matlab in Arabic

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

Page 102: Learn Matlab in Arabic

MATLAB بلغة البرمجة

(: 6 ) مثال

plot (x, sin (x), x, cos (x)); منحنيين لرسم

(: 7 ) مثال

plot (x, sin (x), 'r: +', x, cos (x), 'b: *');

102

sin (x) لون ازرق عالمة المخطط cos (x) عالمة المخطط لون احمر

Page 103: Learn Matlab in Arabic

MATLAB بلغة البرمجة

مالحظة:

االيعاز: باستخدام المخطط على نص أي كتابة يمكن

text (x, y, 'string');

plot3 إيعاز

صيغة نفس لها , وصيغتهplot3 وأصبح األبعاد ثالثي إلىplot االيعاز تمديد تم لقد

plotمساقط ثالث لها البيانات كون عدا البعد ثنائي t مسقطين. والصيغة من بدال

لها: العامة

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

النص المطلوب االحداثي االحداثي

كتابته الصادي السيني

اللون االحداثي االحداثي االحداثي

)خيط رمزي( الثالث الصادي السيني

Page 104: Learn Matlab in Arabic

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

Page 105: Learn Matlab in Arabic

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

Page 106: Learn Matlab in Arabic

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

Page 107: Learn Matlab in Arabic

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

Page 108: Learn Matlab in Arabic

MATLAB بلغة البرمجة

xlabel ('Amount of Encrypted Data');

ylabel ('Cipher-image Correlation');

108