Professional Documents
Culture Documents
ماتلاب لمهندسي الاتصالات
ماتلاب لمهندسي الاتصالات
2015
املاتالب
لــــ
مهندسي االتصاالت
لــ
فراس عوض
-2-
إهداء
ألبي و أمي
ألصدقائي
-3-
الفهرس :
الصفحة العنوان
6 .......
هقذهت ........................................................................................ :
8 الفصل األول :بذايت العمل .......................................................................
9 ) 1 – 1هقذهت .............................................................................
9 ) 2 – 1نظرة تاريخيت لبرناهج ............................................ MatLab
10 ) 3 – 1التؼرف ػلى الىاجهت الرئيسيت للبرناهج باإلصذار .......... R2013a
13 ) 4 – 1التؼليواث و التىابغ األساسيت .................................................
15 ) 5 – 1الوتغيراث في برناهج ............................................ MatLab
17 ) 6 – 1التؼليواث الخاصت باإلظهار و اإلدخال .......................................
19 ) 7 – 1طريقت ػرض األرقام و تذويرها .............................................
21 ) 8 – 1بؼض الوحارف الخاصت و استخذاهاتها .....................................
22 ) 9 – 1توارين .............................................................................
24 الفصل الثاني :المصفوفاث ......................................................................
25 ) 1 – 2هقذهت .............................................................................
26 ) 2 – 2إنشاء المصفوفات ...............................................................
30 ) 3 – 2فهرسة المصفوفات .............................................................
33 ) 4 – 2خواص المصفوفات ............................................................
35 ) 5 – 2العمليات على المصفوفات .....................................................
42 ) 6 – 2المصفوفة متعددة األبعاد ......................................................
43 ) 7 – 2مصفوفة األحرف ...............................................................
45 ) 8 – 2مصفوفة الخاليا .................................................................
47 ) 9 – 2مصفوفة التراكيب ..............................................................
51 ) 10 – 2تمارين ........................................................................
55 الفصل الثالث :الرياضياث في الماتالب .......................................................
56 ) 1 – 3الرياضياث البسيطت .............................................................
57 ) 2 – 3اإلحصاء ..........................................................................
60 ) 3 – 3األعداد العقدية ..................................................................
61 ) 4 – 3المثلثات ...........................................................................
62 ) 5 – 3الرياضيات المنفصلة ...........................................................
64 ) 6 – 3كثيرات الحدود ..................................................................
66 ) 7 – 3التوابع الرمزية و الرياضيات .................................................
68 ) 8 – 3العمليات و التوابع المنطقية ....................................................
72 ) 9 – 3تمارين ................................................. ........................
75 الفصل الرابع :الرسم في الماتالب .............................................................
76 ) 1 – 4هقذهت .............................................................................
76 ) 2 – 4التابغ ....................................................................... plot
78 ) 3 – 4تحسين الرسم ...................................................................
85 ) 4 – 4الرسم ثنائي البعد باستخدام توابع مشابهة للتابع .................. plot
87 ) 5 – 4الرسم ثالثي البعد ................................................................
98 ) 6 – 4رسم السطوح ....................................................................
-4-
90 ) 7 – 4الرسم في اإلحداثيات العقدية .................. ............................
93 ) 8 – 4رسم البيانات المتقطعة .........................................................
95 ) 9 – 4رسم تمثيل البيانات .............................................................
100 ) 10 – 4تمارين .........................................................................
103 الفصل الخامس :البرمجت في الماتالب ........................................................
104 ) 1 – 5هقذهت .............................................................................
104 ) 2 – 5التحكن بتذفق التؼليواث ..........................................................
113 ) 3 – 5التعرف على ملفات .................................................. M-file
116 ) 4 – 5نصائح و خطط في البرمجة .................. ..............................
117 ) 5 – 5تمارين ............................................................................
120 الفصل السادس :أنواع البياناث و إدارة ملفاث البياناث ...................................
121 ) 1 – 6هقذهت ..............................................................................
121 ) 2 – 6أنىاع البياناث في الواتالب .....................................................
123 ) 3 – 6تصدير البيانات و استيرادها باستخدام saveو ............... load
125 ) 4 – 6التعامل مع الملفات .................. ........................................
127 ) 5 – 6تمارين ............................................................................
129 الولحقاث ........................................................................................... :
137 الوراجغ ............................................................................................ :
-5-
مقدمة :
ثسم هللا اًرمحن اًرحمي
تفضي من هللا و ثوفيق منو خي خالهل اىهتيت من اعداد ىذا اًعمي سائ ًال اايه بن يىون خاًص ًا ًوهجو اًىرمي و بن ييفعيا
تو يف ادلهيا و الآخرت و بن ييفع لك من يلرب يف ىذا اًىتاة و يطَة اًعمل منو فلد اهطَلت تفىرت و يه نتاتة مَخص
ًزماليئ يف اًس ية ادلراس ية اًثاًثة من ىيدسة االثصاالث يف خامعة حَة و ًىن لمهية ىذه املادت كررث اوشائو عىل
شلك نتاة و مقت ابالضافة ًتغطية مجيع مواضيع امللرر اضافة لك ما يَزم ملن يححث يف ثعمل جرانمج املاثالة و اٍمتىن منو
,و ٍمتىني زماليئ اًطالة من استيعاتو جتيخت اًتوسع و اكن اًىتاة عىل ىذا اًشلك :
اًفصي الول :و فيو مقت جمتىني ادلارس من اًتعامي مع املاثالة يف بوىل املراحي و يه اًتعامي معو عىل بهو بآةل حاس حة
ثس يطة مث ماىية املتغرياث فيو و طرق االدخال واالخراج و تعض اًتعَاميث الساس ية .
اًفصي اًثاين :و يف احلليلة بعتربه ًة اًىتاة نام ىو ًة املاثالة فتحدجت فيو عن املصفوفاث ثشلك عام اًعددية و
احلرفية و مصفوفاث اخلالاي و اًرتاهية و بعن بين بعطيتو حلو اذلي يتوحة عيل فبدرحت مجيع اًتواتع و اًتعَاميث
اًالزمة.
اًفصي اًثاًث :و بمسيتو اًرايضياث يف املاثالة فيو حل ًا يعاجل مجيع املسائي اًرايضية من معَياث حساتية معلدت م
معَياث منطلية ابالضافة دليع اًتواتع اًرايضية اًالزمة مقت تتغطية اًرايضياث الساس ية من تاكمي و اش تلاق و لك ما
يَزمو املحتدئ يف دراسة ىيدسة االثصاالث .
اًفصي اًراتع :و كد خصصتو ًرمس اًتواتع اًيت طاملا ثعرتضيا ابالضافة لهواع عديدت من اًرسوماث اكٍمتثيي اًحياين و
االحصايئ و اًرمس جاليث اًحعد .
اًفصي اخلامس :و عيواهو اًربجمة يف املاثالة فىام س يعرف بن املاثالة يعمي وىوهو تيئة جرجمة نام بن اًربجمة حبد ذاهتا
س يحتاهجا يف مجيع ثطحيلاثيا يف املاثالة .
اًفصي اًسادس :و يتعامي مع املَفاث اًيصية و اًثيائية ًتخزين املتغرياث و كد عرضت فيو بهواع املَفاث يف املاثالة ٌَعمل
ًيس بنرث .
و نام س تالحظ من خالل دراس تم ثساطة اًتعحري و كةل اًالكم و اس تعضت عن ذكل جىرثت المثةل و كََت
من الس ئةل و اًامترين اٍهنائية يف هناية لك فصي و ذكل ًضيق اًوكت ًيس بنرث .
-6-
CDمرفق مع اًىتاة ًتلوم ماكن اًرشح اذلي التد منو ملن يلوم نام بردفت ىذا اًىتاة مبجموعة فيديوىاث يف
ابدلراسة من دون معمل.
و مك وددث ًو بين بمجي لك ما س يحتاخو هميدس االثصاالث يف املاثالة وًىن ذكل س يحتاج ًىتة و ًيس
ًىتاة واحد و ىذا ما بآمهل يف املس تلدي ان شاء هللا مفا ىذا اًىتاة اال غيض من فيض .
فراس عوض
-7-
انفصم
1
ثذايخ انؼًم
get start
أهداف هذا الفصل :
) 1 - 1يقذيخ :
Introduction
نى ٚؼذ ٚخفٗ ػهٗ أزذ أًْٛخ ْزا انؼًالق انز٘ ال غُٗ نُب ػُّ ف ٙدساعزُب نُٓذعخ
االرصبالد زٛث ٚمذو نُب ثٛئخ نًؼبندخ خًٛغ انًغبئم انز ٙرٕاخُٓب يٍ دساعخ اإلشبساد ٔ انُظى
إنٗ ًَزخخ َظى االرصبالد ٔ يسبكبرٓب إنٗ يؼبندخ اإلشبسح ثًب فٓٛب إشبسح انصٕد ٔ انصٕسح ٔ
دساعخ انسمٕل انكٓشٔيغُبغٛغٛخ ٔ انٕٓائٛبد ٔ انشاداس ٔ رسهٛم انشجكبد انؼصجَٕٛخ ٔ رصًٛى
انٕاخٓبد انشعٕيٛخ ٔ GUIكزبثخ انجشايح ٔ ,انؼذٚذ يٍ انًٓبو انز ٙال ًٚكٍ إزصبئٓب فْ ٙزا
انًٕظغ ٔ نكُُب عُجذأ دساعزُب ثؤفكبس ثغٛطخ ٔ أعبعٛبد رًكُُب يٍ انزؼبيم يغ ْزا انجشَبيح فٙ
يشازم الزمخ ...
-9-
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
عندما تقوم بتشغٌل البرنامج ستظهر لك الشاشة المبٌنة فً األسفل و التً تعبر عن
الواجهة الرئٌسٌة للبرنامج :
ٔ انزَ ٙدذ فٓٛب – كغٛشْب يٍ ٔاخٓبد انجشايح انز ٙرؼًم رسذ ثٛئخ - Windowsيب ٚه: ٙ
- 10 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
فبنغبٚخ يٍ ْزِ انُبفزح كًب سئُٛب ْ ٙإظٓبس انًزغٛشاد ٔ رؼذٚم لًٛزٓى .
- 11 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
يسبر انًجهذ انحبني ٔ :يٍ ُْب َغزطٛغ رغٛٛش انًدهذ انسبن. ٙ
- 12 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
عندما تعمل فً الماتالب تحتاج لبعض التعلٌمات و التوابع ( الفرق بٌن التعلٌمة و التابع
هو أن التعلٌمة تتبع بفراغ و متحول أو أكثر بٌنما التابع ٌحتاج ألقواس لكً ندخل إلٌه
المتحوالت و نستطٌع إسناد نتٌجة التابع إلى متغٌر ) التً تساعدك فً عملك و بعض هذه
التعلٌمات ضروري و هام و بعضها للرفاهٌة برأًٌ و لكن البد من التعرف علٌها :
عندما ال تسعفك ذاكرتك فً تذكر تعلٌمة ٌمكنك طلب المساعدة من خالل التعلٌمة :
و عندما تمتلئ نافذة التعلٌمات باألوامر و النتائج و ٌصبح ذلك مزعج بالنسبة لك فبإمكانك
استخدام األمر
Clc
رُغزخذو ْزِ انزؼهًٛخ نًغر انشبشخ فَ ٙبفزح األٔايش . Command Window
- 13 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
Clf
ززف انشكم انزخطٛط ٙانسبن ٔ , ٙثبنزبن ٙززف َبفزح انشكم انزخطٛط.Graph Window ٙ
date
رمٕو ْزِ انزؼهًٛخ ثئػبدح عهغهخ رسٕ٘ انزبسٚخ ثبنشكم . day - month - year
clock
6ػُبصش ْ ٙثبنزشرٛت كًب ٚه: ٙ ثئػبدح شؼبع ٚسٕ٘ رمٕو ْزِ انزؼهًٛخ
[. ]year month day hour minute seconds
) e=etime(t2,t1
رمٕو ْزِ انزؼهًٛخ ثسغبة انٕلذ انًمطٕع ثٔ ٍٛلز ٔ t2 ٔ t1 ٍٛرؼٛذ انُزٛدخ ثبنثٕاَ. ٙ
cd newfolder
ٚمٕو ثزغٛٛش يغبس يدهذ انؼًم انسبن ٙزٛث َكزت انًغبس كبيم أٔ َغج ٙظًٍ انمٕع. ٍٛ
tic
رغزخذو ْزِ انزؼهًٛخ يغ انزؼهًٛخ tocنسغبة انضيٍ انز٘ اعزغشلّ انًبرالة ف ٙيؼبندخ أيش يب
زٛث َكزت ticثى رؼهًٛخ يب ثى ٔ tocػُذْب عٛؼٛذ انًبرالة صيٍ انًؼبندخ يمذساً ثبنثبَٛخ .
- 14 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ًٚكٍ رخصٛص انًزغٛشاد ف ٙانــ MatLabنزًثٛم انمٛى انشلًٛخ ٔ لٕاػذ رغًٛخ ْزِ
انًزغٛشاد ْ: ٙ
المتغير الوصف
ans هو االسم االفتراضً لناتج العملٌة التً ال تقوم باسنادها إلى متغٌر
pi نسبة محٌط الدائرة إلى قطرها … 𝜋 = 3.1415926
eps أصغٌر قٌمة ٌمكن التفرٌق من خاللها بٌن رقمٌن
inf الالنهاٌة و هً ناتج التقسٌم على 0مثال 1/0 :
i,j الوحدة التخٌلٌة لألعداد العقدٌة و تساوي −1
nan عدم تعٌٌن أو لٌس رقما َ ,مثال 0/0 :
realmax أكبر رقم حقٌقً ذو فاصلة عائمة ٌمكن تمثٌله فً حاسوبك
realmin أصغر رقم حقٌقً ذو فاصلة عائمة ٌمكن تمثٌله فً حاسوبك
computer نوع الحاسب الذي تعمل علٌه
version إصدار برنامج الماتالب
جذول : 1 – 1ثؼط انًتغيزاد انخبصخ انًحجىسح و انًىجىدح في انًبتالة
وٌمكنك التأكد فٌما إذا كان االسم التً تود إعطاؤه لمتغٌر صالح أم ال من خالل التعلٌمة :
وٌمكنك التأكد فٌما إذا كان االسم التً تود إعطاؤه لمتغٌر محجوز من قبل متغٌر آخر أم ال
من خالل التعلٌمة :
- 15 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
Who
ُتستخدم هذه التعلٌمة لمعرفة أسماء المُتغٌرات الموجودة فً جلسة MatLabالحالٌة .
Whos
ُتستخدم هذه التعلٌمة لمعرفة أسماء و أحجام المُتغٌرات الموجودة فً جلسة MatLabالحالٌة .
Clear
رُغزخذو ْزِ انزؼهًٛخ نسزف خًٛغ انًزغٛشاد ٔ ,إػبدح انمٛى االفزشاظٛخ نهًزغٛشاد انخبصخ ٔ ,إرا
ٔ , clear var1 var2إرا أسدَب ززف أسدَب ززف يزغٛش ٔازذ أٔ أكثش َكزت انصٛغخ
انًزغٛشاد انز ٙرجذأ ثبنسشٔف varيثالً َكزت . clear *var
) 𝑥 = 6 𝑎2 + 𝑐 x = 6 * ( a^2 + c
𝑐∗𝑏𝑎 +
=𝑦 ) y = (a+b*c)/(d/f
𝑓𝑑 /
9 𝑐
=𝑧 𝑏𝑎 ) − 4 9/5*( (a^b^c) – 4
5
- 16 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
يثبل : 1-1
;>> x= 5 >> a=2+x^y
>> y=3+x =a
=y 390627
8 ))>> b=3*(5/(2*7^3
>> z=5*y/4 =b
=z 0.0219
10 >>
و للمزٌد حول العملٌات الرٌاضٌة اذهب إلى الفصل الثالث .
ػُذ اعزخذايُب نهــ ٔ MatLabػُذ كزبثخ يهفبد scriptف ٙانــ MatLabفئَُب عُسزبج
نزؼهًٛبد رظٓش انُزبئح نهًغزخذو ٔ رطهت يٍ انًغزخذو إدخبل ثٛبَبد – رًبيب ً يثم رؼهًٛبد Cin
ٔ Coutف ٙنغخ انــ ْ ٔ - C++زا يب عُزؼهًّ ُْب فْ ٙزا انمغى :
) Disp ( x
ُٚغزخذو ْزا انزبثغ نؼشض انًزغٛش , xإرا كبَذ xيزغٛش فغٛظٓش لًٛخ انًزغٛش xدٌٔ إظٓبس اعى
انًزغٛش ٔ ,إرا كبٌ انًزغٛش ْٕ عهغهخ ' 'stringفغٛظٓش يب ثذاخم األلٕاط .
- 17 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
- %:
+فٌدل على و قد ٌحوي 0فٌدل على ملئ الخانات على ٌسار العدد باألصفار و قد ٌحوي
وضع إشارة العدد سالبة أو موجبة و .
- w:
ٌحدد هذا المتغٌر عرض الحقل لمكان المتغٌر و هو عدد صحٌح .
- d:
ٌحدد هذا الحقل عدد الخانات بعد الفاصلة العائمة و إذا لم نضعه أو وضعناه صفر فلن ٌكون
هناك خانات بعد الفاصلة و هو عدد صحٌح .
- f:
انٕصف انًسذد
زشف ٔازذ c
سلى ػشش٘ يؤشش d
انصٛغخ األعٛخ ثبعزخذاو e e
انصٛغخ األعٛخ ثبعزخذاو E E
فبصهخ ثبثزخ f
انصٛغخ األصغشٚخ نهشكم eأٔ f g
انصٛغخ األصغشٚخ نهشكم Eأٔ f G
سلى غٛش يؤشش ثبنصٛغخ انثًبَٛخ o
عهغهخ زشفٛخ s
سلى ػشش٘ غٛش يؤشش u
صٛغخ عذ ػششٚخ ثبعزخذاو أزشف صغٛشح ()a-f x
صٛغخ عذ ػششٚخ ثبعزخذاو أزشف كجٛشح ()A-F X
انجذول : 2-1أنىاع انتذوين انًستخذيخ في انطجبػخ
- 18 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٔ فًٛب ٚهَٕ ٙسد اندذٔل ( ) 3-1ثجؼط انؼاليبد انز ٙرغبػذَب ف ٙرسغت غجبػخ انُزبئح
المعامل الوصف
\b تقوم بمسح حرف سابق واحد
\n االنتقال إلى سطر جديد
\t إضافة 4فرااات أفقيا ًا
\ char طباعة المحرف . char
انجذول : 3-1انًؼبيالد انًستخذيخ في انطجبػخ
يثبل : 2-1
)'>> x=input('enter value of x: )>> disp('x') , disp(x
enter value of x:5 x
=x 5
5 >> fprintf( 'the value of x is :\t
)>> c=num2str(x )%1.5d\n' , x
=c the value of x is : 00005
5 >>
- 19 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
يثبل : 3-1
>> a=-45.3 )>> floor(a
=a = ans
-45.3000 -46
)>> round(a )>> fix(a
- 20 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
= ans = ans
-45 -45
)>> ceil(a >>
= ans
-45
;
إٌ ٔظغ انفبصهخ انًُمٕغخ ثؼذ انؼجبسح رؼُ ٙثؤٌ ٚمٕو انجشَبيح ثزُفٛز انؼجبسح ٔ ػذو إظٓبس انُبرح
,
ًٚكُُب كزبثخ ػذح رؼهًٛبد يُفصهخ ػهٗ عطش ٔازذ ٔ رنك ثٕظغ انفبصهخ ث ٍٛرهك انزؼهًٛبد .
%
ٔ رؼُ ٙأٌ انُص ف ٙانغطش انز٘ ٚجذأ ثشيض انُغجخ انًئٕٚخ يب ْٕ إال رؼهٛك ٔ ال ُٚفزِ ثشَبيح انــ
. MatLab
…
سيض انًزبثؼخ ٔ ػُذيب ٕٚظغ فَٓ ٙبٚخ ػجبسح فٕٓ ٚذل ػهٗ أٌ ركًهخ انؼجبسح يٕخٕدح ف ٙانغطش
انزبن. ٙ
يثبل : 3-1
>> a=4 , b=3; ... >> % computing a+b+c
c=5 >> a+b+c
=a = ans
4 12
=c >>
5
****نهاية الفصل****
- 21 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
: تًبرين
exercises :
عجت ػذو اعزخذاو ثؼطٙ انًبرالة ٔ أػطٙشاد فٛ زذد األعًبء انًمجٕنخ كًزغ- 2
: األعًبء
- 22 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٚ - 3ؼطٗ رٛبس انسبنخ انثبثزخ انز٘ ًٚش ف ٙداسح يكَٕخ يٍ يمبٔيخ ٔيهف ٔ يكثف ػهٗ
انزغهغم ثبنؼاللخ :
𝐸
=𝐼
2
1
𝑅2 + 2𝜋𝜔𝐿 −
𝐶𝜔𝜋2
ٔ انًطهٕة كزبثخ ْزا انزؼجٛش ف ٙانًبرالة ٔ زغبة لًٛخ انزٛبس ػُذ لٛى R=5 , C=10 , L=4 ,
ٔ , E=2 , 𝜔 = 2اػشض اندٕاة ثبنزذٔ ٍٚانؼهً. ٙ
;>> R=5;L=4;C=10;E=2;w=2
)>> I=E/sqrt(R^2+(2*pi*w*L - 1/(2*pi*w*C))^2
=I
0.0396
>> format shorteng
>> I
=I
39.5995e-003
>>
- 23 -
انفصم
2
انمصفىفاخ
Arrays
أهداف هذا الفصل :
) 1 . 2مقذمح :
Introduction
ُ٠ؼزجش اٌغجش اٌخط ٟلٍت ٚسٚػ اٌّبرالة ٚف ٟاٌؾم١مخ فئْ وٍّخ ِ MAT-LABب ٟ٘
إٌ ٝرغّ١غ ٌىٍّزّ٘ ٓ١ب MATrix – LABoratoryأِ ٞخزجش اٌّظفٛفبد وّب روشٔب عبثمب ً ٚ ,
إْ اٌّبرالة – ِزّ١ضاً ػٓ أ٠خ ٌغخ ثشِغخ أخش٠ – ٜؾفضن ػٍ ٝاالعزخذاَ اٌّىضف ٌألشؼخ ٚ
اٌّظفٛفبد .
ٚلجً اٌجذء ف٘ ٟزا اٌفظً الثذ ِٓ اٌزؼشف ػٍ ٝثؼغ اٌّظطٍؾبد :
ٚ : arrayاٌز ٟرؼِٕ ٟغّٛػخ ِٓ األش١بء ِشرجخ ثشىً ِٕبعت ٔ ٚغزط١غ اإلشبسح إٌٙ١ب
ثّؤشش أ ٚأوضش ٚ .ف ٟاٌّبرالة رجذأ ػٕٔٛخ اٌؼٕبطش ف array ٟثذءاً ِٓ اٌشلُ ١ٌ ٚ 1ظ اٌظفش
ٚ ,إْ أثؼبد٘ب ٘ ٟثؼذد اٌّؤششاد اٌزٔ ٟؾزبعٙب ٌٍٛطٛي إٌ ٝػٕظش ِب ِٕٙب فّضالً راد اٌجؼذ
اٌٛاؽذ ( شؼبع ) ٔغزط١غ اٌٛطٛي إٌٙ١ب ثّؤشش ٚاؽذ .
: Matrixف array ٟٙصٕبئ١خ اٌجؼذ ٔ ٚؼغ فٙ١ب أسلبَ فٍٙب لٛاػذ خبطخ ٌٍؼشة ٚ
اٌغّغ ٚاٌؼٍّ١بد األخش ٚ . ٜرذػ ٝأثؼبد اٌّظفٛفخ ثبألعطش ٚاألػّذح .
ٛ٘ : Vectorؽبٌخ خبطخ ِٓ اٌّظفٛفخ ؽ١ش ٌٗ ثؼذ ٚؽ١ذ ٚلذ ٠ى ْٛشؼبع عطشٞ
ؽ١ش ّ٠زٍه عطش ٚؽ١ذ ٚػذح أػّذح ٚ ,لذ ٠ى ْٛشؼبع ػّٛد ٞؽ١ش ّ٠زٍه ػّٛد ٚؽ١ذ ٚػذح
أعطش .
ٚؽز ٝرى ْٛفىشح اٌّظفٛفخ ػبِخ ٚشبٍِخ فئٕٔب ٔؼشف اٌىّ١خ اٌغٍّ١خ Scalarوّب ٍٟ٠
ِ ٟ٘ :ظفٛفخ راد عطش ٚؽ١ذ ٚػّٛد ٚؽ١ذ .
ٚف ٟاٌّبرالة ال فشق ثِ ٓ١ظفٛفخ ٚشؼبع ٚوّ١خ عٍّ١خ ِٓ ؽ١ش اٌجٕ١خ فىٍٙب ٌٙب ثٕ١خ
اٌّظفٛفخ ٕ٘ ٚ ,بن أٔٛاع ٌٍّظفٛفبد ِٓ ؽ١ش اٌّؾزِ : ٟ٘ ٚ ٜٛظفٛفخ األسلبَ ٔ ٚذػ٘ٛب
Numeric Arrayأ ٚثبخزظبس ِ ٚ , Matrixظفٛفخ ِؾبسف ٚ character Array
ِظفٛفخ خال٠ب ِ ٚ Cell Arrayظفٛفخ رشاو١ت ٚ Structure Arrayعٕذسط وً ٔٛع
ثبٌزفظ ٚ ً١اٌشىً (ٛ٠ ) 1 - 2ػؼ رمغ ُ١اٌــ ِٓ Arraysؽ١ش األثؼبد ِٓ ٚؽ١ش اٌّؾز. ٜٛ
- 25 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) 2 . 2إوشاء انمصفىفاخ
Matrices Creation
إن الشكل الشائع للمصفوفة في الرياضيات هو :
حيث تتكون كما قلنا من عدد من األعمدة و الصفوف ,أما في الماتالب فهناك طريقتين إلنشاء
المصفوفات :
-إن الطريقة األبسط إلنشاء مصفوفة في الماتالب هي ثبعزخذاَ اٌزؼٍّ١خ اٌزبٌ١خ ؽ١ش
أ ٚفبطٍخ ٔ ٚ ,فظً ثٓ١ Space ٔفظً ث ٓ١ػٕبطش اٌغطش اٌٛاؽذ ثفشاؽ
األعطش ثفبطٍخ ِٕمٛؽخ أ ٚثبٌغؽؽ ػٍ ٝصس ٚ , Enterإؽبؽخ اٌّظفٛفخ وبٍِخً ثمٛط
ِشثغ ِٓ اٌشىً ] [ .
-و الطريقة األخرى هي استخدام التوابع التي تساعدنا على إنشاء المصفوفات بشكل
أسرع و تكون المصفوفات الناتجة ذات صفات خاصة و من هذه التوابع ما يلي :
- 26 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
𝑑𝑛𝑒 < 𝑡𝑠𝑟𝑖𝑓 ٚ ,اٌؼىظ طؾ١ؼ ٚ , ِشاػبح أٔٗ إرا أسدٔب اٌؼذ رظبػذ٠ ٞغت أْ ٠ىْٛ
ّ٠ىٕٕب وزبثزٗ ثألٛاط دائش٠خ أ ٚثألٛاط ِشثؼخ أ ٚثذ ْٚألٛاط .
مثال : 2-2
)>> a=(7:-2:-3 >> a=1:3:12
=a =a
7 5 3 1 -1 -3 1 4 7 10
>> >>
) A = linspace ( first , last , n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ Aشؼبػ١خ ( عطش ٚاؽذ ) ػٕبطش٘ب ُِٛصػخ خط١ب ً ( أ ٞأْ
األثؼبد ث ٓ١اٌؼٕبطش ِزغب٠ٚخ ) ث ٓ١لّ١زّ٘ ٓ١ب ٚ last ٚ firstػذد ػٕبطش٘ب ٘ ,. n ٛإرا ٌُ
فغ١ؼ ٟاٌزبثغ لّ١خ . last
د ٔؼغ لّ١خ ٌــ nفغ١ؼزجش٘ب اٌّبرالة ٚ 100إرا وبٔذ n<2
مثال : 3-2
)>> a=linspace(1,9,4
=a
1.0000 3.6667 6.3333 9.0000
)>> logspace(2,4,7
= ans
* 1.0e+04
0.0100 0.0215 0.0464 0.1000 0.2154 0.4642 1.0000
>>
) = ones ( m , n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ Aوً ػٕبطش٘ب ٚاؽذ ٚ ,إرا وزجٕب onesفمؾ فئٔٗ ٠ؼ١ذ لّ١خ . 1
) A = zeros ( m , n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ Aوً ػٕبطش٘ب طفش ٚ ,إرا وزجٕب zerosفمؾ فئٔٗ ٠ؼ١ذ لّ١خ . 0
) A =eye ( m , n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ Aوً ػٕبطش٘ب طفش ِبػذا اٌمطش اٌشئ١غ ٟف ٟٙرغب, 1 ٞٚ
ٚإرا وزجٕب eyeفمؾ فئٔٗ ٠ؼ١ذ لّ١خ . 1
- 27 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
مثال : 4-2
)>> ones(1,6 )>> eye(4
= ans = ans
1 1 1 1 1 1 1 0 0 0
)>> zeros(2,3 0 1 0 0
= ans 0 0 1 0
0 0 0 0 0 0 1
0 0 0 >>
) A = rand ( m , n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ Aأثؼبد٘ب ٚ m×nرؾ ٞٛػٕبطش ػشٛائ١خ ث ٓ١اٌظفش ٚاٌٛاؽذ ,
ٌ ٚزغ١١ش اٌّغبي ٚعؼٍٗ ثٔ b ٚ a ٓ١ىزت اٌظ١غخ . r = a + (b-a).*rand(m,n) :
) A =randn ( m , n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ Aرؾ ٞٛػٕبطش ػشٛائ١خ رخؼغ ٌمبٔ ْٛاٌزٛص٠غ اٌطج١ؼ. ٟ
) A =randperm ( max
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ Aشؼبػ١خ رؾ ٞٛػٍ ِٓ max ٝايػٕبطش راد رشر١ت ػشٛائٟ
ث ٓ١اٌــ ٚ 1اٌؼذد ٚ maxإرا وبْ ٌٗ دخالْ ِضالً ). A=randperm (max,nفئٔٗ ٠ؼ١ذ
ِظفٛفخ راد ػٕبطش ث ٓ١اٌــ ٚ 1اٌــ ٚ maxػذد٘ب ٟ٘ ٚ nراد رشر١ت ػشٛائ. ٟ
مثال : 5-2
)>> rand(3,4 )>> randn(2
= ans = ans
0.9575 0.9706 0.8003 0.6715 0.7172
0.9157 -1.2075 1.6302
0.9649 0.9572 0.1419 )>> randperm(5
0.7922 = ans
0.1576 0.4854 0.4218 4 5 1 3 2
0.9595 )>> randi(5,3,2
)>> 3+5.*rand(1,3 = ans
= ans 1 2
5.1937 4.9078 6.8276 4 1
1 1
>>
- 28 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) A =magic ( m,n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ عؾش٠خ Aراد طفخ خبطخ ( ِغّٛع أ ٞعطش أ ٚأ ٞػّٛد أٚ
أ ٞلطش ِزغب. ) ٞٚ
مثال : 6-2
)>> magic(5
= ans
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>>
) A = diag ( V , k
ػٕذِب ٠ى v ْٛػجبسح ػٓ شؼبع ر n ٚػٕظش فئْ ٘زا اٌزبثغ ط ٠م َٛثئٔشبء ِظفٛفخ Aوً
ػٕبطش٘ب طفش ِبػذا اٌمطش ( ٠ؾذد ِٛلغ اٌمطش اٌجبساِزش Kفئرا وبْ K=0فغ١ى ْٛاٌمطش
سئ١غ , ٟأِب إرا وبْ K>0فغ١ى ْٛفٛق اٌمطش اٌشئ١غ , ٟأِب إرا وبْ K<0فغ١ى ْٛرؾذ اٌمطش
اٌشئ١غ ٚ , ) ٟػٕبطش ٘زا اٌمطش ٘ ٟػٕبطش اٌّظفٛفخ ٚ Vعزى ْٛاٌّظفٛفخ ِشثؼخ راد ثؼذ
| , n+|kأِب إرا وزجٕب ) a=diag(Mفئٔٗ ع١ؼ١ذ ٌٕب شؼبع ػّٛد٠ ٞؾ ٞٛػٕبطش اٌمطش اٌشئ١غٟ
ٌٍّظفٛفخ . M
انشكم : 3-2مخطط تصىرٌ نمصفىفح و انسهم َمثم انقطز انزئُسٍ حُث . k=0
إِب إرا وبْ ِ vظفٛفخ فئْ اٌزبثغ ثبٌشىً اٌغبةق ٠ؼ١ذ شؼبع ٠ؾ ٞٛػٕبطش اٌمطش ر ٚاٌشلُ ٚ k
إرا وبْ اٌزبثغ ثبٌشىً ) diag(mفئٔٗ ٠ؼ١ذ شؼبع ٠ؾ ٞٛػٕبطش اٌمطش اٌشئ١غ ٟف ٟاٌّظفٛفخ .
مثال : 7-2
)>> v=(1:3
=v )>> m=diag(a
1 2 3 =m
)>> a=diag(v,0 1
- 29 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
=a 2
1 0 0 3
0 2 0 >>
0 0 3
) X=sparse(i , j , V , m , n
٠م٘ َٛزا اٌزبثغ ثزؾذ٠ذ اٌؼٕبطش غ١ش اٌظفش٠خ ٌٍّظفٛفخ اٌّزٕبصشح ٌ ٚزىٓ , Sؽ١ش ٛ٘ : i ( :
شؼبع أعطش اٌؼٕبطش : j ٚ ,شؼبع أػّذح اٌؼٕبطش ٛ٘ : V ٚ ,شؼبع اٌؼٕبطش غ١ش اٌظفش٠خ ,
: m ٚػذد أعطش اٌّظفٛفخ اٌّزٕبصشح : n ٚ , Sػذد أػّذح ٘زٖ اٌّظفٛفخ .
) S = full(x
يقوم هذا التابع بتشكيل المصفوفة المتناثرة Sمن قائمة العناصر غير الصفرية . x
مثال : 8-2
)>> X = sparse ( [ 1 3 2 ] , [ 2 2 1 ] >> S = full(X
) , [ 6 -2 8 ] , 4 , 3 =S
=X 0 6 0
)(2,1 8 8 0 0
)(1,2 6 0 -2 0
)(3,2 -2 0 0 0
>>
)A(i,j
ؽ١ش ٛ٘ i :سلُ اٌغطش j ٚسلُ اٌؼّٛد ِ ٛ٘ ٚ .ب ُ٠ذػ ٝثبٌذٌ ً١اٌّضدٚط ,أِب اٌذٌ ً١اٌفشد ٞفٛٙ
)A(n
ؽ١ش ٛ٘ n :رشر١ت اٌؼٕظش ف ٟاٌّظفٛفخ ٠ ٚى ْٛرشر١ت اٌّظفٛفخ وّب : ٍٟ٠
انشكم : 4-2تزتُة انعىاصز فٍ انمصفىفح األعمذج مه انُسار إنً انُمُه و انعمىد مه األعهً
نألسفم .
- 30 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) colon ( :
ٚوّب ػشفٕب عبثمب ثأْ ٘زا اٌؼبًِ ٕ٠شأ ِظفٛفخ شؼبػ١خ إرا اعزخذِٕبٖ وّب v = first : last ٍٟ٠
) A(1:4,:رؼٕ ٟػٕبطش أِب ف ٟفٙشعخ اٌّظفٛفبد فئٕٔب ٔغزخذِٗ ٌٕؼٕ ٟثٗ " اٌىً " فّضالً
األعطش ِٓ األٚي إٌ ٝاٌشاثغ ٚوً األػّذح ف٘ ٟزٖ األعطش .
end
٠ؼٕ٘ ٟزا اٌؼبًِ " إٌ ٝآخش " فّضالُ ) A(endرؼٕ ٟاٌؼٕظش ف ٟآخش عطش ٚآخش ػّٛد أِب
) A(end,2:endفزؼٕ ٟػٕبطش اٌغطش األخ١ش ِٓ اٌّظفٛفخ ٚاألػّذح ِٓ اٌؼّٛد اٌضبٔ ٟإٌٝ
اٌؼّٛد األخ١ش .
مثال : 9-2
)>> m=magic(5 ) >> c=m(1:3 , :
=m =c
17 24 1 8 15 17 24 1 8 15
23 5 7 14 16 23 5 7 14 16
4 6 13 20 22 4 6 13 20 22
10 12 19 21 3 )>> d=m(3:end,1:2:end
11 18 25 2 9 =d
)>> a=m(5,1 4 13 22
=a 10 19 3
11 11 25 9
)>> b=m(20 >>
=b
2
ٕ٘ ٚبن ٔٛع ِٓ اٌفٙشعخ ُ٠ذػ ٝثبٌفٙشعخ إٌّطم١خ ؽ١ش ٔغزخذَ األشؼخ أ ٚاٌّظفٛفبد
إٌّطم١خ إٌبرغخ ػٓ اٌؼٍّ١بد إٌّطم١خ ٚاٌؼالئم١خ ٌإلشبسح إٌِ ٝظفٛفخ فشػ١خ ٚفٙشعخ
ِظفٛفخ :
مثال : 10-2
- 31 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
24 3
25 >>
ٚاٌزبثغ إٌّطم ٟاٌش١ٙش اٌزٔ ٞغزخذِٗ ف ٟاٌفٙشعخ إٌّطم١خ ٘: ٛ
) o [r , c ] = find ( M
٠ؼ١ذ ٌٕب شؼبػ ٓ١ػّٛد r ٓ١٠شؼبع األعطش c ٚشؼبع األػّذح ٚاٌٍزاْ ٠ؾذداْ ٌٕب اٌذٌ ً١اٌّضدٚط
ٌٍؼٕبطش اٌغ١ش طفش٠خ .
) o [r , c , v ] = find ( x
ّ٠ىٕٕب وزبثخ رؼج١ش ِٕطم٠ ٚ x ٟم َٛاٌزبثغ ثئػبدح شؼبػٌٍ c ٚ r ٓ١ذالٌخ ػٍ ٝاٌؼٕبطش اٌز ٟرؾمك
اٌزؼج١ش إٌّطم ٚ ٟثّٕ١ب اٌشؼبع vف ٛٙشؼبع ػّٛد٠ ٞؾذد اٌؼٕبطش اٌغ١ش طفش٠خ اٌز ٟؽظٍٕب
ػٍٙ١ب ػجش اٌزؼج١ش إٌّطم. ٟ
ٚػٓ و١ف١خ اعزخذاِٗ ثشىً ػبَ ٚاعزخذاِٗ ف ٟاٌفٙشعخ إٌّطم١خ ٔمذَ اٌّضبي اٌزبٌٟ
مثال : 11-2
- 32 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) 4 . 2خىاص انمصفىفاخ
Matrices properties
هناك مجموعة من التوابع التي تساعدنا في معرفة خواص المصفوفات مثل أبعادها و أكبر بعد
و عدد العناصر و ...إلخ ..
) t=trace ( a
ُ٠ؼ١ذ ٘زا اٌزبثغ ِغّٛع ػٕبطش اٌمطش اٌشئ١غ ٟيٌّظفٛفخ اٌّشثؼخ . a
) [ r , c ] = size ( a
ُ٠ؼ١ذ ٘زا اٌزبثغ ػذد األػّذح ٚاٌظفٛف ف ٟاٌّظفٛفخ . a
) C = size ( a , 2
ُ٠ؼ١ذ ٘زا اٌزبثغ ػذد األػّذح columnsف ٟاٌّظفٛفخ . a
) R = size ( a , 1
ُ٠ؼ١ذ ٘زا اٌزبثغ ػذد اٌظفٛف rowsف ٟاٌّظفٛفخ . a
) N = length ( a
ُ٠ؼ١ذ ٘زا اٌزبثغ أؽٛي ثؼذ ٌٍّظفٛفخ . a
) D = ndims ( a
ُ٠ؼ١ذ ٘زا اٌزبثغ ػذد أثؼبد اٌّظفٛفخ . a
) E = numel ( a
ُ٠ؼ١ذ ٘زا اٌزبثغ ػذد ػٕبطش اٌّظفٛفخ . a
) F = nnz ( a
ُ٠ؼ١ذ ٘زا اٌزبثغ ػذد اٌؼٕبطش غ١ش اٌظفش٠خ ف ٟاٌّظفٛفخ . a
مثال : 12-2
>> a = [ 4 8 0 ; 5 2 1 ; 0 7 0 ; 8 3 =r
]-1 4
=a )>> N=length(a
4 8 0 =N
5 2 1 4
0 7 0 )>> D=ndims(a
8 3 -1 =D
)>> size(a 2
= ans )>> E=numel(a
4 3 =E
)>> c=size(a,2 12
=c )>> F=nnz(a
- 33 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
3 =F
)>> r=size(a,1 9
>>
) TF = ismatrix ( a
٠م٘ َٛزا اٌزبثغ ثفؾض اٌذخً ِ ( aظفٛفخ أَ ال ) فئرا رؾممذ وبْ اٌغٛاة ٚ 1إرا ٌُ رزؾمك وبْ
اٌغٛاة . 0
) TF = isempty ( a
٠م٘ َٛزا اٌزبثغ ثفؾض اٌّظفٛفخ ( aفبسغخ أَ ال ) فئرا رؾممذ وبْ اٌغٛاة ٚ 1إرا ٌُ رزؾمك
وبْ اٌغٛاة . 0
) TF = isscalar ( a
٠م٘ َٛزا اٌزبثغ ثفؾض اٌّظفٛفخ ( aعٍّ١خ أَ ال ) فئرا رؾممذ وبْ اٌغٛاة ٚ 1إرا ٌُ رزؾمك
وبْ اٌغٛاة . 0
) TF = isvector ( a
٠م٘ َٛزا اٌزبثغ ثفؾض اٌّظفٛفخ ( aشؼبػ١خ أَ ال ) فئرا رؾممذ وبْ اٌغٛاة ٚ 1إرا ٌُ رزؾمك
وبْ اٌغٛاة . 0
) TF = iscolumn ( v
٠م٘ َٛزا اٌزبثغ ثفؾض اٌشؼبع ( Vػّٛد أَ ال ) فئرا رؾممذ وبْ اٌغٛاة ٚ 1إرا ٌُ رزؾمك وبْ
اٌغٛاة . 0
) TF = isrow ( v
٠م٘ َٛزا اٌزبثغ ثفؾض اٌشؼبع ( Vعطش أَ ال ) فئرا رؾممذ وبْ اٌغٛاة ٚ 1إرا ٌُ رزؾمك وبْ
اٌغٛاة . 0
) TF = issprase ( a
٠م٘ َٛزا اٌزبثغ ثفؾض اٌّظفٛفخ ِ ( aزٕبصشح أَ ال ) فئرا رؾممذ وبْ اٌغٛاة ٚ 1إرا ٌُ رزؾمك
وبْ اٌغٛاة . 0
مثال : 13-2
] >> a= [ 2 4 8 ; -1 0 5 ; 1 1 1 ))>> isscalar(a(3,2
=a = ans
2 4 8 1
-1 0 5 ))>> iscolumn(a(3,:
1 1 1 = ans
)>> issparse(a 0
= ans ))>> isrow(a(3,:
0 = ans
>> 1
- 34 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
مثال : 14-2
] >> a=[ 1 5 ; 5 0 >> a*b
=a = ans
1 5 2 39
5 0 10 20
] >> b=[2 4 ; 0 7 >> a/b
=b = ans
2 4 0.5000 0.4286
0 7 2.5000 -1.4286
>> a+b >> a\b
= ans = ans
3 9 0 1.4000
5 7 0.4000 0.5200
>> a-b
= ans
-1 1
5 -7
- 35 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
مثال : 15-2
]>> a=[1:4 >> a*a
=a * Error using
1 2 3 4 Inner matrix dimensions must
']>> b=[4:-1:1 agree.
=b >> b*b
4 * Error using
3 Inner matrix dimensions must
2 agree.
1 ][=)>> b(4
>> a*b =b
= ans 4
20 3
>> b*a 2
= ans >> a*b
4 8 12 16 * Error using
3 6 9 12 Inner matrix dimensions must
2 4 6 8 agree.
1 2 3 4 >> b*a
= ans
4 8 12 16
3 6 9 12
2 4 6 8
>>
مثال : 16-2
=a = ans
1 5 2 39
5 0 10 20
=b >> a.*b
2 4 = ans
0 7 2 20
>> a*b 0 0
- 36 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
اٌغّغ ٚاٌطشػ ّ٠ :ىٕٕب عّغ /ؽشػ وّ١خ عٍّ١خ ِٓ اٌّظفٛفخ ٚرٌه ثبعزخذاَ A+s -
أ. s+A ٚ
اٌؼشة ّ٠ :ىٕٕب ػشة ِظفٛفخ ثىّ١خ عٍّ١خ ؽ١ش ٠زُ ػشة اٌىّ١خ اٌغٍّ١خ ثغّ١غ -
ػٕبطش اٌّظفٛفخ ٚرٌه ثبعزخذاَ A*sأ. s*A ٚ
اٌشفغ ٌمٛح ّ٠ :ىٕٕب سفغ ِظفٛفخ ٌمٛح وّ١خ عٍّ١خ ٚرٌه ثبعزخذاَ ٠ ٚ , A^sزُ رٌه ػجش -
ػشة اٌّظفٛفخ ثٕفغٙب ثؼذد اٌىّ١خ اٌغٍّ١خ ٕ٘ ٚب ٠غت أْ رى ْٛاٌّظفٛفخ ِشثؼخ .
s\Aأ , A/s ٚؽ١ش ٠زُ اٌمغّخ ّ٠ :ىٕٕب رمغ ُ١اٌّظفٛفخ ػٍ ٝوّ١خ عٍّ١خ ثبعزخذاَ -
رمغ ُ١وً ػٕظش ِٓ ػٕبطش اٌّظفٛفخ ػٍ ٝرٍه اٌىّ١خ اٌغٍّ١خ .
مثال : 17-2
]>> A=[3 2; 5 0 >> A*4
=A = ans
3 2 12 8
5 0 20 0
>> A-2 >> A/2
= ans = ans
1 0 1.5000 1.0000
3 -2 2.5000 0
>> 3+A >> A^2
= ans = ans
6 5 19 6
8 3 15 10
] A(m , : ) = [ V
ٛ٘ V ؽ١ش اٌــ ٛ٘ mػذد أوجش ِٓ ػذد أعطش اٌّظفٛفخ ٛ٘ ٚسلُ اٌغطش اٌ ُّؼبف ٚ
شؼبع ٠ؾ ٞٛػذد ػٕبطش ٠غب ٞٚػذد أػّذح اٌّظفٛفخ . A
] A(: , n ) = [ V
ٛ٘ V ؽ١ش اٌــ ٛ٘ nػذد أوجش ِٓ ػذد أػّذح اٌّظفٛفخ ٛ٘ ٚسلُ اٌؼّٛد اٌ ُّؼبف ٚ
شؼبع ٠ؾ ٞٛػذد ػٕبطش ٠غب ٞٚػذد أعطش اٌّظفٛفخ . A
- 37 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٌٍّ Sظفٛفخ ػّٓ عطش أ ٚػّٛد ٚرٌه ثزؾذ٠ذ لّ١خ ٘زا وّب ّ٠ىٕٕب إػبفخ ػٕظش ٚاؽذ
اٌؼٕظش فمؾ :
A(m , n ) = S
ٕ٘ ٚب ٠غت أْ ٠ى ْٛأؽذ ِٓ nأ m ٚأوجش ِٓ اٌجؼذ اٌّٛافك ِٓ أثؼبد اٌّظفٛفخ .
إرا وبْ mأطغش ِٓ ػذد أعطش اٌّظفٛفخ n ٚأطغش ِٓ ػذد أػّذح اٌّظفٛفخ فغ١زُ اعزجذاي
اٌؼٕظش ٚوزٌه األِش ثبٌٕغجخ ٌٍغطش أ ٚاٌؼّٛد ٘ ٚزا ِب عٕٛػؾٗ ثبٌّضبي اٌمبدَ .
] [ = ) A(m , :
ؽ١ش اٌــ ٛ٘ mػذد أطغش أ٠ ٚغب ٞٚػذد أعطش اٌّظفٛفخ ٛ٘ ٚسلُ اٌغطش اٌّؾزٚف .
] [ = ) A(: , n
ؽ١ش اٌــ ٛ٘ nػذد أطغش أ٠ ٚغب ٞٚػذد أػّذح اٌّظفٛفخ ٛ٘ ٚسلُ اٌؼّٛد اٌّؾزٚف .
إرا وبٔذ ِ B ٚ Aظفٛفز ٓ١راد ٔفظ ػذد األعطش ٚرٌه ثبعزخذاَ :
] C=[ A , B
إرا وبٔذ ِ B ٚ Aظفٛفز ٓ١راد ٔفظ ػذد األػّذح ٚرٌه ثبعزخذاَ :
] C=[ A ; B
مثال : 18-2
)>> A=magic(3 )>> B=randi(7,4,2
=A =B
8 1 6 6 5
3 5 7 7 1
4 9 2 1 2
]>> A(:,4)=[1 2 3 7 4
=A ]>> C=[A , B
8 1 6 1 =C
- 38 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) X=inv(A
٠ؼطٕ١ب ٘زا اٌزبثغ ِمٍٛة اٌّظفٛفخ . A
) X=det(A
٠ؼطٕ١ب ٘زا اٌزبثغ ِؾذد اٌّظفٛفخ . A
' X=A
٠ؼطٕ١ب ٘زا اٌزبثغ ِٕمٛي اٌّظفٛفخ ٌ ٚ , Aىٓ إرا وبْ Aرؾ ٞٛػٕبطش ػمذ٠خ فئْ إٌّمٛي
ع١ؾِ ٞٛشافك رٍه اٌؼٕبطش ٚإلثمبء اٌؼٕبطش اٌؼمذ٠خ ػٍ ٝؽبٌٙب ٔىزت '. X=A.
) X=rank(A
٠م٘ َٛزا اٌزبثغ ثزؾذ٠ذ سرجخ اٌّظفٛفخ ٟ٘ ٚ Aسرجخ أوجش ِؾذد لّ١زٗ ال رغب ٞٚاٌظفش .
) [v,d]=eig(A
٠ؼطٕ١ب ٘زا اٌزبثغ ِظفٛفخ اٌم ُ١اٌخبطخ ِ ٟ٘ ٚ ( dظفٛفخ لطش٠خ ػٕبطش لطش٘ب اٌشئ١غٟ٘ ٟ
اٌم ُ١اٌخبطخ ) ٌٍّظفٛفخ ِ ٚ Aظفٛفخ األشؼخ اٌخبطخ . A
- 39 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
مثال : 19-2
] >> A = [ 3 5 ; 2 4 )>> n=rank(A
=A =n
3 5 2
2 4 )>> [v , d ] =eig(A
)>> X=inv(A =v
=X -0.8798 -0.8037
2.0000 -2.5000 0.4754 -0.5950
-1.0000 1.5000 =d
)>> Y=det(A 0.2984 0
=Y 0 6.7016
2 >>
'>> Z=A
=Z
3 2
5 4
- 4تغُُز شكم انمصفىفح :
) Fliplr(A
٠م٘ َٛزا اٌزبثغ ثمٍت اٌّظفٛفخ ِٓ Aاٌ١غبس ٌٍ. ٓ١ّ١
) Flipud(A
٠م٘ َٛزا اٌزبثغ ثمٍت اٌّظفٛفخ ِٓ Aاألػٌٍ ٝألعفً .
) rot90(A
٠م٘ َٛزا اٌزبثغ ثمٍت اٌّظفٛفخ 90 Aدسعخ ٌٍ١غبس .
) u=triu(A,k
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ ِضٍض١خ ػٍ٠ٛخ راد لطش ِٓ Kاٌّظفٛفخ . A
) u=triu(A,k
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ ِضٍض١خ عفٍ١ب راد لطش ِٓ Kاٌّظفٛفخ . A
) B=repmat(A,m,n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ عذ٠ذح ِٓ اٌّظفٛفخ ٟ٘ ٚ Aػجبسح ػٓ رىشاس ٌٍّظفٛفخ A
ِmشح ػٍ ٝاألعطش ِ n ٚشح ػٍ ٝاألػّذح ,وّب ّ٠ىٕٕب وزبثزٙب ثبٌشىً )]B=repmat(A,[m n
ّ٠ ٚ ,ىٕٕب ػًّ ِظفٛفخ راد صالصخ أثؼبد ٚرٌه ثىزبثخ )] . B=repmat(A,[m n p
) B=reshape(A,m,n
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ عذ٠ذح ِٓ اٌّظفٛفخ ٟ٘ ٚ Aػجبسح ػٓ ِظفٛفخ ِشىٍخ ػجش
ٔمً األػّذح راد أثؼبد عذ٠ذح mعطش n ٚػّٛد ٌ ٚ,ىٓ إرا ٌُ ٠ىٓ ػذد ػٕبطش اٌّظفٛفخ A
٠غب m*n ٞٚع١ؾذس خطأ ,وّب ّ٠ىٕٕب ػًّ ِظفٛفخ راد صالصخ أثؼبد ٚرٌه ثىزبثخ
)] . B=reshape(A,[m n p
- 40 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
مثال : 20-2
)>> m=magic(5 )>> l=tril(m,2
=m =l
17 24 1 8 15 17 24 1 0 0
23 5 7 14 16 23 5 7 14 0
4 6 13 20 22 4 6 13 20 22
10 12 19 21 3 10 12 19 21 3
11 18 25 2 9 11 18 25 2 9
)>> fliplr(m ] >> a=[1 2 ; 3 4
= ans =a
15 8 1 24 17 1 2
16 14 7 5 23 3 4
22 20 13 6 4 )>> r=repmat(a,3,2
3 21 19 12 10 =r
9 2 25 18 11 1 2 1 2
)>> flipud(m 3 4 3 4
= ans 1 2 1 2
11 18 25 2 9 3 4 3 4
10 12 19 21 3 1 2 1 2
4 6 13 20 22 3 4 3 4
23 5 7 14 16 )>> s=reshape(r,8,3
17 24 1 8 15 =s
)>> rot90(m 1 2 1
= ans 3 4 3
15 16 22 3 9 1 2 2
8 14 20 21 2 3 4 4
1 7 13 19 25 1 1 2
24 5 6 12 18 3 3 4
17 23 4 10 11 2 1 2
)>> u=triu(m 4 3 4
=u >>
17 24 1 8 15
0 5 7 14 16
0 0 13 20 22
0 0 0 21 3
0 0 0 0 9
- 41 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
-اٌّضبي األٚي :ف ٟغشفخ ِب ٛ٠عذ ِى١ف ٚإرا أسدٔب ِؼشفخ دسعخ اٌؾشاسح فٔ ٟمطخ ِب
zٚx ِٓ فشاؽ اٌغشفخ ٔؾزبط صالصخ إؽذاص١بد ؽ١ش ٔم َٛثزخض ٓ٠إؽذائ١بد اٌّؾٛسٓ٠
ِضالً فِ ٟظفٛفخ ٚاٌجؼذ اٌضبٌش ٔخضٔٗ ف ٟاٌجؼذ اٌضبٌش ٌٍّظفٛفخ . y ٛ٘ ٚ
-اٌّضبي اٌضبٔ : ٟرؾ ٞٛاٌظٛسح اٌشلّ١خ ػٍ ٝثىغالد ٚوً ثىغً ِّضً ثضالص١خ ٚ RGB
ٌزّض ً١اٌظٛسح اٌشلّ١خ ف ٟاٌّبرالة ٔؾزبط ِظفٛفخ أثؼبد٘ب اٌجؼذ األٚي ٘ ٛػذد
اٌجىغالد ف ٟؽٛي اٌظٛسح ٚاٌجؼذ اٌضبٔ ٛ٘ ٟػذد اٌجىغالد ف ٟػشع اٌظٛسح ٚ
ٔؾزبط ٌٍ 3جؼذ اٌضبٌش ٌ ٛ٘ ٚزخض ٓ٠ل RGB ُ١وّب ِ٘ٛ ٛػؼ ثبٌشىً اٌزبٌ: ٟ
مثال : 21-2
;]>> triM(:,:,1)=[2 4 6 ; 1 9 6 = )triM(:,:,2
;]>> triM(:,:,2)=[0 1 7 ; 2 8 3 0 1 7
>>triM 2 8 3
= )>>triM(:,:,1 )>> ndims(triM
2 4 6 = ans
1 9 6 3
- 42 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
وّب ّ٠ىٕٕب إٔشبء اٌّظفٛفخ صالص١خ اٌجؼذ ثبعزخذاَ أ ِٓ ٞاٌزٛاثغ اٌغب٘ضح اٌز ٟاعزخذِٕب٘ب
إلٔشبء اٌّظفٛفخ اٌؼبد٠خ ثئػبفخ لّ١خ ٌٍجؼذ اٌضبٌش ّ٠ ٚ ,ىٕٕب رطج١ك عّ١غ اٌزٛاثغ ٚاٌؼٍّ١بد
ػٍ ٝاٌّظفٛفبد صالص١خ اٌجؼذ :
مثال : 22-2
)>> r=randn(2,2,2 = )u(:,:,2
= )r(:,:,1 -2 0
1.4384 -0.7549 0 0
0.3252 1.3703 >> t=u+10
= )r(:,:,2 = )t(:,:,1
-1.7115 -0.2414 11 9
-0.1022 0.3192 10 11
)>> u=round(r = )t(:,:,2
= )u(:,:,1 8 10
1 -1 10 10
0 1 >>
وّب ػشفٕب اٌــ arrayف ٟثذا٠خ ٘زا اٌفظً فئٔٙب ِغّٛػخ ِٓ األش١بء ِشرجخ ثشىً ِٕبعت ٚ
ٔغزط١غ اإلشبسح إٌٙ١ب ثّؤشش أ ٚأوضش ٚوّب لٍٕب ثأْ اٌّظفٛفخ array ٟ٘ Matrixرؾ ٞٛأسلبَ
فئْ اٌغٍغخ array ٟ٘ Stringرؾ ٞٛأؽشف ٚأسلبَ ( اٌشلُ شىالً ١ٌ ٚظ لّ١خً ) ٚسِٛص ٚ ,
٘زا ِب ٔذػ ٖٛف ٟاٌّبرالة ثــ . character Array
) S=blank(n
٠م٘ َٛزا اٌزبثغ ثئٔشبء عٍغٍخ رؾز ٞٛػٍ ٝفشاغبد ػذد٘ب . n
) S=deblank(S
٠م٘ َٛزا اٌزبثغ ثؾزف وً اٌفشاغبد فٙٔ ٟب٠خ اٌغٍغٍخ . S
) S=strtrim(S
٠م٘ َٛزا اٌزبثغ ثؾزف وً اٌفشاغبد ف ٟثذا٠خ ٙٔ ٚب٠خ اٌغٍغٍخ . S
- 43 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) S= lower(S
٠م َٛثزؾ ً٠ٛعّ١غ األؽشف ف ٟاٌغٍغٍخ Sإٌ ٝؽبٌخ األؽشف اٌظغ١شح .
) S= upper(S
٠م َٛثزؾ ً٠ٛعّ١غ األؽشف ف ٟاٌغٍغٍخ Sإٌ ٝؽبٌخ األؽشف اٌىج١شح .
) c=char(x
ٞل٘ َٛزا اٌزبثغ ثزؾ x ً٠ٛاٌشلُ ف ٟش١فشح اٌــ ASCIإٌ ٝاٌّؾشف اٌز٠ ٞمبثٍٗ ٚ ,اٌزبثغ اٌّؼبوظ
ٌٗ ٘x=double(c) ٛ
مثال : 23-2
' >> s='hi i''m engineer ))>> isspace(s(3
=s = ans
hi i'm engineer 1
))>> s(4)=upper(s(4 '>> a='hi hello
=s =a
hi I'm engineer hi hello
)>> b=blanks(3 ) '>> b=strcat( 'hi' , ' Hello
- 44 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
=b =b
hi Hello
]>> s=[s,b )>> strcmp(a,b
=s = ans
hi I'm engineer 0
)>> numel(s )>> strcmpi(a,b
= ans = ans
19 1
)>> s=strtrim(s ; )>> A1=2 ;A2=round(pi
=s ; A3=1/eps
hi I'm engineer >> str=sprintf('%3d , %f ,
)>> numel(s )%e',A1,A2,A3
= ans = str
15 2 , 3.000000 , 4.503600e+15
))>> isletter(s(3 )'>>b=strrep(b,'ello','i
= ans =b
0 hi hi
أِب اٌــ cell Arrayفِ array ٟٙزؼذدح األثؼبد رؾز ٞٛػٍِ ٝغّٛػخ ِٓ اٌخال٠ب ٚلذ
رى٘ ْٛزٖ اٌخٍ١خ ٘ ٟعٍغٍخ أِ ٚظفٛفخ أسلبَ ,و بالنسبة لمصفوفة الخاليا فنستطيع إنشائها
بكتابة مثالً :
ػبء اٌؼًّ ٔغذ أْ ؽ١ش ٔالؽظ إٔٔب ٔغزخذَ ٕ٘ب ألٛاط اٌّغّٛػخ }{ ٚإرا ِب الؽظٕب ٔبفزح ف
سِض اٌّزغ١ش ٠ ٛ٘ ٚ {} : ٛ٘ cذي ػٍ ٝأْ ٔ ٚ , Cell Array ٟ٘ cغزخذَ ٘زٖ األلٛاط
أ٠ؼب ً ٌفٙشعخ ِظفٛفخ اٌخال٠ب وّب عٕالؽظ الؽمب ً ٚ ,ثّٕ١ب ٔغزخذَ اٌّظفٛفخ ِزؼذدح األثؼبد
ٌزخض ٓ٠عٍغٍخ ِٓ اٌّظفٛفبد راد ٔفظ اٌجؼذ فئٕٔب ٔغزط١غ ثٛاعطخ ِظفٛفخ اٌخال٠ب رخضٓ٠
عٍغٍخ ِٓ اٌّظفٛفبد راد أثؼبد ِخزٍفخ ٚ ,فّ١ب ٔ ٍٟ٠غزؼشع ثؼغ اٌزٛاثغ اٌز ٟرغبػذٔب ػٍٝ
اٌزؼبًِ ِغ ِظفٛفبد اٌخال٠ب :
) c=cell(dim
٠م٘ َٛزا اٌزبثغ ثئٔشبء ِظفٛفخ خال٠ب فبسغخ ِشثؼخ ٚثؼذ٘ب ّ٠ ٚ dimىٕٕب إػبفخ ٚرؾذ٠ذ األثؼبد
) m=cell2mat(c
٠م٘ َٛزا اٌزبثغ ثزؾِ ً٠ٛظفٛفخ اٌخال٠ب إٌِ ٝظفٛفخ أػذاد أِ ٚظفٛفخ ِؾبسف ثؾغت ِؾز٠ٛبد
٠ ٚ cشزشؽ أْ رى ْٛعّ١غ خال٠ب ٔ ِٓ cفظ إٌٛع ٚ ,اٌزبثغ اٌّؼبوظ ٘. c=mat2cell(m) ٛ
- 45 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) celldisp(c
ُ٠غزخذَ ٘زا اٌزبثغ ٌؼشع وً ِؾز٠ٛبد ِظفٛفخ اٌخال٠ب cؽ١ش ال ّ٠ىٕٕب ػشع اٌّؾز٠ٛبد
ثىزبثخ اعُ ِظفٛفخ اٌخال٠ب وّب وٕب ٔفؼً ِغ اٌّظفٛفبد اٌؼبد٠خ .
) cellplot(c
٠م٘ َٛزا اٌزبثغ اٌجغ١ؾ ثئػطبئٕب شىً رٛػ١ؾٌّ ٟؾز٠ٛبد ِظفٛفخ اٌخال٠ب .
) TF=iscell(c
٠م٘ َٛزا اٌزبثغ ثفؾض ٠ ٚ cؾذد فّ١ب إرا وبٔذ ِظفٛفخ خال٠ب أ ٚال .
مثال : 24-2
)>> c=cell(1,3 ][=}>> c{1,2
=c =c
][ ][ ][ ][2x2 double ][
)>> iscell(c ][ 3.1416] [1x2 double
= ans ))}>> max(max(c{1,1
1 = ans
;'>> a=magic(2);b=prod(a);s1='hi 4
; }>> c={ a , s1 ; pi , b }'>> c1={ a , b
)>> celldisp(c = c1
= }c{1,1 ][2x2 double] [2x1 double
1 3 )>> cell2mat(c1
4 2 = ans
= }c{2,1 1 3 4
3.1416 4 2 6
= }c{1,2 )>> cellplot(c
hi >>
= }c{2,2
4 6
- 46 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) 9 – 2مصفىفح انتزاكُة
structure array creation :
ٌ١غذ اٌّظفٛفبد ٚاألشؼخ ٘ ٟاٌطش٠مخ اٌزّ٠ ٟىٕٕب اٌّبرالة ِٓ خالٌٙب ثٛػغ اٌج١بٔبد ِغزّؼخ
ِغ ثؼؼٙب اٌجؼغ ثً ٕ٘بن ِظفٛفخ اٌخال٠ب وّب سئٕ١ب ف ٟثذا٠خ ٘زا اٌفظً ٌ ٚىٓ ِظفٛفخ
اٌخال٠ب ثبٌشغُ ِٓ أٔٙب رؾ ٞٛث١بٔبد ِٓ أٔٛاع ِخزٍفخ عالعً ٔظ١خ ٚأسلبَ فئٔٗ ال ٛ٠عذ أٞ
ساثؾ ث٘ ٓ١زٖ اٌخال٠ب ٚاٌج١بٔبد ٚ ,اٌجٕ١خ اٌز ٟعٕزؾذس ػٕٙب ف٘ ٟزا اٌمغُ ٘ ٟشجٙ١خ ثزٍه اٌزٟ
رضٚدٔب ثٙب ٌغخ اٌجشِغخ ٚ cغ١ش٘ب structure Array ٟ٘ٚأِ ٞظفٛفخ ِٓ اٌزشاو١ت ٚثّب
أٔٙب ِظفٛفخ فئٔٙب رؾ ٞٛأػّذح ٚطفٛف ٌٕ ,ذػ ٛاألػّذح ٕ٘ب ثبٌؾمٛي ٚاٌظفٛف ثبٌغغالد ٚ
ثبٌزبٌٔ ٟغذ أٔٗ رشجٗ إٌ ٝؽذ ِب ٚسلخ ػًّ ثشٔبِظ ... accel
مثال : 25-2
;) ][ >> s=struct('name' , [] , 'age' , [] , 'study' ,
ٌمذ لّذ ف ٟاٌّضبي اٌغبثك ثئٔشبء ِظفٛفخ رشاو١ت رؾ ٞٛصالصخ ؽمٛي ٘ ٟاالعُ ٚاٌؼّش ٚ
اٌذساعخ ٚرشوذ لّ١خ اٌؾمٛي فبسغخ ٌٕم َٛثٍّئٙب ف ٟاٌّضبي اٌزبٌ: ٟ
مثال : 26-2
;'>> s(1).name='ahmad' ; s(2).name='mohammad
;s(1).age=20 ; s(2).age=18
;'s(1).study='art' ; s(2).study='computer
ٔغذ ِٓ اٌّضبي اٌغبثك أٔٗ أطجؼ ٌذٕ٠ب عغٍ ( ٓ١طف ) ٓ١فِ ٟظفٛفخ اٌزشاو١ت ّ٠ ٚ , sىٓ أْ
وضُف سجم كامم مه خالل انتاتع structكما َهٍ :
نعزض محتىَاخ مصفىفح انتزاكُة وكتة تحسة ما وزَذ أن َظهز نىا :
- 47 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
: 27-2 مثال
>> s >> s(1)
s= ans =
1x2 struct array with fields: name: 'ahmad'
name age: 20
age study: 'art'
study >> s(2)
>> s.name ans =
ans = name: 'mohammad'
ahmad age: 18
ans = study: 'computer'
mohammad >> s(2).age
>> s.age ans =
ans = 18
20 >>
ans =
18
>> s.study
ans =
art
ans =
computer
ٗػؾٛ٠ ب وّب٠فخ خالٛ ِظفٚ عٍغٍخ أٚبد اٌؾمً ػّٓ شؼبع أ٠ٛػغ ِؾزٚ ّىٕٕب٠ وّب
: ٌٟاٌّضبي اٌزب
: 28-2 مثال
>> a=[s.age] >> ischar(str)
a= ans =
20 18 1
>> isvector(a) >> c={s.study}
ans = c=
1 'art' 'computer'
>> str=[s.name] >> iscell(c)
str = ans =
ahmadmohammad 1
: ت١فخ اٌزشاوٛب ِغ ِظفِٙ لذ ٔغزخذٟاثغ اٌزٛ ٔؼشع ثؼغ اٌزٍٟ٠ ّب١ فٚ
isstruct(s)
. ٟ ِٕطم0 ٚ أ1 ذ١ؼ١ عٌٟ ثبٌزبٚ الٚت أ١فخ رشاوٛ ِظفٟ٘ s ذ فّب إرا وبٔذ٠رؾذ
isfield (s,'fieldname' )
0 ٚ أ1 ذ١ؼ١ عٌٟ ثبٌزبٚ الٚ أs ت١فخ اٌزشاوٛ ؽمً ِٓ ِظفٛ٘ field ًذ فّب إرا وبْ اٌؾم٠رؾذ
. ِٟٕطم
- 48 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) rmfield (s , field
٠م٘ َٛزا اٌزبثغ ثؾزف اٌؾمً ِ ِٓ fieldظفٛفخ اٌزشاو١ت . s
مثال : 29-2
)>> names=fieldnames(s )>> cellplot(c
= names
''name
''age
''study
)>> s=orderfields(s
=s
1x2 struct array with fields:
age
name
study
)'>> s=rmfield(s,'study
=s
1x2 struct array with fields:
age
name
)>> c=struct2cell(s
= )c(:,:,1
][20
''ahmad
= )c(:,:,2 {>> ss=cell2struct(c, ''age ,
][18 )'name'} , 1
- 49 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
''mohammad = ss
1x2 struct array with fields:
age
name
>> ss.name
= ans
ahmad
= ans
mohammad
>>
****نهاية الفصل****
- 50 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
: ) تمارَه10 - 2
exercises :
: اٌّبرالةٟخ ف١ٌز وً ِٓ اٌؼجبساد اٌزب١ ٔبرظ رٕفٛ٘ ِب- 1
a) zeros*ones
b) A=[3:7]'*[1:4]
c) I=[65:68]; H=char(I)
d) d=5; d*(ones(2,3))
e) r=4+ 6.* rand(1,10)
>> zeros*ones
ans =
0
>> A=[3:7]'*[1:4]
A=
3 6 9 12
4 8 12 16
5 10 15 20
6 12 18 24
7 14 21 28
>> I=[65:68];H=char(I)
H=
ABCD
>> d=5;d*(ones(2,3))
ans =
5 5 5
5 5 5
>> r=4+6.*rand(1,10)
r=
7.9344 4.2143 9.0948 9.6040 8.0724 8.5464 8.4588
6.3534 7.9329 5.0271
>>
: ٕب٠ْ ٌذٛى٠ ػٕذِب- 2
>> m=magic(3)
m=
8 1 6
3 5 7
4 9 2
>> A=[1 2 ; 3 4 ]
A=
1 2
3 4
- 51 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
- 52 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
4 0 2
2 1 1
>> m(4,:)=sum(m)
m=
3 1 8
4 0 2
2 1 1
9 2 11
>> m(:,4)=min(m,[],2)
m=
3 1 8 1
4 0 2 0
2 1 1 1
9 2 11 2
>> m(5,5)=max(max(m))
m=
3 1 8 1 0
4 0 2 0 0
2 1 1 1 0
9 2 11 2 0
0 0 0 0 11
>> m(:,1)=5*ones(5,1)
m=
5 1 8 1 0
5 0 2 0 0
5 1 1 1 0
5 2 11 2 0
5 0 0 0 11
>> n=m+magic(5)
n=
22 25 9 9 15
28 5 9 14 16
9 7 14 21 22
15 14 30 23 3
16 18 25 2 20
>> fliplr(n)
ans =
15 9 9 25 22
16 14 9 5 28
22 21 14 7 9
3 23 30 14 15
20 2 25 18 16
>>
- 53 -
الفصل الثاني الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ثــٟٙ رٕزٚ 33 ِؾشفب ً ٌٍطجبػخ رجذأ ثــ95 ِٓ ْٛ رزىASCI فشح اٌــ١ إرا ػٍّذ ثأْ ش- 4
. ً ب٠ عذ ػششٚ ً ب٠ب ػششٍٙمبث٠ ِبASCI فشح اٌــ١الً ثّؾبسف شٚ فأؽجغ عذ127
>> v1=33:127;
>> v2=dec2bin(v1);
>> v3=char(v1);
>> for i=1:95
disp(sprintf('%3d %s %c',v1(i),v2(i,:),v3(i)))
end
.. B راجع الملحق
: ٌٟي اٌزبٚ أدخً اٌغذٚ student ت١فخ اٌزشاوٛ أٔشئ ِظف- 5
- 54 -
انفصم
3
انزيبضيبت في انمبتالة
Mathematics at
MatLab
أهداف هذا الفصل :
و هناك بعض التوابع المفٌدة هنا فً هذا المجال و التً ال بد من التعرف علٌها :
) sqrt(a
٠ؼ١ذ اٌجزس اٌزشث١ؼٌٍ ٟؼذد . a
) nthroot(a,n
٠ؼ١ذ اٌجزس ِٓ اٌّشرجخ ٌٍ nؼذد . a
) Sign ( x
إٔٗ ص١ؼ١ذ 0إرا وبْ −1 ٚ , 𝑥 = 0إرا وبْ 𝑥 < 0
٠ضزخذَ ٘زا اٌزبثغ ٌّؼشفخ إشبسح اٌؼذد xف
1 ٚ ,إرا وبْ . 𝑥 > 0
) Abs ( x
ُ٠ضزخذَ ٘زا اٌزبثغ ٌّؼشفخ اٌمّ١خ اٌ ُّطٍمخ ٌٍؼذد , xأ. |𝑥| ٞ
) Exp ( x
ُ٠ضزخذَ ٘زا اٌزبثغ إل٠جبد اٌؼذد إٌ١جشِ ٞشفٛػب ً ٌٍمٛح , xأ. 𝑒 𝑥 ٞ
) Log ( x
ُ٠ضزخذَ ٘زا اٌزبثغ إل٠جبد اٌٍٛغبس٠زُ اٌطج١ؼٌٍ ٟؼذد , xأ. log 𝑥 ٞ
) Log10 ( x
ُ٠ضزخذَ ٘زا اٌزبثغ إل٠جبد اٌٍٛغبس٠زُ ر ٚاألصبس ٌٍ 10ؼذد , xأ. log10 𝑥 ٞ
- 56 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) Log2 ( x
ُ٠ضزخذَ ٘زا اٌزبثغ إل٠جبد اٌٍٛغبس٠زُ ر ٚاألصبس ٌٍ 2ؼذد , xأ. log 2 𝑥 ٞ
مثبل : 1-3
>> a=3+6 )>> abs(a
=a = ans
9 9
>> b=6^3 )>> exp(c
=b = ans
216 1.0966e+03
>> c=56/8 )>> log(ans
=c = ans
7 7
)>> sqrt(b )>> log10(200
= ans = ans
14.6969 2.3010
)>> nthroot(a,3 )>> log2(5
= ans = ans
2.0801 2.3219
)>> sign(c )>> rem(b,c
= ans = ans
1 6
>>
) 2 . 3اإلحصبء :
Statistics :
) prod( A
ُ٠ؼ١ذ ٘زا اٌزبثغ – إرا وبْ اٌذخً شؼبع – ػٕظش ٚح١ذ ٘ ٛجذاء ػٕبطش اٌشؼبع ,أِب إرا وبْ
اٌذخً ِظفٛفخ فإٔٗ ٠ؼ١ذ شؼبع صطشٔ ٌٗ ٞفش ػذد األػّذح ٚوً ػٕظش ف٘ ٟزا اٌشؼبع ٘ٛ
ٚإرا أسدٔب أْ ٠حذس اٌجذاء ػٍ ٝاألصطش فإٕٔب ٔىزت جذاء اٌؼٕبطش ف ٟاٌؼّٛد اٌّٛافك
) ٚ cumprod(A,2ف٘ ٟزٖ اٌحبٌخ ٠ى ْٛإٌبرج شؼبع ػّٛدٔ ٌٗ ٞفش ػذد األصطش.
- 57 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
- 58 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
مثبل : 2-3
;] >> a=[4 9 2 8 2 0 1 8 6 2 )>> m=magic(3
)>> mean(a =m
= ans 8 1 6
4.2000 3 5 7
)>> median(a 4 9 2
= ans )>> sum(m
3 = ans
)>> mode(a 15 15 15
= ans )>> cumsum(m
2 = ans
)>> var(a 8 1 6
= ans 11 6 13
10.8444 15 15 15
)>> std(a )>> prod(m,2
= ans = ans
3.2931 48
>> ans^2 105
= ans 72
10.8444 )>> cumprod(m,2
>> = ans
8 8 48
3 15 105
4 36 72
)>> max(m
= ans
8 9 7
))>> min(min(m,2
= ans
2 1 2
>>
- 59 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) Real ( z
٘زا اٌزبثغ ُ٠ؼطٕ١ب اٌمضُ اٌحم١م ِٓ ٟاٌؼذد اٌّشوت . Z
) Imag ( z
٘زا اٌزبثغ ُ٠ؼطٕ١ب اٌمضُ اٌخ١بٌ ِٓ ٟاٌؼذد اٌّشوت . Z
) Angel ( Z
Zثبٌشىً اٌمطج ٟأِ ٞب ُ٠ىبفئ ٘زا اٌزبثغ ٠ؼطٕ١ب اٌزا٠ٚخ اٌز ٟرّىٕٕب ِٓ رّض ً١اٌؼذد اٌّشوت
𝑥
. tan−1
𝑦
) abs(z
٘زا اٌزبثغ ٠ؼطٕ١ب ِطبي اٌؼذد اٌؼمذ ٚ Z ٞإرا وبْ Zػذ حم١م ٟفإْ اٌزبثغ ص١ؼ١ذ اٌمّ١خ اٌّطٍمخ ٌــ
.Z
) Conj ( Z
٘زا اٌزبثغ ٠ؼطٕ١ب اٌؼذد اٌّشافك ٌٍؼذد اٌّشوت . Z
) TF=isreal ( Z
٠ؼطٕ١ب ٘زا اٌزبثغ ٚاحذ ِٕطم ٟإٌ٠ ٌُ ٝىٓ اٌذخً ػذد ػمذ ٚ ٞطفش ِٕطم ٟإرا وبْ اٌذخً ػذد
ػمذ. ٞ
مثبل : 3-3
)>> z=complex(3,-2 )>> abs(z
=z = ans
3.0000 - 2.0000i 3.6056
)>> a=real(z )>> angle(z
=a = ans
3 -0.5880
)>> b=imag(z )>> isreal(z
=b = ans
-2 0
- 60 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) 4 . 3انمثهثبت :
triangles
ػٕذِب رزؼبًِ ِغ اٌش٠بض١بد الثذ ٌه أْ رزؼبًِ ِغ اٌّضٍضبد ٕ٘ ٚب ف٘ ٟزا اٌمضُ صٕضشد اٌزٛاثغ
اٌّضٍض١خ ف ٟاٌّبرالة ٚطش٠مخ اصزخذاِٙب :
- 61 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) deg2rad( var
ُ٠ضزخذَ ٘زا اٌزبثغ ٌزح ِٓ Var ً٠ٛاٌذسجبد إٌ ٝاٌشاد٠بْ .
) rad2deg( var
ُ٠ضزخذَ ٘زا اٌزبثغ ٌزح ِٓ Var ً٠ٛاٌشاد٠بْ إٌ ٝاٌذسجبد .
مثبل : 4-3
>> theta = 30 )>> sin(phi
= theta = ans
30 0.5000
)>> phi=deg2rad(theta )>> asind(ans
= phi = ans
0.5236 30.0000
>>
) TF = isprime(x
٠ؼ١ذ 1إرا وبْ اٌؼذد xأ١ٌٚب ً 0 ٚإرا وبْ اٌؼذد xغ١ش أ ٚ , ٌٟٚإرا وبْ ِ xظفٛفخ فبٌجٛاة ٘ٛ
ِظفٛفخ ِىبفئخ رح ٞٛأطفبساً ٚ ٚاحذاد ٚرذي ػٍ ٝأْ اٌؼٕبطش أ١ٌٚخ أ ٚال .
) Rats ( x
٠حٛي اٌؼذد xإٌ ٝػذد ػبد ( ٞثضظ ِ ٚمبَ ) .
) Gcd( x , y
٠م٘ َٛزا اٌزبثغ ثإ٠جبد اٌمبصُ اٌّشزشن األػظُ ٌٍؼذد ٚ Y ٚ X ٓ٠إرا وبٔزب ِ Y ٚ Xظفٛفزٓ١
ف١جت أْ رىٔٛب ِزضب٠ٚز ٟاٌجؼذ .
- 62 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) Lcm ( x , y
ٚ Y ٚ Xإرا وبٔزب Y ٚ X ٠م٘ َٛزا اٌزبثغ ثإ٠جبد اٌ ُّضبػف اٌّشزشن األطغش ٌٍؼذدٓ٠
ِظفٛفز ٓ١ف١جت أْ رىٔٛب ِزضب٠ٚز ٟاٌجؼذ .
مثبل : 5-3
)>> factorial(5 >> 5/2
= ans = ans
120 2.5000
)>> m=magic(2 )>> rats(ans
=m = ans
1 3 5/2
4 2 )>> gcd(4,9
)>> factorial(m = ans
= ans 1
1 6 ))>> lcm(m,ones(2
24 2 = ans
)>> primes(12 1 3
= ans 4 2
2 3 5 7 11 >>
)>> isprime(ans
= ans
1 1 1 1 1
- 63 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٌمكننا تمثٌل كثٌرات الحدود فً الماتالب بطرٌقتٌن األولى عن طرٌق مصفوفة شعاعٌة تحوي
ثوابت كثٌر الحدود ,و الثانٌة هً إدخاله بشكل رمزي .
لنقوم بإدخال كثٌر الحدود التالً 𝑓 𝑥 = 3𝑥 3 + 4𝑥 − 2و تمثٌله عبر الماتالب نكتب :
;]>>f=[ 3 4 -2
و بعد أن أدخلنا كثٌر الحدود إلى الماتالب البد من التعرف على بعض التوابع التً تساعدنا فً
العملٌات على كثٌر الحدود و التعامل معه
) X=roots( P
٠م٘ َٛزا اٌزبثغ ثإ٠جبد جزٚس وض١ش اٌحذٚد Pاٌ ُّؼشف وشؼبع صطش. ٞ
) Poly ( x
٠م٘ َٛزا اٌزبثغ ثإ٠جبد وض١ش اٌحذٚد اٌز ٞجزٚسٖ ( حٍ. X ٟ٘ ) ٌٗٛ
) y = polyval(p,x
٠م٘ َٛزا اٌزبثغ ثإ٠جبد لّ١خ وض١ش اٌحذٚد Pػٕذ لّ١خ ِحذدح xأ ٚشؼبع ِٓ اٌم ٚ , ُ١إرا وبٔذ x
ِظفٛفخ فإٔٗ ٛ٠جذ لّ١خ وض١ش اٌحذٚد ػٕذ جّ١غ ػٕبطش اٌّظفٛفخ فٕىزت ). polyvalm(p,x
) w = conv(u,v
٠م٘ َٛزا اٌزبثغ ثإ٠جبد لّ١خ جذاء وض١ش ٞاٌحذٚد . v ٚ u
) k = polyder(p
٠م٘ َٛزا اٌزبثغ ثإ٠جبد ِشزك وض١ش اٌحذٚد ٠ ٚ , Pؼ١ذ شؼبع صطشٞ ٞح ٞٛصٛاثذ وض١ش اٌحذٚد
إٌبرج .
) k = polyder( a , b
٠ ٚ , b ٚ aؼ١ذ شؼبع صطشٞ ٞح ٞٛصٛاثذ ٠م٘ َٛزا اٌزبثغ ثإ٠جبد ِشزك جذاء وض١ش ٞاٌحذٚد
وض١ش اٌحذٚد إٌبرج .
- 64 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) [ q , d ] = polyder( a , b
٠م٘ َٛزا اٌزبثغ ثإ٠جبد ِشزك لضّخ وض١ش ٞاٌحذٚد ٠ ٚ , b ٚ aؼ١ذ شؼبػ ٓ١صطش٠ q ٓ١٠حٞٛ
أِضبي وض١ش حذٚد اٌجضظ ٠ d ٚح ٞٛأِضبي وض١ش حذٚد اٌّمبَ
مثبل : 6-3
;]>> a=[4 4 1 )>> polyint(b
>> syms x = ans
)>> b=sym2poly(2*x - 3 1 -3 0
=b )>> polyder(a
2 -3 = ans
)>> roots(a 8 4
= ans )]>> polyval(a,[2 6
-0.5000 = ans
-0.5000 25 169
)poly(ans )>> [r , p , k ] = residue(b,a
= ans =r
1.0000 1.0000 0.2500 0.5000
>> 4*ans -1.0000
= ans =p
4 4 1 -0.5000
)>> conv(a,b -0.5000
= ans =k
8 -4 -10 -3 ][
)>> [q , r ]=deconv(a,b )>> [x,y] = residue(r,p,k
- 65 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
=q =x
2 5 0.5000 -0.7500
=r =y
0 0 16 1.0000 1.0000 0.2500
>>
مثبل : 7-3
;]>> x=[1:10
;]>> y=[2 4 6 10 20 34 50 69 94 130
)'*>> plot(x,y,'r
>> hold on
;)>> p=polyfit(x,y,5
;)>> f=poly2sym(p
)] >> ezplot(f , [ 1 ,10
توجد طرٌقة أخرى فً الماتالب لتمثٌل التوابع ككثٌرات الحدود و غٌرها و إجراء العملٌات
علٌها .و لنقوم بتعرٌف تابع فً الماتالب نعرف متغٌرات هذا التابع أوالً و ذلك باستخدام
التعلٌمة :
- 66 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٚثؼذ إدخبي اٌزبثغ ال ثذ ِٓ اٌزؼشف ػٍ ٝاٌؼٍّ١بد اٌزّ٠ ٟىٕٕب رطج١مٙب ػٍ ٚ ٗ١اٌزٛاثغ اٌزٟ
رضبػذٔب ف ٟرٌه :
االشزمبق :
اٌزىبًِ :
إٌٙب٠بد :
) solve ( eq , x
٠م٘ َٛزا اٌزبثغ ثحً اٌّؼبدٌخ eqثبٌٕضجخ ٌٍّزحٛي . x
) solve(eq
٠م٘ َٛزا اٌزبثغ ثحً اٌّؼبدٌخ اٌزفبضٍخ اٌؼبد٠خ اٌّّضٍخ ثبٌّؼبدٌخ eqح١ش ٔجٕ ٟاٌّؼبدٌخ اٌزفبضٍ١خ
وّب : ٍٟ٠
- 67 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
مثبل : 8-3
>> syms x y z (>>r=solve x+y-z==2 ,
)>> f1=x^4+x^3+sin(x 2*x+7*y+2*z==3 , x+3*y-z==1, x
= f1 ),y,z
sin(x) + x^3 + x^4 =r
)>> diff( f1 , x , 4 ]x: [1x1 sym
= ans ]y: [1x1 sym
sin(x) + 24 ]z: [1x1 sym
)>> f2= exp(x)+x*log(x >> r.x
= f2 = ans
)exp(x) + x*log(x 23/8
)>> int(f2,x , 1 , 2 >> r.y
= ans = ans
exp(2) - exp(1) + log(4) - 3/4 -1/2
>> f3=sin(x)/x >> r.z
= f3 = ans
sin(x)/x 3/8
)>> limit(f3,x,inf >>
= ans
0
)>> solve(x^3+x^2+x+1,x
= ans
-1
i
-i
ٔضزط١غ اٌزح ً٠ٛث ٓ١وض١ش اٌحذٚد ػٍ ٝشىً ِؼبِالد ٚػٍ ٝشىً سِز ِٓ ٞخالي اٌزبثؼ. ٓ١
) Poly2sym ( x
٠م٘ َٛزا اٌزبثغ ثزح ً٠ٛوض١ش اٌحذٚد اٌز ٞصٛاثزٗ ِؼطبح ثبٌشؼبع Xإٌ ٝاٌشىً اٌشِز ٚ ٞاٌّزغ١ش
االفزشاض ٚ X ٛ٘ ٟإرا أسدٔب رغ١١ش اٌّزغ١ش إٌِ C ٝضالً ٔىزت ) . poly2sym(f , c
) Sym2poly ( x
٠م٘ َٛزا اٌزبثغ ثزح ً٠ٛوض١ش اٌحذٚد اٌّؼط ٝثشىً سِز ٞف X ٟإٌ ٝشؼبع ٠ح ٞٛصٛاثذ وض١ش
اٌحذٚد ٘زا .
- 68 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
Operator Operation
> أكبر
=> أكبر أو ٌساوي
< أصغر
=< أصغر أو ٌساوي
== ٌساوي
=! ال ٌساوي
انجدول : 2-3رمىس انعمهيبت انعالئقية
Operator Operation
& And
| Or
~ Not
انجدول : 3-3انعمهيبت انمنطقية في انمبتالة
ٚف ٟاٌّبرالة ٔؼزجش أْ وً لّ١خ ػذد٠خ ِغب٠شح ٌٍظفش ٚرضبٚ ٞٚاحذ ِٕطمٚ ) true ( ٟ
وً لّخ ػذد٠خ طفش٠خ رضب ٞٚطفش ِٕطم ِٓ ٚ ) false ( ٟاٌّ ُٙلجً اٌجذء ثزّبس ٚ ٓ٠األِضٍخ
ِؼشفخ أ٠ٌٛٚخ اٌؼٍّ١بد وىً ( اٌحضبث١خ ٚاٌؼالئم١خ ٚإٌّطم١خ ) ٘ ٚزا ِب صٛ١ضحٗ ٌٕب اٌجذٚي (
) 4-3
Priority Operation
1 ) (
2 '^ , .^ , ' , .
3 ~
4 \* , / , \ , .* , ./ , .
5 + , -
6 :
7 =~ < , > , >= , <= , == ,
8 &
9 |
انجدول : 4-3أفضهية تنفيذ انعمهيبت في انمبتالة
مثبل : 9-3
)>> 3+(2^4)<=32/2&3+2==floor(11/2
= ans
0
>>
كما ٌمكننا القٌام بالعملٌات المنطقٌة و العالئقٌة بٌن مصفوفة و قٌمة سلمٌة حٌث تتم
العملٌة بٌن القٌمة السلمٌة و كل عنصر من عناصر المصفوفة و الناتج هو مصفوفة منطقٌة ,أو
شعاع و قٌمة سلمٌة حٌث تتم العملٌة بٌن القٌمة السلمٌة و كل عنصر من عناصر الشعاع و
- 69 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
الناتج هو شعاع منطقً ,أو بٌن مصفوفتٌن بشرط أن ٌكونا بنفس األبعاد حٌث تتم العملٌة بٌن
كل العناصر المتقابلة من المصفوفتٌن و الناتج هو مصفوفة منطقٌة .
مثبل : 10-3
= >> m=sparse([1 3 2 3 5] , [ 3 3 1 ans
;) 2 5] , [ 4 9 -2 11 -21], 5 , 5 0 0 1 0 0
)>> s=full(m 1 0 0 0 0
=s 0 1 1 0 0
0 0 4 0 0 0 0 0 0 0
-2 0 0 0 0 0 0 0 0 1
0 11 9 0 0 ;] >> a=[3 9 0; 0 0 -1 ; 3 8 1
0 0 0 0 0 ;] >> b=[4 0 5; 0 1 0 ; -9 2 0
0 0 0 0 -21 >> a|b
>> 0>s = ans
= ans 1 1 1
0 0 0 0 0 0 1 1
1 0 0 0 0 1 1 1
0 0 0 0 0 ;] >> v=[ 4 6 0 0 1
0 0 0 0 0 >> v>=1
0 0 0 0 1 = ans
>> 1&s 1 1 0 0 1
>>
ٚثبإلضبفخ إٌ ٝجّ١غ اٌزٛاثغ اٌز ٟاصزؼشضٕب٘ب ف ٟاٌمضُ ٚ 4.2اٌز ٟرجذأ ثــ ٕ٘ isبن اٌؼذ٠ذ ِٓ
اٌزٛاثغ إٌّطم١خ :
) logical ( X
٠م٘ َٛزا اٌزبثغ ثزحِ – X ً٠ٛظفٛفخ أ ٚشؼبع أ ٚلّ١خ صٍّ١خ – ِٓ اٌمّ١خ اٌؼذد٠خ إٌ ٝلّ١خ
ِٕطم١خ 1إرا وبْ ػٕظش /ػٕبطش غ١ش طفش٠خ أ 0 ٚإرا وبْ ػٕظش /أ ٚػٕبطش طفش٠خ .
) islogical ( X
٠م٘ َٛزا اٌزبثغ ثفحض ِ – Xظفٛفخ أ ٚشؼبع أ ٚلّ١خ صٍّ١خ – فّ١ب إرا وبٔذ ِٕطم١خ ص١ؼ١ذ 1
ِٕطم ٟأِ ٚب ػذا رٌه ص١ؼ١ذ ِٕ 0طم. ٟ
) All ( M
٠حذد ٌٕب ٘زا اٌزبثغ فّ١ب إرا وبْ وً ػٕبطش اٌّظفٛفخ ٟ٘ Mغ١ش طفش٠خ ( ٚ ) trueح١ش ٠مَٛ
ثفحض وً ػّٛد ثّفشدٖ ٠ ٚؼ١ذ إٌبرج ػٍ ٝشىً شؼبع ِٕطم ٟصطش ٞوً ػٕظش ف٘ ٟزا
اٌشؼبع ٘ٔ ٛبرج فحض اٌؼّٛد اٌّٛافك ٚ ,إرا أسدٔب أْ ٠زُ اٌفحض ػٍ ٝاألصطش ٔىزت all(M
) , ,2أِب إرا وبٔذ Mشؼبع فإٔٗ 1إِٔ 0 ٚطم٠ ٟحذد فّ١ب إرا وبْ وً ػٕبطش اٌشؼبع غ١ش
طفش. ٞ
- 70 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) Any ( M
٠حذد ٌٕب ٘زا اٌزبثغ فّ١ب إرا وبْ أحذ ػٕبطش اٌّظفٛفخ ٟ٘ Mغ١ش طفش٠خ ( ٚ ) trueح١ش
٠م َٛثفحض وً ػّٛد ثّفشدٖ ٠ ٚؼ١ذ إٌبرج ػٍ ٝشىً شؼبع ِٕطم ٟصطش ٞوً ػٕظش ف٘ ٟزا
اٌشؼبع ٘ٔ ٛبرج فحض اٌؼّٛد اٌّٛافك ٚ ,إرا أسدٔب أْ ٠زُ اٌفحض ػٍ ٝاألصطش ٔىزت all(M
) , ,2أِب إرا وبٔذ Mشؼبع فإٔٗ 1إِٔ 0 ٚطم٠ ٟحذد فّ١ب إرا وبْ أحذ ػٕبطش اٌشؼبع غ١ش
طفش. ٞ
مثبل : 11-3
] >> m=[2 0 4 ; 3 0 0 ; 1 6 3 )>> islogical(m
=m = ans
2 0 4 0
3 0 0 )>> logical(m
1 6 3 = ans
)>> all(m,2 1 0 1
= ans 1 0 0
0 1 1 1
0 >>
1
))>> any(any(m
= ans
1
Islogical
) x=dec2bin ( y
ٞل٘ َٛزا اٌزبثغ ثزح ً٠ٛاٌؼذد ِٓ إٌظبَ اٌؼشش ٞإٌ ٝإٌظبَ اٌضٕبئ ٚ , ٟاٌزبثغ اٌز٠ ٞم َٛثبٌّّٙخ
اٌؼىض١خ ( اٌزح ِٓ ً٠ٛإٌظبَ اٌضٕبئ ٟإٌ ٝإٌظبَ اٌؼشش. y=bin2dec(x) ٛ٘ ) ٞ
) x=dec2hex ( y
ٞل٘ َٛزا اٌزبثغ ثزح ً٠ٛاٌؼذد ِٓ إٌظبَ اٌؼشش ٞإٌ ٝإٌظبَ اٌضذ ػشش ٚ , ٞاٌزبثغ اٌز٠ ٞمَٛ
ثبٌّّٙخ اٌؼىض١خ ( اٌزح ِٓ ً٠ٛإٌظبَ اٌضذ ػشش ٞإٌ ٝإٌظبَ اٌؼششy=hex2dec(x) ٛ٘ ) ٞ
****نهاية الفصل****
- 71 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) 9 - 3تمبرين :
exercises :
ِ - 1ب ٘ٔ ٛبرج رٕف١ز ِب ٍٟ٠ف ٟاٌّبرالة :
= ans
0
= ans
1111
=r
3
=p
-2
=k
1 0
= ans
B
= ans
1
= ans
1
= ans
-1
= ans
1
- 2أطجغ جذٚالً ( ِظفٛفخ ) ٠ح ٞٛف ٟاٌؼّٛد األٚي اٌزٚا٠ب ثبٌذسجبد ِٓ 00حزٚ 3600 ٝ
ثخطٛح ٚ 150اٌؼّٛد اٌضبٔٔ ٟفش ل ُ١اٌزٚا٠ب ثبٌشاد٠بْ ,اٌؼّٛد ٌضبٌش ٠ح ٞٛج١ت
اٌزا٠ٚخ اٌّٛافمخ ٚ ,اٌؼّٛد اٌشاثغ ٠ح ٞٛرج١ت اٌزا٠ٚخ ٚاٌؼّٛد اٌخبِش ٠ح ٞٛظً
اٌزا٠ٚخ اٌّٛافمخ .
;']>> v1=[0:30:360
;)>> v2=deg2rad(v1
;)>> v3=sin(v2
;)>> v4=cosd(v1
;]>> m=[v1 v2 v3 v4
- 72 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
(c) (𝑒 𝑥 . cos 𝑥 ) 𝑑𝑥
4 2
(d) 0
(𝑥 + sin 𝑥 + 2) 𝑑𝑥
𝑑 𝑥+3
(e)
𝑑𝑥 𝑥 2 +𝑥+4
(f) 𝑓 4 ; 𝑓 𝑥 = 𝑥 3 + 𝑥 − 1
>> syms x
>> limit(sin(x)/x , x , 0)
ans =
1
>> limit(((x^2)*exp(-x)),x,inf)
ans =
0
>> int(exp(x)*cos(x))
ans =
(exp(x)*(cos(x) + sin(x)))/2
>> int(x^2+sin(x)+2,0, 4)
ans =
- 73 -
الفصل األول الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
91/3 - cos(4)
>> polyder([1 3],[1 1 4])
ans =
3 8 7
>> poly2sym(ans)
ans =
3*x^2 + 8*x + 7
>> polyval([1 0 1 -1],4)
ans =
67
>>
- 74 -
انفصم
4
انرسىياخ
Graphics
أهداف هذا الفصل :
) 1 . 4يقديح :
Introduction
ها نحن نتقدم فً دراستنا للماتالب و فً نهاٌة هذا الفصل سنكون قادرٌن على تمثٌل البٌانات و
رسم التوابع فً الماتالب حٌث ٌتمٌز الماتالب برسم التوابع المعقدة التً ٌصعب رسمها بالٌد و
ٌمكنه رسمها بعدة طرق و بعدة أشكال منها الرسم ثنائً البعد و ثالثً البعد .
) 2 . 4انتاتع : Plot
Plot function
يثال : 1-4
]>> a=[1 3 2 4
=a
1 3 2 4
)>> plot(a
>>
- 76 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
د١ث ٔالدع ِٓ اٌّثاي اٌغاتك أْ أٚي ٔمطح ف ٟإٌّذٕ ٟ٘ ٟإٌمطح ( ) 1 , 1أٚي لغُ ٘1 ٛ
أ ٞاٌؼٕظش األٚي ف ٟاٌشؼاع ٚاٌمغُ اٌثأ 1 ٛ٘ ٟأ ٞأٚي ػٕظش ف ٟاٌشؼاع لّ١رٗ ٚ , 1إٌمطح
اٌثأ١ح ٘ ) 3 , 2 ( ٟأٚي لغُ ٘ 2 ٛأ ٞاٌؼٕظش اٌثأ ٟف ٟاٌشؼاع ٚاٌمغُ اٌثأ 3 ٛ٘ ٟأ ٞثأٟ
ػٕظش ف ٟاٌشؼاع لّ١رٗ ٘ ٚ , 3ىزا ...
يثال : 2-4
]>> m=[2 6 ; 4 1 ; 5 7
=m
2 6
4 1
5 7
)>> plot(m
>>
فف ٟاٌّثاي اٌغاتك ٔالدع أْ اٌخؾ األصسق اٌزّ٠ ٞثً اٌؼّٛد األٚي ّ٠ش ِٓ إٌماؽ ( ( ٚ ) 2 , 1
)5,3(ٚ)4 ,2
) plot ( v1 , v2
٠م َٛاٌراتغ ٕ٘ا تشعُ اٌشؼاع v1تإٌغثح ٌٍشؼاع v2د١ث ٠ىٔ ْٛماؽٗ لغُ ِٓ اٌشؼاع األٚي ٚ
لغُ ِٓ اٌشؼاع اٌثأ. ٟ
- 77 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
يثال : 3-4
;]>> t=[0:0.0001:2*pi
;)>> s=sin(t
)>> plot(t,s
>>
ّ٠ىٕٕا ذغ١ش ٌ ْٛاٌخؾ اٌز٠ ٞشعّٗ اٌراتغ ٚ plotرٌه ػث١ش وراتح :
Symbol Color
Y Yellow
M Magenta
- 78 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
C Cyan
R Red
G Green
P Blue
W White
K Black
انجدول : 1-4يثيٍ ريس األنىاٌ ان ًُستخديح في رسى انخطىط انثياَيح .
و ّ٠ىٕٕا ذغ١ش إٌّؾ األعاع ٟاٌز٠ ٞغرخذِٗ اٌّاذالب ٌشعُ اٌخؾ اٌث١أ ٛ٘ ٚ ٟاٌخؾ اٌّرظً "
ــــ " ّ٠ ٚىٕٕا اعرخذاَ اٌجذٚي اٌراٌٌ ٟرٛػ١خ إٌ ٝأّٔ ٞؾ ّ٠ىٕٕا ذغ١شٖ :
Symbol Marker
. ●
O ◦
X ͯ
+ +
* *
S □
D ◊
V
^
<
>
P
H
انجدول : 3-4يثيٍ ريىز َقاط انرسى انًستخديح في رسى انًُحُياخ .
- 79 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٔالدع أْ اٌشعِٛاخ اٌر ٟلّٕا تٙا ِثّٙح ٚال ذؼط ٟأ٠ح ِؼٍِٛاخ تذ ْٚذغّ١ح ٌٍّذاٚس ٚ
اٌشعّح تشىً ػاَ ٌٍ ٚم١اَ تزٌه ٔغرخذَ اٌرؼٍّ١اخ اٌراٌ١ح :
- 80 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٌرٛػ١خ ِؼاٌُ اٌشعُ ٚ ٚػغ شثىح ِٕمطح خٍف اٌشعُ ٔغرخذَ اٌرؼٍّ١ح اٌراٌ١ح :
ٔذراج أد١أا ً ٌشعُ أوثش ِٓ خؾ ت١أ ٟفٔ ٟفظ اٌشىً ٚرٌه ٌٙذف اٌّماسٔح ت ُٕٙ١أٌ ٚغ١شٖ ٚ
ّ٠ىٕٕا أجاص رٌه تطش٠مر: ٓ١
يثال : 5-4
;]>> t=[0:0.001:2*pi
;)>> x1=sin(t
;)>> x1=sin(t+3*pi/2
;)>> x1=sin(t
;)>> x2=sin(t+3*pi/2
;)>> x3=sin(t-3*pi/2
)'>> plot(t,x1,'r--o
>> hold on
)'>> plot(t,x2,'g-x
)'>>> plot(t,x3,'k-.
)'>> legend('sin' ,'sin +120 out-of-phase','sin -120 out-of-phase
)'>> xlabel('time
)'>> ylabel('sin waves
- 81 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
-تقسيى انشكم إنى عدج أقساو و رسى كم خط تياَي في قسى و ذنك تاستخداو انتعهيًح :
يثال : 6-4
;]>> t=[0:0.001:2*pi
;)>> x1=sin(t
;)>> x2=cos(t
;)>> x3=log(t
;)>> x4=exp(t
)>> subplot(2,2,1
)>> plot(t,x1
>> grid on
)'>> xlabel('time
)'>> ylabel('sin wave
)'>> title('plot 1
)>> subplot(2,2,2
- 82 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
>> plot(t,x2)
>> grid on
>> xlabel('time')
>> ylabel('cosine wave')
>> title('plot 2')
>> subplot(2,2,3)
>> plot(t,x3)
>> xlabel('time')
>> ylabel('log wave')
>> title('plot 3')
>> subplot(2,2,4)
>> plot(t,x4)
>> xlabel('time')
>> ylabel('exp wave')
>> title('plot 4')
>>
: – انتحكى في األشكال5
ٕ٘انٚ اٙ١ ٌٍشعُ فfigure Window ًفرخ ٔافزج شى٠ فإْ اٌّاذالبplot() ػٕذِا ٔغرخذَ اٌراتغ
: ٟ٘ ٚ ذ فاسؽ٠َ تفرخ شىً جذّٛح ذم١ٍذؼ
- 83 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
figure
ذم َٛاٌرؼٍّ١ح اٌغاتمح تفرخ ٔافزج شىً جذ٠ذج ٚ ,ػٕذِا ذىٌ ْٛذٕ٠ا أوثش ِٓ ٔافزج فإٕٔا ٔغرط١غ
اٌرٕمً ت ُٕٙ١تاعرخذاَ ) figure(nد١ث ٟ٘ nسلُ إٌافزج .
ٚوّا أششٔا ف ٟاٌثذا٠اخ فإٔٗ ّ٠ىٕٕا ِغخ ٔافزج اٌشىً ِٓ خالي اٌرؼٍّ١ح . clf
ّ٠ىٕٕا ػًّ ذمش٠ة ٌٍشىً ٚاخز ٌمطح ِمشتح ػٕٗ تاعرخذاَ اٌرؼٍّ١ح :
shg
ذغرخذَ ٘زٖ اٌرؼٍّ١ح إلظٙاس اٌشىً فٛساً تؼذ ذٕف١ز اٌشعُ .
يثال : 7-4
;]>> t=[-pi:0.001:pi
;)>> x=cos(t
)>> subplot(1,2,1
)>> plot(t,x
>> grid on
)>> subplot(1,2,2
)>> plot(t,x
>> grid on
)]>> axis([-2 , 2 , 0 , 1
)'>>text(-1,0.3,'zoom
>>shg
- 84 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
)( semilogx
٠م٘ َٛزا اٌراتغ تاٌشعُ وّا ٘ ٛاٌراتغ ٌ ٚ plotىٓ اٌّذٛس األفم٠ ٟى ْٛتّم١اط ٌٛغاس٠رّ. ٟ
)( semilogy
٠م٘ َٛزا اٌراتغ تاٌشعُ وّا ٘ ٛاٌراتغ ٌ ٚ plotىٓ اٌّذٛس اٌؼّٛد٠ ٞى ْٛتّم١اط ٌٛغاس٠رّ. ٟ
)( loglog
٠م٘ َٛزا اٌراتغ تاٌشعُ وّا ٘ ٛاٌراتغ ٌ ٚ plotىٓ ٠ى ْٛوال اٌّذٛس ٓ٠اٌؼّٛد ٚ ٞاألفم ٟتّم١اط
ٌٛغاس٠رّ. ٟ
)( plotyy
٠غرخذَ ٘زا اٌراتغ ٌشعُ خط ٓ١ت١أِ ٓ١١خرٍف ٓ١تاٌّذٛس اٌؼّٛد y ٞأٌ ٞىً خؾ ِذٛسٖ اٌؼّٛدٞ
اٌخاص .
) ezplot( func
٠غرخذَ ٘زا اٌراتغ ٌشعُ ذاتغ ِ funcخضْ تشىً سِض. ٞ
يثال : 8-4
- 85 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
>> subplot(2,2,1)
>> loglog(x,exp(x),'-s')
>> grid on
>> subplot(2,2,2)
>> x1=0:0.01:20;
>> plotyy(x1,10*exp(-x1).*sin(x1) , x1 , exp(-0.5*x1).*sin(3*x1))
>> subplot(2,2,3)
>> semilogx(x, log(x))
>> grid on
>> subplot(2,2,4)
>> semilogy(x, exp(x.^2))
>> grid on
>>
- 86 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ذذػ ٛاٌذاجح ف ٟتؼغ اٌرطث١ماخ ٌٍشعُ ثالث١ح األتؼاد وّا ٘ ٛاٌذاي تإٌغثح ٌثٕائ ٟاٌثؼذ ٌٍ ٚ ,م١اَ
تزٌه ٔٛسد اٌرٛاتغ اٌراٌ١ح ٚاعرخذاِاذٙا :
يثال : 9-4
;>> x=0:0.001:10
;)>> y=sin(4*x
;)>> z=cos(4*x
)'>> plot3(x,y,z ,'k-p
>> grid on
>>
- 87 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) mesh(x,y,z
٠شعُ شثىح ِٓ اٌخطٛؽ أٌٍّٛح ٚفما ً ٌــ ٌٚ Zزٌه فإْ اٌٍ٠ ْٛرغ١ش ٚفما ً السذفاع اٌغطخ ,فإرا واْ
وً ِٓ yٚ xشؼاػ ٚ ٓ١واْ ؽٛي اٌشؼاع ٚ n ٚ xؽٛي اٌشؼاع m ٛ٘ yد١ث ٟ٘ n ٚ m
أتؼاد اٌّظفٛفح zفإٔٗ ف٘ ٟزٖ اٌذاٌح ع١شعُ اٌراتغ إٌماؽ ٚع١ظً تٕٙ١ا ٚوً ٔمطح ٘X(i) ( ٟ
). ) ,Y(j) , Z(I,j
يثال : 10-4
ف ٟاٌّثاي عاتك لّد ترذذ٠ذ ل ُ١اٌّظفٛفح ٌ ٚ zىٓ ٘زا ِش٘ك ِٓ أجً سعُ أػمذ ٕ٘ ٚان ِٓ
ع١م َٛتزٌه :
- 88 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
يثال : 11-4
ٌمذ لّٕا ف ٟاٌّثاي اٌغاتك تشعُ ذاتغ اٌــ ٟ٘ r ٚ sinc=sin(r)/rاٌثؼذ ػٓ اٌّثذأ ٌ ٚرجٕة ػذَ
اٌرؼ ٓ١١أػفٕا اٌّمذاس اٌظغ١ش . eps
surf
٠م٘ َٛزا اٌراتغ تشعُ اٌغطخ تشىً ثالث ٟاٌثؼذ ِ ٚذخالذٗ ٔفظ ِذخالخ اٌراتغ . mesh
- 89 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
يثال : 12-4
;)>> [x,y]=meshgrid(-10:0.5:10
;>> R=sqrt(x.^2+y.^2)+eps
;>> z=sin(R)./R
)>> surf(x,y,z
>> colorbar
>>
colorbar
ٔغرخذَ اٌرؼٍّ١ح اٌراٌ١ح ٌرظٙش ػّٛد األٌٛاْ ف ٟاٌّخطؾ ف٠ ٛٙذذد ٌ ْٛوً اسذفاع ٌــ . Z
ف ٟتؼغ اٌرطث١ماخ ػاِح ٚفِ ٟجاي االذظاالخ خاطح ٔذراج ٌشعُ اٌرٛاتغ اٌؼمذ٠ح ٌ ٚىٓ
ٌ١ظ ف ٟاإلدذاث١اخ اٌذ٠ىاسذ١ح اٌرمٍ١ذ٠ح تً ف ٟاإلدذاث١اخ اٌمطث١ح اٌر ٟذرأٌف ِٓ اٌّذٛس األفمٟ
اٌزّ٠ ٞثً لغُ اٌذم١م ٚ ٟاٌّذٛس اٌؼّٛد ٞاٌزّ٠ ٞثً اٌمغُ اٌرخ ٚ ٍٟ١لذ ٠ى ْٛاٌّخطؾ اٌؼمٟ
األوثش شٛ١ػا ً ٘ ٛاٌذائشج اٌّشلّح اٌذٛاف تاٌذسجاخ ٚ ,فّ١ا ٍٟ٠تؼغ اٌرٛاتغ اٌّغرخذِح فٟ
٘زا اٌّجاي ٚذطث١ماذٙا ..
- 90 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) polar(theta , rho
٠م٘ َٛزا اٌراتغ تاٌشعُ ف ٟاٌّجاي اٌؼمذ ٞد١ث ٟ٘ thetaصا٠ٚح اٌؼذد اٌؼمذ ٛ٘ rho ٚ ٞؽٍ٠ٛح
اٌؼذد اٌؼمذ. ٞ
يثال : 13-4
;>> t=0:0.01:2*pi
;)>> x1=sin(t
;)>> x=sin(t
)>> subplot(1,2,1
)>> plot(t,x
>> grid on
)>> subplot(1,2,2
)>> polar(t,x
>>
يثال : 14-4
- 91 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
)')>> ezpolar('sin(t)*cos(t
.
- 92 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) ( stem
٠شعُ ٘زا اٌراتغ خطا ً ِٓ تذا٠ح اٌّذٛس األفمٕ٠ ٚ ٟر٘ ٟٙزا اٌخؾ تذائشج ػٕذ اٌمّ١ح ِٓ اٌشؼاع
اٌّشاد سعّٗ ٔ ,غرف١ذ ِٓ ٘زا اٌراتغ جذاً فِ ٟجاي إٌّزجح .
) ( stairs
٠شعُ ٘زا اٌراتغ خطا ً أفم١ا ً ػٕذ اٌمّ١ح ِٓ اٌشؼاع اٌّشاد سعّٗ ٔ ,غرف١ذ ِٓ ٘زا اٌراتغ جذاً فٟ
ِجاي اٌرىّّ. ُ١
يثال : 16-4
)>> subplot(3,1,1
;>> t=0:0.1:10
;)>> xt=sin(t
)>> plot(t,xt
>> grid on
) '>> title('continous sine
)>> subplot(3,1,2
;)>> n=linspace(0,10,25
;)>> xn=sin(n
)>> stem(n,xn
>> grid on
) '>> title('sampled sine
)>> subplot(3,1,3
;)>> k=linspace(0,10,25
;)>> xk=sin(k
)>> stairs(n,xn
>> grid on
) '>> title('quantized sine
>> shg
>>
- 93 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) scattar ( x ,y
٠م٘ َٛزا اٌراتغ تشعُ دائشج ( أ ٚأِ ٞذذد آخش ) ػٕذ وً ٔمطح ٌٍشعُ .
يثال : 17-4
;)>> t=linspace(1,2*pi,100
;)>> s=exp(-t
)>> scatter(t,s
>> grid on
>>
- 94 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
)o bar(x,y
٠م َٛتٕفظ اٌؼًّ ٌ ٚىٓ ٠شعُ شؼاع ػٕذ وً لّ١ح ٌــ . X
- 95 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) (o bar3
د١ث ٠م َٛتٕفظ اٌٛظ١فح ٌ ٚىٓ ٠شعُ تشىً ثالث ٟاألتؼاد .
يثال : 18-4
>> figure
)>> subplot(1,2,1
;]>> x=[2005:2014
;]>> y=[ 3 6 1 8 8 8 6 5 9 10
)'>> bar(x,y,0.6,'g
)>> subplot(1,2,2
)>> m=round(rand(3,2)*10
=m
3 10
5 2
10 10
)>> bar3(m,0.3
>>
) hist(X
٠م٘ َٛزا اٌراتغ تشعُ أػّذج ذّث ً١ت١أٌٍّ ٟذخً xد١ث ٠م َٛترشذ١ة اٌؼٕاطش ف ٟػششج
ِجّٛػاخ ِرغا٠ح ف ٟاٌثؼذ تٕٙ١ا ٠ ٚشعُ اٌؼّٛد ف ٟوً ِجّٛػح تٕاءاً ػٍ ٝػذد اٌؼٕاطش ف ٟوً
ِجّٛػح ٌ ٚ ,.رذذ٠ذ ػذد اٌّجّٛػاخ ٔىرة :
)>> y=fix(rand(1,10)*10
=y
2 0 0 8 6 3 9 0 4 3
)>> hist(y,8
- 96 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
>>
pie
ٌقوم بتوزٌع قٌم الشعاع vعلى القرص الدائري بشكل نسبة مئوٌة :
يثال : 20-4
- 97 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
) area(Y
٠م٘ َٛزا اٌراتغ تشعُ اٌشؼاع Yتإٌغثح ٌفٙشعح ػٕاطشٖ ّ٠ ٚأل اٌّغادح اٌٛالؼح ذذد اٌشؼاع ,
ٚأِا إرا واْ ِ Yظفٛفح فإٔٗ ٠شعُ وً ػّٛد ػٍ ٝأٔٗ شؼاع ِٕفشد ٚتٍِ ْٛخرٍف د١ث ٠شعُ
اٌؼّٛد األٚي ٚذظثخ جّ١غ ٔماؽ اٌشؼاع األٚي وأٔٙا ٔماؽ أطفاس ٌٍشؼاع اٌثأ ٚ ٟاٌّثاي اٌراٌٟ
عٛ١ػغ ػٍّٗ أوثش .
يثال : 20-4
; ] >> v= [ 2 4 3
;]>> m=[ v ; v+2 ; v-1
)>> subplot(1,2,1
)>> area(v
)>> subplot(1,2,2
)>> area(m
>>
- 98 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
اٌؼّٛد األٚي ف ٟاٌّظفٛفح ٠ذ ٛ٘ ٚ [2 4 1] ٞٛاٌّّثً تاٌّغادح اٌضسلاء ٚ ,اٌؼّٛد اٌثأٛ٘ ٟ
]ٔ ٚ [4 6 5الدع أْ إٌمطح األٌٙ ٌٝٚزا اٌشؼاع ٛ٘ ٚاٌّّثً تاٌّغادح اٌخؼشاء ٘ٚ 2+4=6 ٟ
إٌمطح اٌثأ١ح ٘ ٚ 4+6=10 ٟاٌثاٌثح ٘. 5+1=6 ٟ
****نهاية الفصل****
- 99 -
الفصل الرابع الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
تًاريٍ :
Exercises :
- 1إرا ػٍّد أٔٗ ذُ ذطث١ك إشاسج ج١ث١ح sinػٍ ٝدٛ٠د ,فاسعُ اشاسج اٌذخً ٚاإلشاسج اٌّمِٛح .
;t=0:pi/100:4*pi
;)x1=3*sin(t
;)x2=x1.*(x1>0
)subplot(2,1,1
)'plot(t,x1,'r--
grid on
)subplot(2,1,2
)'plot(t,x2,'g-
grid on
)]ylim([-4 4
;]x=[0:0.01:35
y=2.*(x<6)+(x-4).*(6<=x&x<20)+(36-
;)x).*(20<=x&x<=35
)plot(x,y
grid on
>> subplot(3,3,[1 2 3]) % merge 1'st and 2'nd and 3'rd segments
𝑥 + 2𝑦 = 5
𝑥 = 3 ,𝑦 = 1
−𝑥 + 5𝑦 = 2
>> x=0:0.01:5;
>> y1=(5-x)/2;
>> y2=(x+2)/5;
>> plot(x,y1,x,y2)
>> xlabel('X')
>> ylabel('Y')
>> grid on
- 102 -
انفصم
5
انبزمجت في انماتالب
Programming with
MatLab
أهداف هذا الفصل :
) 1 – 5مقدمت :
Introduction
ال ٠مزظش ػًّ اٌّبرالة ػٍ ٝأعشاء اٌؼٍّ١بد اٌش٠بض١خ ػٍ ٝاألػذاد ٚاٌّظفٛفبد ٚ
سسُ اٌزٛاثغ فحست فٛ٠ ٛٙفش ٌٕب أ٠ضب ث١ئخ ٌىزبثخ ثشاِظ ٔفس رٍه اٌز ٟرىزت ثأ٠خ ٌغخ ثشِغخ ٚ
اٌّزشعُ ٚإٌّفز ٌٍجشٔبِظ ٘ ٛاٌّبرالة رارٗ ٌ ٚىزبثخ ثشٔبِظ ثأ٠خ ٌغخ ٠غت اٌزؼشف ػٍٝ
اٌّزغ١شاد ٚاإلسٕبد ٚاٌؼٍّ١بد اٌش٠بض١خ ٚإٌّطم١خ ٘ ٚزا لذ رؼٍّٕبٖ ف ٟفظٛي سبثمخ ِ ٚب
سٕذسسٗ ف٘ ٟزا اٌفظً ٘ ٛاٌزحىُ ثزذفك اٌزؼٍّ١بد ٍِ ٚفبد ثشاِظ اٌّبرالة ..
رف١ذٔب اٌحٍمبد اٌزىشاس٠خ ثزٕف١ز وزٍخ ِٓ اٌزؼٍّ١بد ثشىً ِزىشس ٕ٘ ٚبن ٔٛػ ِٓ ٓ١اٌحٍمبد فٟ
اٌّبرالة :
- for
رم٘ َٛزٖ اٌحٍمخ ثزىشاس رٕف١ز وزٍخ ِٓ اٌزؼٍّ١بد ػذد ِحذد ِٓ اٌّشاد ٚرىزت ضّٓ اٌس١بق
اٌزبٌ: ٟ
for index=values
program statements
…..
end
ٚرى ْٛاٌم values ُ١ضّٓ أحذ األشىبي اٌزبٌ١خ :
ٕ٘ ٚب ٔض٠ذ دٌ ً١اٌحٍمخ ثذءاً ِٓ اٌمّ١خ االثزذائ١خ initvalثّمذاس ٚ 1حز ٝاٌمّ١خ إٌٙبئ١خ endval
ٚثبٌزبٌ ٟس١زىشس رؼٍّ١بد اٌجشٔبِظ ضّٓ اٌحٍمخ حز٠ ٝظجح دٌ ً١اٌحٍمخ أوجش ِٓ . endval
ٚػٕب ٔض٠ذ دٌ ً١اٌحٍمخ ثذءاً ِٓ اٌمّ١خ initvalثّمذاس ٘ ٚ stepىزا حز٠ ٝظجح دٌ ً١اٌحٍمخ أوجش
ِٓ . endval
3- valArray
٠م َٛثئٔشبء شؼبع ػّٛد ٞاسّٗ ِٓ indexأػّذح اٌّظفٛفخ valArrayف ٟوً دٚسح ,ففٟ
اٌّشح األ٠ ٌٝٚسٕذ ٌذٌ ً١اٌحٍمخ اٌؼّٛد األٚي ِٓ اٌّظفٛفخ valArrayأٞ
)٠ ٚ index=valArray(:,1زىشس رٕف١ذ ِب ثذاخً اٌحٍمخ ثؼذد أػّذح اٌّظفٛفخ . valArray
مثال : 1-5
)>> r=round(rand(2,4)*10
=r
7 7 3 1
2 0 0 8
>> for i=r
;'m=i
)disp(m
end
7 2
7 0
3 0
1 8
>>
- while
رم٘ َٛزٖ اٌحٍمخ ثزٕف١ز اٌزؼٍّ١بد اٌز ٟثذاخً اٌحٍمخ ثشىً ِزىشس طبٌّب أْ اٌزؼج١ش طح١ح ٚرىزت
ضّٓ اٌس١بق اٌزبٌ: ٟ
while expression
statements
end
٠ ٚزُ رم ُ١١اٌزؼج١ش ػٍ ٝأٔٗ طح١ح ػٕذِب رى ْٛإٌز١غخ غ١ش فبسغخ ٚعّ١غ ػٕبطش٘ب غ١ش
طفش٠خ ٚلذ ٠زضّٓ اٌزؼج١ش ػٍّ١بد ػالئم١خ إِٔ ٚطم١خ ح١ش ٠م َٛاٌّبرالة ثزم ُ١١اٌزؼج١ش ِٓ
اٌ١سبس إٌ ٝاٌٚ ٚ ٓ١ّ١فمب ً أل٠ٌٛٚخ اٌؼٍّ١بد .
مثال : 2-5
;]>> a=[1:10
;>> b=7
;>> i=1
)>> while b>a(i
))disp(a(i
;i=i+2
end
1
3
5
>>
رّىٕه اٌؼجبساد اٌششط١خ ِٓ األخ١بس خالي ٚلذ اٌزٕف١ز أ ٞوزٍخ ِٓ اٌزؼٍّ١بد سزٕفز ٚاٌؼجبسح
اٌششط١خ ف ٟأثسظ حبالرٙب رى ْٛوّب ف ٟاٌس١بق اٌزبٌ: ٟ
if expression
statements
end
مثال : 3-5
;)>> a=randi(100,1
>> if rem(a,2)==0
) ' disp(' a is even
end
>> a
=a
91
>>
ٕ٘ ٚبن ط١غخ صبٔ١خ ٌــ : ٟ٘ ٚ if
if expression
statements
else
statements
end
ٚاٌٙذف ِٓ ٘زٖ اٌظ١غخ ٘ ٛرٕف١ز أِش ِب ف ٟحبٌخ ٌُ ٠زحمك اٌششط .
مثال : 4-5
;)>> a=randi(100,1
>> if rem(a,2)~=0
) ' disp(' a is odd
else
) ' disp(' a is even
end
a is odd
>> a
=a
13
وّب أْ ٕ٘بن ط١غخ صبٌضخ ٌــ ٟ٘ ٚ if
if expression
statements
else if
statements
else if
……..
else
statements
end
ءٟ ششط ٕٔفز شٞزحمك أ٠ ٌُ حبيٚ ت١ اخزجبس أوضش ِٓ ششط ثبٌزشرٛ٘ غخ١ذف ِٓ ٘زٖ اٌظٌٙ اٚ
. ِب
: 5-5 مثال
>> a=randi(100,1);
>> if a <50
disp('bad')
elseif a>=50 && a<75
disp('good')
elseif a>=75 && a<90
disp('very good')
else
disp('excelent')
end
good
>> a
a=
55
>>
: ٌٟبق اٌزب١ رىزت ضّٓ اٌسٚ switch ٟ٘ ٚ غخ اٌسبثمخ١غخ ِىبفئخ ٌٍظ١ طٍٝ اٌّبرالة ػٞٛح٠
switch switch_expression
case case_expression1
statements
case case_expression2
statements
:
otherwise
statements
end
ّٓدح ضٛعٌّٛش ا١ ثأحذ اٌزؼبثswitch ٌٝش اٌّذخً إ١غخ رمبسْ رؼج١ وّب ٔالحع فأْ ٘زٖ اٌظٚ
ّبد١ٍٕفز اٌزؼ٠ ٗٔافمٗ فئٛ٠ ش اٌّذخً ِب١غذ اٌزؼج٠ ٌُ ْ إٚ افمخ ٌزٌهٌّّٛبد ا١ٍ رٕفز اٌزؼٚ switch
. otherwise دح ثؼذٛعٌّٛخ ا١االفزشاض
- 107 -
الفصل الخامس الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
: 6-5 مثال
x= [12, 64, 24];
plottype =input( 'enter type of plot' ,'s') ;
switch plottype
case 'bar'
bar(x)
title('Bar Graph')
case {'pie','pie3'}
pie3(x)
title('Pie Chart')
legend('First','Second','Third')
otherwise
error('Unexpected plot type. No plot created.');
end
- try-catch
ػخ اٌجشٔبِظّٛ ِغٟس خطأ فٚ ػٕذ حذٟن االفزشاضٍٛص اٌسٚش ثزغب١سّح ٌٕب ٘زا اٌزؼج٠
ز١ٕزمً اٌزٕف١ سtry ػجبساد اٌىزٍخٜز إحذ١ رٕفٟش إرا حذس خطأ ف١ ح, try وزٍخٟدح فٛعٌّٛا
ْٛى٠ ٚ , ّبد اٌخبطخ ثّؼبٌغخ اٌخطأ١ٍػخ اٌزؼّٛ ِغٍٝ ػٞٛح٠ ٞ اٌزٚ catch وزٍخٌٝساً إٛف
: ٍٟ٠ بق وّب١اٌس
try
statements
catch
statements
end
mistake
: 7-5 مثال
x=[];
try
x=x+1;
x=x^3;
y=x^x;
x=33;
catch
disp('you do mistake')
end
x
you do mistake
x=
[]
- 108 -
الفصل الخامس الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ف ٟاٌّضبي اٌسبثك ٚضؼٕب ِظفٛفخ فبسغخ ٚ xلّٕب ثغّؼٙب ِغ ٚ 1إٌبرظ ِ٘ ٛظفٛفخ
فبسغخ صُ سفؼٕب٘ب ٌٍمٛح ٚ 3ثم١ذ فبسغخ ,صُ أسدٔب إسٕبد لّ١خ ][^][ إٌٌ ٚ y ٝىٓ ٘زا خطأ فٍُ
ٕ٠فز اٌجشٔبِظ ٘زٖ اٌؼجبسح ٚرغبٚص ِب ثم ٟف ٟوزٍخ ٟ٘ ٚ tryاٌؼجبسح ٚ x=33أزمً إٌ ٝوزٍخ
ٚ catchاٌز ٟرح ٞٛػٍ ٝطجبػخ عٍّخ .
ٕ٘ ٚبن ثؼض اٌؼجبساد اٌز ٟرسبػذٔب ف ٟاٌزحىُ ثحٍمبد اٌزىشاس ٚاٌؼجبساد اٌششط١خ : ٟ٘ ٚ
- continue
رم٘ َٛزٖ اٌؼجبسح ثٕمً رٕف١ز اٌزؼٍّ١بد داخً اٌحٍمخ إٌ ٝثذا٠خ اٌحٍمخ
- break
رف١ذ ٘زٖ اٌؼجبسح ف ٟاٌخشٚط اٌّجىش ِٓ اٌحٍمخ ٚ ,إرا وبٔذ ٌذٕ٠ب حٍمبد ِزذاخٍخ فئْ ٘زٖ اٌؼجبسح
رخشط ِٓ اٌحٍمخ اٌذاخٍ١خ إٌ ٝاٌحٍمخ األوجش .
- return
رم٘ َٛزٖ اٌزؼٍّ١خ ثٕمً اٌزحىُ إٌ ٝاٌزبثغ األطٍ ٟاٌز ٞاسزذػ ٝاٌزبثغ اٌفشػ. ٟ
- pause
رؼًّ ٘زٖ اٌزؼٍّ١خ ػٍ ٝإ٠مبف رٕف١ز اٌجشٔبِظ حز ٝرم َٛأٌّسزخذَ ثبٌضغظ ػٍ ٝأ ٞصس ٚلذ
رُسزؼًّ وّب pause(n) ٍٟ٠إل٠مبف اٌزٕف١ز ػذد ِٓ اٌضٛأ٠ ٟسب. n ٞٚ
مثال : 8-5
>> for i=1:10
if rem(i,2)~=0
continue
end
)disp(i^2
end
4
16
36
64
100
>>
الحع ف ٟاٌّضبي اٌسبثك إٔٔب احزغٕب الصٕٚ end ٓ١احذح ٌــ ٚ ٚ ifاحذح ٌــ ٚ forالحع أ٠ضب ً أٔٗ
ػٕذِب ٠زحمك اٌششط ٠زغبٚص رٕف١ز ثبل ٟاٌحٍمخ ٠ ٚؼٛد ٌ١ىًّ ثبل ٟاٌحٍمخ .
مثال : 9-5
>> for i=1:10
if i==6
break
end
)disp(i
end
1
2
3
4
5
>>
الحع ف ٟاٌّضبي اٌسبثك أٔٗ ػٕذِب ٠زحمك اٌششط ٠ىسش اٌزٕف١ز اٌحٍمخ ٠ ٚخشط ِٕٙب .
مثال : 10-5
>> for i=1:10
if i==6
pause
end
)disp(i
end
1
2
3
4
5
6
7
8
9
10
>>
الحع ف ٟاٌّضبي اٌسبثك أٔٗ ػٕذِب ٠زحمك اٌششط ٠زٛلف اٌزٕف١ز ٚرظٙش اٌؼجبسح ثبلٟ
ف ٟاٌشش٠ظ اٌسفٌٍ ٟجشٔبِظ اٌّبرالة ٚػٕذ ضغظ أ ٞصس ٠زبثغ اٌجشٔبِظ
رٕف١زٖ .
مثال : 11-5
>> for i=1:10
if rem(i,2)~=0
continue
end
)disp(i^2
end
4
16
36
64
100
>>
الحع ف ٟاٌّضبي اٌسبثك إٔٔب احزغٕب الصٕٚ end ٓ١احذح ٌــ ٚ ٚ ifاحذح ٌــ ٚ forالحع أ٠ضب ً أٔٗ
ػٕذِب ٠زحمك اٌششط ٠زغبٚص رٕف١ز ثبل ٟاٌحٍمخ ٠ ٚؼٛد ٌ١ىًّ ثبل ٟاٌحٍمخ .
ِ -ف َٛٙاٌــ ٠ : nestedزُ إدخبي أوضش ِٓ حٍمخ forأ ٚأوضش ِٓ ششط ifثذاخً ثؼضٙب
اٌجؼض ح١ش ٠زُ رٕف١ز اٌحٍمبد ٚاٌششٚط اٌز ٟف ٟاٌذاخً أٚالً .
مثال : 12-5
>> for i=1:10
for j=1:10
)fprintf('%2d\t',i*j
end
)'fprintf('\n
end
1 2 3 4 5 6 7 8 9 10
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 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
>>
مثال : 13-5
;)'x=input('enter an integer number
if x>0
)'disp('positive number
if rem(x,2)==0
)'disp('odd number
else
)'disp('even number
end
elseif x<0
)'disp('negative number
if rem(x,2)==0
)'disp('odd number
else
)'disp('even number
end
else
)' disp('zero
end
ِ -ف َٛٙاٌــ ِ ٛ٘ ٚ vectorizationف َٛٙلبئُ ػٍ ٝاسزجذاي حٍمخ forثشؼبع ّ٠ضً دٌ ً١اٌحٍمخ
ٚرٕف١ز ِب ٠ذاخً اٌحٍمخ اػزّبداً ػٍ ٝاٌشؼبع ٘ ٚزا ٠سشع رٕف١ز اٌجشٔبِظ فبٌّبرالة ٠زؼبًِ
ثسشػخ ِغ اٌّظفٛفبد أسشع ِٓ اٌذخٛي ف ٟحٍمخ ٚ forرٕف١ز٘ب ٌ ٚ ,ىٓ ف ٟثؼض اٌحبالد
ال ٔسزط١غ ػًّ ٌٍ vectorizeجشٔبِظ ٚ ,ف ٟثؼض اٌحبالد رى for ْٛأفضً .
مثال : 14-5
tic tic
;]x=[1:100 ;]x=[1:100
for i=x ;y=2*x-1
;y(i)=2*x(i)-1 toc
end Elapsed time is 0.000153 seconds.
toc >>
Elapsed time is 0.003030 seconds.
سوف تظهر لنا نافذة المحرر التالية و التي سنكتب فيها البرنامج ( أو التابع ) :
ٔجذأ ثىزبثخ functionصُ ث ٓ١لٛسِ ٓ١شثغ ِزحٛي أِ ٚزحٛالد اٌخشط صُ ٔضغ ػالِخ = -
صُ اسُ اٌزبثغ صُ ث ٓ١لٛس ٓ١دائشِ ٞزحٛي أِ ٚزحٛالد اٌذخً .
ٚاٌسطش اٌضبٔ ٟثؼذ ػالِخ ٔ %ىزت ٍِخض ػٓ اٌزبثغ . -
ٚاٌسطش اٌضبٌش ٍِخض رفض ٌٟٞػٓ اسزخذاَ اٌزبثغ ّ٠ ٚ .ىٓ االسزغٕبء ػٓ اٌسطش -
اٌضبٌش ٚاٌضبٔ.. ٟ
ٔ ٚجذأ ثىزبثخ اٌزبثغ . -
ٚف ٟإٌٙب٠خ ٔىزت . end -
ثؼذ وزبثزٕب ٌٍزبثغ ٔم َٛثحفظٗ ثبسُ فِ ٟغٍذ اٌؼًّ اٌحبٌ ٚ ٟاالِزذاد ٌ٘ ٚ .m ٛزٕف١ز اٌزبثغ ٔىزت
اسّٗ فٔ ٟبفزح األٚاِش .
مثال : 15-5
) function [ avg ] = avg( v
;)avg=sum(v)/length(v
end
ٚفٔ ٟبفزح اٌزؼٍّ١بد ٔم َٛثبسزذػبء اٌزبثغ ثبسُ اٌٍّف اٌز ٞلّٕب ثحفظٗ ف١ٌ ( ٗ١س ثبسُ اٌزبثغ
اٌّٛعٛد ف ٟاٌٍّف ) فٕغذ :
;]>> v=[1:13
)>> a=avg(v
the average is : 7.0000
وّب ّ٠ىٕٕب وزبثخ ِغّٛػخ ِٓ اٌزؼٍّ١بد ٚحفظٙب فٍِ ٟف scriptثبِزذاد ٛ٘ٚ .mإٌٛع اٌضبٟٔ
ِٓ ٍِفبد M-file
: 16-5 مثال
m=input('enter you matrix ')
if isempty(m)==true
disp('your matrix is empty')
else
if isscalar(m)==true
disp('your matrix is scalar')
elseif iscolumn(m)==true
disp('your matrix is colnmn vector')
elseif isrow(m)==true
disp('your matrix is row vector')
else
[r,c]=size(m);
fprintf('your matrix is %dx%d martix\n',r,c)
end
end
: ّبد فٕغذ١ٍ ٔبفزح اٌزؼٟٗ ف١ لّٕب ثحفظٗ فٞز ٔىزت اسُ اٌٍّف اٌز١ ػٕذ اٌزٕفٚ
>> matrix
enter you matrix [3 5 ; 3 5]
m=
3 5
3 5
echo
ِغٚ ٖز١ّبد ػٕذ رٕف١ٍ ٔبفزح اٌزؼٟ فscript بد ٍِف٠ٛبس ِحزٙ إلظon ّخ ِغ١ٍٔسزخذَ ٘زٖ اٌزؼ
. بس٘بٙ ٌؼذَ إظoff
ٞخ أ١ٍشاد ِح١ ِزغٟ٘ function عٛٔ ِٓ M-files ٍِفبدٟشاد اٌّسزخذِخ ف١ اٌّزغ-
ٍِفبدٟشاد ف١ّٕب اٌّزغ١ ث, ًّ فضبء اٌؼٟدح فٛعٌّٛشاد ا١ رؤصش ثبٌّزغٚب ال رزأصش أٙٔأ
ٔبفزحٟ فscript ز ٍِف اٌــ١شاد فضبء اٌؼًّ ػٕذ رٕف١ ِزغٍٝ رؤصش ػٚ رُضبف أscript
. ّبد١ٍاٌزؼ
د أْ ٍِفبدٛ اٌّمظٚ : سبوٕخscript ّٕب ٍِفبد١خ ث١ى١ِٕب٠ دfunction ٍِفبد-
وً ِشح أِبٟز ف١ش إٌزبئظ ػٕذ اٌزٕف١١ رغٌٟ ثبٌزبٚ ش٘ب١ّىٕٕب رغ٠ ب ِذخالدٌٙ function
- 115 -
الفصل الخامس الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
ٍِفبد scriptفال رمجً ِذخالد ثشىً ػبَ ( ف ٟاٌحم١مخ ّ٠ىٕٕب اٌطٍت ِٓ اٌّسزخذَ
إدخبي ِزغ١شاد ٕ٘ب ثبسزخذاَ اٌزبثغ ٚ ) inputثبٌزبٌ ٟال رزغ١ش ٔزبئغٙب .
-أػطِ ٟزغ١شاره اٌز ٟرسزخذِٙب أسّب ً ١ٍ٠ك ثّحز٠ٛبرٙب ثح١ش رززوش ِبرا رح ٞٛثّغشد
لشاءح اسّٙب ,الحع :
ٌٓ رززوش ِب ٠حز ٗ٠ٛاٌّزغ١ش ػٕذ لشاءح اٌجشٔبِظ ِشح أخشadevsdfd='hesham' % ٜ
ثّغشد لشاءح اسُ اٌّزغ١ش سزؼشف أٔٗ ٠ح ٞٛاسُ name='hesham' %
اسزخذَ ٔٛع اٌج١بٔبد إٌّبست ٌىً ِزغ١ش ٚاسزخذَ رشاو١ت اٌج١بٔبد إْ أِىٓ . -
اخزبس اٌخٛاسصِ١خ اٌظح١حخ ٌجشٔبِغه ( رغٕت رؼم١ذ ٚطٛي اٌجشٔبِظ ) . -
الزظش ف ٟاسزخذاَ اٌّزغ١شاد ٚاٌزؼٍّ١بد لذس اإلِىبْ . -
أعؼً ثشٔبِغه ٠ؼبٌظ اٌحبالد اٌؼبِخ ١ٌ ٚس حبٌخ خبطخ . -
لُ ثمشاءح ٌجشٔبِغه ٚرٕف١زٖ رٕ٘١ب ً لجً رٕف١زٖ ف ٟاٌحبست . -
: ) تمارين5 - 5
Exercises
ّخ١لف اإلدخبي ػٕذ رشن لٛز٠ ٚ ّخ١ّخ ل١ُ شؼبع ِب ل١َ ثئدخبي لٛم٠ script اوزت ٍِف- 1
. طجغ اٌشؼبع٠ ٚ لف اٌجشٔبِظٛز١اٌشؼبع فبسغخ ف
v=[];
for i=1:1000
e=input('=');
if isempty(e)==1
break
elseif isnumeric(e)==0
disp('you have not entered a number ')
else
v(i)=e;
end
end
v
ٓ١ّطٍت ِٓ اٌّسزخذَ رخ٠ ٚ 10 اٌــٚ 1 ٓ اٌــ١ح ث١ طحٟائٛذ سلُ ػش١ٌَٛ ثزٛم٠ اوزت ربثغ- 3
. ٌخٚخّٕٗ اٌّسزخذَ اطٍغ ػذد ِشاد اٌّحب٠ ػٕذِبٚ ُاٌشل
function [ ] = guess( )
x=randi(10,1); i=0 ;y=11;
while x~=y
y=input('guess the number I save [1 ~ 10');
i=i+1;
disp('bad try again')
end
fprintf('good but you have %d attempts',i)
end
- 117 -
الفصل الخامس الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
: ٍٟ٠ بَ ثّب١ صُ اٌمA فخ ِشثؼخٛ ِٓ أعً إدخبي ِظفscript m-file اوزت- 5
زُ طجبػخ وٍّخ٠ احذاد ػٕذئزٚ ٖ حبي وبٔذ وب ػٕبطشٟ فٟس١ اخزجبس اٌمطش اٌشئ- 1
. Not Reflexive زُ طجبػخ٠ إالٚ Reflexive
ُز٠ ػٕذئزjith اٌؼٕظشٞٚسب٠ ijth فئرا وبْ اٌؼٕظش, A فخٛ اخزجبس وً ػٕبطش اٌّظف- 2
Not Symmetric زُ طجبػخ٠ إالٚ Symmetric طجبػخ وٍّخ
الjith اٌؼٕظشٚ 1 ٞٚسب٠ ijth فئرا وبْ اٌؼٕظش, A فخٛ اخزجبس وً ػٕبطش اٌّظف- 3
Not زُ طجبػخ٠ إالٚ Antiymmetric زُ طجبػخ وٍّخ٠ ) ػٕذئزi≠j ( 1 ٞٚسب٠
. Antimmetric
A=input('enter a squareMatrix');
[r,c]=size(A);
c1=[];
if r~=c
disp('Matrix is not squar')
return
end
for i=1:r
for j=1:c
if i==j && A(i,j)==1
c1=[c1 1];
end
end
end
if length(c1)==length(diag(A))
s1='Reflexive';
else
s1='Not Reflexive';
- 118 -
الفصل الخامس الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
end
c2=[];
for i=1:r
for j=1:c
if A(i,j)==A(j,i)
c2=[c2 1];
end
end
end
if length(c2)==numel(A)
s2='Symmetric ';
else
s2='Not Symmetric ';
end
c3=[];
for i=1:r
for j=1:c
if A(i,j)==1&&A(j,i)~=1&&i~=j
c3=[c3 1];
end
end
end
if length(c3)==(numel(A)-length(diag(A)))/2
s3='Antiymmetric';
else
s3='Not Antiymmetric ';
end
fprintf('the Matrix you entered is %s , %s ,and %s\n',s1,s2,s3)
10ٌٝإ1 ِٓ ي األػذادٚدٖ األّٛ ػٞٛح٠ الٚ اطجغ عذ, ّبد اٌطجبػخ١ٍ رؼٚ ثبسزخذاَ اٌحٍمبد- 6
ٖزٌٙ ٞزُ اٌؼشش٠غبسٌٍٛد اٌضبٌش اّٛ اٌؼٚ زٖ األػذادٌٙ ٟؼ١زُ اٌطج٠غبسٌٍٛ أٟد اٌضبّٛ اٌؼٚ
.األػذاد
fprintf('=======================================
=\n')
fprintf('||\t x \t\tlog(x)\t\tlog10(x)\t||\n')
fprintf('=======================================
=\n')
for i=1:9
fprintf('||\t%6.4f\t||\t%6.4f\t||\t%6.4f\t||\n',i,log(i),log10(i))
end
fprintf('=======================================
=\n')
- 119 -
الفصل الخامس الـمـاتـالب لـمـهـنـدسـي االتـصـاالت
========================================
|| x log(x) log10(x) ||
========================================
|| 1.0000 || 0.0000 || 0.0000 ||
|| 2.0000 || 0.6931 || 0.3010 ||
|| 3.0000 || 1.0986 || 0.4771 ||
|| 4.0000 || 1.3863 || 0.6021 ||
|| 5.0000 || 1.6094 || 0.6990 ||
|| 6.0000 || 1.7918 || 0.7782 ||
|| 7.0000 || 1.9459 || 0.8451 ||
|| 8.0000 || 2.0794 || 0.9031 ||
|| 9.0000 || 2.1972 || 0.9542 ||
========================================
َ ثئدخبيٛم٠ script m-file اوزت, بٔبد١ اٌزحىُ ثزذفك اٌجٚ بٔبد١ت اٌج١ ثبسزخذاَ رشاو- 7
بء ِٓ إدخبيٙ ثؼذ االٔزٚ ) ( االسُ – اٌؼّش – اٌّؼذيٟ٘ بٔبد١ ٘زٖ اٌجٚ طبٌتN بٔبد١ث
. 60 ِٓ ٍٝ اٌّؼذي األػٚ ػذد اٌطالة رٚ , زُ طجبػخ أوجش ِؼذي٠ بٔبد١اٌج
N=input('enter the numbe of the students ');
for i=1:N
fprintf('student number %d\n============',i);
nm=input('enter name of the student','s');
ag=input('enter age of the student');
av=input('enter avg of the student');
student(i)=struct('name',nm,'age',ag,'avg',av);
end
m=max([student.avg]);
x=[student.age];
n=numel(find(x>60));
fprintf('the max of avgs is %2.2f and the number
of successed students is %d',m,n);
- 120 -
انفظم
6
أَىاع انثُاَاخ و انتعايم يع
يهفاخ انثُاَاخ
Data Types And Data Files
Management
أهداف هذا الفصل :
) 1 – 6يقذيح :
Introduction
تٕطٕنُا نٓزا انفظم َكٌٕ لذ لطؼُا شٕطا ً كثٍشج فً انًاذالب ٔ سٍكٌٕ ْزا انفظم
يمسٕيا ُ إنى لسًٍٍ األٔل ْٕ إَٔاع انثٍاَاخ فً انًاذالب ٔ كاٌ ٌدة ػهٍُا انرؼشف ػهٍّ يُز
انثذاٌح ٔ نكٍ نردُة انظؼٕتح ٔ انرؼمٍذ أخهد ركشِ نٓزا انًٕضغ ٔ ,انثاًَ ْٕ إداسج يهفاخ
انثٍاَاخ فؼُذيا ذذخم فً انثشيدح اندذٌح فإَك غانثا ً يا سرسراج نرخزٌٍ انثٍاَاخ ػهى انمشص
انظهة ٔ ,ذذػى ػًهٍح َمم انثٍاَاخ تٍٍ انًاذالب ٔ انمشص انظهة تاسرٍشاد ( يٍ انمشص
انظهة إنى انًاذالب ) ٔ ذظذٌش ( يٍ انًاذالب إنى انمشص انظهة ) ٌٔ ,رى ذخزٌٍ انًهفاخ
ػهى انمشص انظهة تطشٌمرٍٍ :األٔنى ًْ ػهى شكم َض ٔ ذكٌٕ لٍى انثٍاَاخ ٔفك شٍفشج انــ
ASCIزٍث ًٌكٍ فرر انًهف تٕاسطح أي تشَايح يسشس َظٕص ٔ ,انثاٍَح ػهى شكم ثُائً
( binaryأطفاس ٔ ٔازذاخ ) ٔ تانرانً ال ًٌكٍ لشاءذٓا تٕاسطح تشَايح يسشس َظٕص ٔ,
انرخزٌٍ ػهى شكم binaryأفضم يٍ َازٍح انًسازح انرً ٌشغهٓا انًهف ػهى انمشص انظهة ,
ٔ سُؼانح فً ْزا انمسى كٍفٍح انرؼايم يغ انًهفاخ ٔ ذظذٌشْا ٔ اسرٍشادْا تٕاسطح انًهفاخ ٔ نكٍ
تشكم يٕخز .
يثال : 1-6
>> x=1
=x
1
>> whos
Name Size Bytes Class Attributes
x 1x1 8 double
>>
) y=data_type ( x
يثال : 2-6
)>> a=uint16(1884
=a
1884
)>> b=single(pi
=b
3.1416
)>> c=logical(33
=c
1
>> whos
Name Size Bytes Class Attributes
انظُغح انىطف
انتخزٍَ تشُفشج انــ asciiتتخظُض 8خاَاخ نُتًكٍ
-ascii
يٍ قشاءته تاستخذاو يحشس نُظىص
انتخزٍَ تشُفشج انــ asciiتتخظُض 8خاَاخ نُتًكٍ
-ascii –tabs
يٍ قشاءته تاستخذاو يحشس نُظىص و تشك يسافاخ
انتخزٍَ تشُفشج انــ asciiتتخظُض 16خاَح نُتًكٍ
-ascii –double
يٍ قشاءته تاستخذاو يحشس نُظىص
انتخزٍَ تشُفشج انــ asciiتتخظُض 16خاَح نُتًكٍ
-ascii –double –tabs
يٍ قشاءته تاستخذاو يحشس نُظىص يع تشك يسافاخ
- append إضافح انًتغُشاخ إنً انًهف انًىجىد إرا كاٌ َفس االسى
انجذول : 2-6تقسُى انًظفىفاخ حسة األتعاد و انًحتىي
يثال : 1-6
] >> a = [ 1 3 ; 2 4
=a
1 3
2 4
]>>b=[1 2
=b
1 2
>>save mydata.txt –ascii
ػُذ ذُفٍز يا سثك سُالزع َافزج انؼًم ٔ َافزج يدهذ انؼًم انسانً ٔ سُفرر انًهف mydata.txt
فً ذطثٍك انًفكشج ٔ ْزا يثٍٍ تانشكم ( ) 1-6
يثال : 2-6
>> save mydata.mat
>> clear
>> b
Undefined function or variable 'b'.
>> load mydata.mat b
>> b
=b
1 2
>>
زٍث ٌثٍٍ انًثال انساتك أَُا لًُا تسفع انًرغٍشاخ فً يهف ثُائً ثى لًُا تسزف انًرغٍشاخ يٍ
َافزج فضاء انؼًم ٔ يٍ ثى لًُا تاسرؼادج انًرغٍش bفمظ .
) 4 – 6انتعايم يع انًهفاخ
dealing with files :
سنستخدم التوابع التالية للتعامل مع الملفات :
) fclose(FileID
ٌمٕو ْزا انراتغ تإغالق انًهف رٔ انًؼشف . fileID
) A=fread(FileID
ٌمٕو ْزا انراتغ تمشاءج انًهف رٔ انًؼشف ٌ ٔ fileIDسُذ انثٍاَاخ إنى انشؼاع انؼًٕدي .
يثال : 2-6
namelen = 10; % 10 bytes for name
;)’fid = fopen(’marks.bin’, ’w % open for write only
;’?’ = str
)while ˜isempty(str
;) ’str = input( ’Enter name: ’, ’s
)if ˜isempty(str
if length(str) > namelen
name = str(1:namelen); %only first ten chars allowed
else
;name = str
name(length(str)+1:namelen) = ’ ’; %pad with blanks if too short
end
;)fwrite(fid, name
;) ’ mark = input( ’Enter mark:
fwrite(fid, mark, ’float’); % 4 bytes
for mark
end
end
;)fclose(fid
زٍث فً انًثال انساتك لًُا ترخزٌٍ أسًاء ٔ ػالياخ ػذد يٍ انطالب ففً انسطش األٔل
زذدَا انطٕل األػظًً نألسى ب 10أزشف ٔ لًُا تفرر يهف نهكراتح فٍّ ٔ marks.binدخهُا
فً زهمح ششطٓا أال ذكٌٕ انسهسهح فاسغح فإرا كاَد انسهسهح انرً سٍذخهٓا انًسرخذو فاسغح فسٍرى
إَٓاء انسهمح ٔ ػُذيا ٌذخم انًسرخذو االسى فإَُا َفسظّ إرا كاٌ أكثش يٍ 10أزشف فإَُا َكرفً
تأٔل 10أزشف ٔ إرا كاٌ ألم فإَُا ًَأل تمٍح األزشف تفشاغاخ ٔ َكرة األسى nameإنى انًهف
marks.binثى أدخهُا انؼاليح ٔ كرثُاْا إنى انًهف َفسّ ٔ تؼذ إَرٓاء انسهمح َغهك انًهف .
) 4 – 6تًاسٍَ
Exercises :
نٍكٍ نذٌُا يهف ػهى انمشص cتاسى ٌ stn.txtسٕي 10أػًذج يٍ انثٍاَاخ ,األػًذج لًٍٓا يٍ
انًدًٕػح } ٔ , {1,0انًطهٕب كراتح script m-fileيٍ أخم لشاءج ْزِ انثٍاَاخ إنى يظفٕفح
ٔ Rطثاػرٓا ػهى َافزج انخشج تُفس انشكم انًٕخٕد فٍّ فً انًهف ,ثى يٍ انًظفٕفح Rشكم
Mػذد انٕازذاخ يظفٕفح Mتسٍث ٌسٕي كم ػُظش فً انؼًٕد األٔل يٍ انًظفٕفح
انًٕخٕدج فً انسطش انًٕافك يٍ انًظفٕفح ٌ ٔ Rسٕي كم ػُظش فً انؼًٕد انثاًَ 1إرا كاٌ
ػذد انٕازذاخ فً انسطش انًٕافك يٍ انًظفٕفح Rأكثش يٍ أٔ ٌسأي ٔ 7ازذاخ ٔ 0فًٍا ػذا
رنك .
\>> cd c:
;][=>> M
;))M(ind,1)=nnz(R(ind,:
if nnz(R(ind,:))>=7
;M(ind,2)=1
else
;M(ind,2)=0
end
end
- 137 -