العمليات على المصفوفات في MATLAB
العمليات على المصفوفات في MATLAB
ﻣﻼﺣﻈﺔ:
ﺗﺄﺧﺬ ﺍﻻﻗﺘﺮﺍﻧﺎﺕ ﺍﻟﻤﻜﺘﺒﻴﺔ ﺃﻭﻟﻮﻳﺔ ﺑﻌﺪ ﺍﻷﻗﻮﺍﺱ ﻋﻨﺪ ﺗﻨﻔﻴﺬ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺑﻴﺔ.
)sin (a + b) – m / sqrt (d
1 3
2
4
5 ﻳﻜﻮﻥ ﺗﻨﻔﻴﺬ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺑﻴﺔ ﻛﻤﺎ ﻳﻠﻲ:
ﺍﻟﻌﻤﻠﻴﺔ ﺍﻷﻭﻟﻰ :ﺇﻳﺠﺎﺩ ﻗﻴﻤﺔ ﺟﻤﻊ aﻣﻊ .b
ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺜﺎﻧﻴﺔ :ﺇﻳﺠﺎﺩ ﻗﻴﻤﺔ ﺟﻴﺐ ﺍﻟﺰﺍﻭﻳﺔ ﻟﻨﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ ).(1
ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺜﺎﻟﺜﺔ :ﺇﻳﺠﺎﺩ ﻗﻴﻤﺔ ﺍﻟﺠﺬﺭ ﺍﻟﺘﺮﺑﻴﻌﻲ ﻟــ .d
ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺮﺍﺑﻌﺔ :ﺇﻳﺠﺎﺩ ﻧﺎﺗﺞ ﻗﻴﻤﺔ ﻧﺎﺗﺞ ﻗﺴﻤﺔ mﻋﻠﻰ ﻧﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ ).(3
ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺨﺎﻣﺴ ﺔ :ﻁﺮﺡ ﻧﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ ) (4ﻣﻦ ﻧﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ ) (2ﻭﺗﺼ ﺒﺢ ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﻨﻬﺎﺋﻴﺔ ﻛﻤﻴﺔ ﻭﺍﺣﺪﺓ )ﻋﺪﺩﺍ ً
ﻭﺍﺣﺪﺍً(.
ﻣﺜﺎﻝ :ﺗﻤﺜﻞ ﺍﻟﺠﻤﻞ ﺍﻟﺘﺎﻟﻴﺔ ﺇﻗﺘﺮﺍﻧﺎﺕ ﻣﻜﺘﺒﻴﺔ ﻓﻲ ﺍﻟﺠﺒﺮ ﻭﺇﺯﺍﺋﻬﺎ ﻗﻴﻤﺘﻬﺎ ﻓﻲ ﺍﻟﻤﺎﺗﻼﺏ:
ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ :ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺒﺴﻴﻄﺔ )ﺍﻻﻓﻘﻴﺔ( ﻫﻲ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺘﻲ ﺗﺘﻜﻮﻥ ﻣﻦ ﺻﻒ ﻭﺍﺣﺪ ﻭﻋﺪﺓ ﺃﻋﻤﺪﺓ.
-1ﺍﻟﻄﺮﻳﻘﺔ ﺍﻷﻭﻟﻰ ﻟﻜﺘﺎﺑﺔ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺒﺴﻴﻄﺔ:
ﻳﺘﻌﺎﻣﻞ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﻣﻊ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺑﺸ ﻜﻞ ﻣﺒﺎﺷ ﺮ ﻭﺑﻄﺮﻳﻘﺔ ﺳ ﻠﺴ ﻠﺔ ،ﺇﺫ ﺇﻥ ﺇﻧﺸ ﺎء ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ
ﺍﻟﺒﺴ ﻴﻄﺔ ﻳﺘﻢ ﺑﻄﺮﻳﻘﺔ ﺳ ﻬﻠﺔ ﺟﺪﺍً .ﻳﻘﺘﺼ ﺮ ﻛﻞ ﻣﺎ ﻋﻠﻴﻚ ﻹﻧﺸ ﺎء ﻣﺼ ﻔﻮﻓﺔ ﻓﻲ ﻟﻐﺔ ﻣﺎﺗﻼﺏ ﻋﻠﻰ ﺃﻥ ﺗﺒﺪﺃ ﺑﻘﻮﺱ
ﻳﺴ ﺎﺭﻱ ﻣﺮﺑﻊ ﺛﻢ ﺗﺪﺧﻞ ﺍﻟﻘﻴﻢ ﺍﻟﻤﻄﻠﻮﺑﺔ ﺑﻔﺮﺍﻍ ﺃﻭ )ﻓﺎﺭﺯﺓ( ﺛﻢ ﺃﻏﻠﻖ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﺑﻘﻮﺱ ﻳﻤﻴﻨﻲ ﻣﺮﺑﻊ ﺃﻳﻀ ﺎ ً .ﻛﻤﺎ
ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻻﺗﻲ:
ﻣﺜﺎﻝ:
]x = [1, 3, 7, 9, 20
=x
1 3 7 9 20
-2ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺜﺎﻧﻴﺔ ﻟﻜﺘﺎﺑﺔ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺒﺴﻴﻄﺔ:
ﻟﻘﺪ ﻗﻤﻨﺎ ﺳ ﺎﺑﻘﺎ ً ﺑﺈﺩﺧﺎﻝ ﻗﻴﻢ ﻣﺼ ﻔﻮﻓﺔ xﻋﺒﺮ ﻛﺘﺎﺑﺔ ﻛﻞ ﺍﻟﻌﻨﺎﺻ ﺮ ﺿ ﻤﻦ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ،ﻭﻫﻨﺎ ﺍﻷﻣﺮ ﻣﻘﺒﻮﻝ ﻻﻥ
ﺍﻟﻤﺼﻔﻮﻓﺔ xﺗﺤﻮﻱ ﺧﻤﺴﺔ ﻋﻨﺎﺻﺮ ﻓﻘﻂ ،ﻣﺎﺫﺍ ﻟﻮ ﺍﺣﺘﻮﺕ 111ﻋﻨﺼﺮﺍً؟
ﻫﻨﺎﻙ ﻋﺪﺓ ﻁﺮﻕ ﻹﺩﺧﺎﻝ ﻋﻨﺎﺻ ﺮ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ،xﻭﺫﻟﻚ ﺑﺎﺳ ﺘﺨﺪﺍﻡ ﺍﻟﻨﻘﻄﺘﻴﻦ ﺍﻟﻤﺘﻌﺎﻣﺪﺗﻴﻦ ،ﻛﻤﺎ ﻓﻲ ﺍﻷﻣﺜﻠﺔ
ﺍﻻﺗﻴﺔ:
ﻣﺜﺎﻝ ):(1
>> x = (0: 0.1: 1) * pi
=x
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133
2.8274 3.1416
ﻣﺜﺎﻝ ):(2
]>> a = [1: 7
=a
1 2 3 4 5 6 7
1
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ﻣﺜﺎﻝ ):(3
)>> a = (1: 7
=a
1 2 3 4 5 6 7
ﻣﺜﺎﻝ ):(4
>>a = 1: 5 , b = 1: 2: 9
=a
1 2 3 4 5
=b
1 3 5 7 9
ﻣﻼﺣﻈﺔ:
ﻫﻨﺎ ﺗﻢ ﺇﻧﺸ ﺎء ﻣﺼ ﻔﻮﻓﺘﻴﻦ ،ﻭﻟﻜﻦ ﺗﺬﻛﺮ ﺑﺄﻧﻚ ﺗﺴ ﺘﻄﻴﻊ ﺩﻣﺞ ﺍﻟﺘﻌﺒﻴﺮﻳﻦ ﺿ ﻤﻦ ﺳ ﻄﺮ ﻭﺍﺣﺪ ﺇﺫﺍ ﻟﻢ ﺗﻔﺼ ﻞ
ﺑﻔﻮﺍﺻﻞ:
]>> c = [b a
=c
1 3 5 7 9 1 2 3 4 5
ﻭﺑﺬﻟﻚ ﺗﻢ ﺇﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ cﻣﺆﻟﻔﺔ ﻣﻦ ﻋﻨﺎﺻﺮ bﻣﺘﺒﻮﻋﺔ ﺑﻌﻨﺎﺻﺮ .a
ﻣﺜﺎﻝ ):(5
)>> x = linspace (0, pi, 11
ﻋﺪﺩ ﺍﻟﻘﻴﻢ
ﺍﻟﻘﻴﻤﺔ ﺍﻟﻨﻬﺎﺋﻴﺔ ﺍﻟﻘﻴﻤﺔ ﺍﺍﻻﺑﺘﺪﺍﺋﻴﺔ
=x
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133
2.8274 3.1416
ﻣﺜﺎﻝ ):(6
)>> b = linspace (1, 7, 5
=b
1 2.5 4 5.5 7
ً
ﺛﺎﻧﻴﺎ :ﻋﻨﻮﻧﺔ ﺍﳌﺼﻔﻮﻓﺔ ﺍﻟﺒﺴﻴﻄﺔ ﺃﻭ ﺍﻟﻔﻬﺮﺳﺔ )ﻟﻠﻮﺻﻮﻝ ﺍﱃ ﺃﻱ ﻋﻨﺼﺮ ﺩﺍﺧﻞ ﺍﳌﺼﻔﻮﻓﺔ(:
ﻣﺜﺎﻝ:
)y = sin (x 0d x dS
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
2
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ﻋﻨﺪ ﻛﺘﺎﺑﺔ ) sin (xﻓﺄﻥ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﻳﻌﻠﻢ ﺑﺄﻧﻚ ﺗﺮﻳﺪ ﺣﺴ ﺎﺏ ﺍﻟﺠﻴﺐ ﻟﻜﻞ ﻗﻴﻢ xﻭﻳﻘﻮﻡ ﺑﻮﺿ ﻊ
ﺍﻟﻨﺘﺎﺋﺞ ﻓﻲ ﻣﺼﻔﻮﻓﺔ ﺃﺧﺮﻯ ﻫﻲ yﻭﺗﺠﻌﻞ ﻫﺬﻩ ﺍﻹﻣﻜﺎﻧﻴﺔ ﻟﻠﺒﺮﻧﺎﻣﺞ ﻣﺨﺘﻠﻔﺔ ﻋﻦ ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻷﺧﺮﻯ.
3
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ً
ﺛﺎﻟﺜﺎ :ﻛﺘﺎﺑﺔ ﺍﳌﺼﻔﻮﻓﺔ ﺍﻻﻋﺘﻴﺎﺩﻳﺔ:
ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻋﻨﺪ ﻓﺼ ﻞ ﺍﻟﻌﻨﺎﺻ ﺮ ﺑﻔﺮﺍﻏﺎﺕ ﺃﻭ ﺑﻔﻮﺍﺻ ﻞ ﻋﺎﺩﻳﺔ ﻳﺤﺪﺩ ﻋﻨﺎﺻ ﺮ ﻓﻲ ﺃﻋﻤﺪﺓ ﻣﺨﺘﻠﻔﺔ،
ﻓﻲ ﺣﻴﻦ ﺃﻥ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻔﺎﺻﻠﺔ ﺍﻟﻤﻨﻘﻮﻁﺔ ﻳﺠﻌﻞ ﺍﻟﻌﻨﺎﺻﺮ ﻭﺍﻗﻌﺔ ﻓﻲ ﺻﻔﻮﻑ ﻣﺨﺘﻠﻔﺔ.
ﻣﺜﺎﻝ ) :(1ﻋﻨﺪ ﻛﺘﺎﺑﺔ ﻣﺼﻔﻮﻓﺔ ﺍﻓﻘﻴﺔ )ﺑﺴﻴﻄﺔ( )ﻛﻞ ﻋﻨﺼﺮ ﻓﻲ ﻋﻤﻮﺩ( ﺗﻔﺼﻞ ﺍﻻﻋﺪﺍﺩ ﺑﻔﺎﺭﺯﺓ ﺃﻭ ﻓﺮﺍﻍ:
]>> c = [1 2 3 4 5] or c = [1,2,3,4,5
=c
1 2 3 4 5
ﻣﺜﺎﻝ ) :(2ﻋﻨﺪ ﻛﺘﺎﺑﺔ ﻣﺼﻔﻮﻓﺔ ﻋﻤﻮﺩﻳﺔ )ﻛﻞ ﻋﻨﺼﺮ ﻓﻲ ﺻﻒ( ﺗﻔﺼﻞ ﺍﻻﻋﺪﺍﺩ ﺑﻔﺎﺭﺯﺓ ﻣﻨﻘﻮﻁﺔ:
]>> c = [1; 2; 3; 4; 5
=c
1
2
3
4
5
4
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ﻣﺜﺎﻝ ) :(3ﻋﻨﺪ ﻛﺘﺎﺑﺔ ﻣﺼﻔﻮﻓﺔ ﺍﻋﺘﻴﺎﺩﻳﺔ ﺗﺘﻜﻮﻥ ﻣﻦ ﻋﺪﺓ ﺻﻔﻮﻑ ﻭﻋﺪﺓ ﺃﻋﻤﺪﺓ:
]>> g = [1 2 3 4 ; 5 6 7 8] or g = [1,2,3,4;5,6,7,8
ﺗﻨﺰﻳﻞ ﺻﻒ ﺁﺧﺮ
=g
1 2 3 4 ﻣﺼﻔﻮﻓﺔ ﻣﺘﻜﻮﻧﺔ ﻣﻦ ﺻﻔﻴﻦ ﻭﺃﺭﺑﻌﺔ ﺃﻋﻤﺪﺓ
5 6 7 8
ﻣﺜﺎﻝ ) :(4ﻁﺮﻳﻘﺔ ﺃﺧﺮﻯ ﻟﻜﺘﺎﺑﺔ ﻣﺼ ﻔﻮﻓﺔ ﺍﻋﺘﻴﺎﺩﻳﺔ ﺗﺘﻜﻮﻥ ﻣﻦ ﻋﺪﺓ ﺻ ﻔﻮﻑ ﻭﻋﺪﺓ ﺃﻋﻤﺪﺓ) :ﻋﻨﺪ ﺿ ﻐﻂ
ﻣﻔﺘﺎﺡ Enterﻧﺨﺒﺮ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﺑﺄﻥ ﻳﻨﺘﻘﻞ ﺇﻟﻰ ﺻﻒ ﺟﺪﻳﺪ ﺃﺛﻨﺎء ﺇﺩﺧﺎﻝ ﻗﻴﻢ ﺍﻟﻤﺼﻔﻮﻓﺔ(.
>> g = [1 2 3 4
5 6 7 8
]9 10 11 12
ﻣﺜﺎﻝ ) :(9ﻁﺮﻳﻘﺔ ﺃﺧﺮﻯ ﻟﻜﺘﺎﺑﺔ ﻣﺼﻔﻮﻓﺔ ﺍﻋﺘﻴﺎﺩﻳﺔ ﺗﺘﻜﻮﻥ ﻣﻦ ﻋﺪﺓ ﺻﻔﻮﻑ ﻭﻋﺪﺓ ﺃﻋﻤﺪﺓ:
]>> 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
ﻣﺜﺎﻝ ) :(5ﻋﻨﺪﻣﺎ ﻳﻜﻮﻥ ﻋﺪﺩ ﺍﻻﻋﻤﺪﺓ ﻏﻴﺮ ﻣﺘﺴﺎﻭﻱ ﺳﻮﻑ ﻳﻜﻮﻥ ﺍﻟﻨﺎﺗﺞ Error
]>> h = [1 2 3 ; 4 5 6 7
Error ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﻏﻴﺮ ﻣﺘﺴﺎﻭﻳﺔ
ﻣﺜﺎﻝ ) :(6ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﺗﺴﺘﺨﺪﻡ ﺇﺷﺎﺭﺓ ﺍﻟﻤﻨﻘﻮﻝ )ﺍﻟﻤﺪﻭﺭ( )'( ﻟﺘﺤﻮﻳﻞ ﺻﻔﻮﻑ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﻰ
ﺃﻋﻤﺪﺓ ﻭﺑﺎﻟﻌﻜﺲ ﻛﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻻﺗﻲ.
>> a = 1: 5
=a
1 2 3 4 5
'>> b = a
=b
1
2
3
4
5
'>> c=b
=c
1 2 3 4 5
5
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ﻣﻼﺣﻈﺔ :ﻋﻨﺪﻣﺎ ﻧﺮﻳﺪ ﺍﻧﺸ ﺎء ﻣﺼ ﻔﻮﻓﺔ ﺟﺪﻳﺪﺓ ﺑﻨﻔﺲ ﻋﻨﺎﺻ ﺮ ﻣﺼ ﻔﻮﻓﺔ ﻗﺪﻳﻤﺔ ﻧﺴ ﺘﺨﺪﻡ ﺇﺷ ﺎﺭﺓ ﺍﻟﻤﺴ ﺎﻭﺍﺓ
ﻛﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻻﺗﻲ:
ﻣﺜﺎﻝ ):(7
;>> k = b
=k
1
2
3
4
5
ً
ﺭﺍﺑﻌﺎ :ﻋﻨﻮﻧﺔ ﺍﳌﺼﻔﻮﻓﺔ ﺍﻻﻋﺘﻴﺎﺩﻳﺔ ﺃﻭ ﺍﻟﻔﻬﺮﺳﺔ )ﻟﻠﻮﺻﻮﻝ ﺍﱃ ﺃﻱ ﻋﻨﺼﺮ ﺃﻭ ﻣﺼﻔﻮﻓﺔ(:
ﻣﺜﺎﻝ ):(1
]>> 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 ﺍﻟﺼ ﻒ ﻭﻣﻦ ﺛﻢ ﻓﺎﺭﺯﺓ ﻭﺑﻌﺪﻫﺎ ﺭﻗﻢ ﺍﻟﻌﻤﻮﺩ ﻭﻧﻐﻠﻖ
ﺍﻟﻘﻮﺱ ﺍﻟﺪﺍﺋﺮﻱ ﻛﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻻﺗﻲ:
)>> c (12 ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺜﺎﻧﻴﺔ :ﺗﻘﺪﻡ ﻟﻐﺔ ﺍﻟﻤﺎﺗﻼﺏ ﻁﺮﻳﻘﺔ ﺃﺧﺮﻯ
= ans ﻟﻺﺷ ﺎﺭﺓ ﺇﻟﻰ ﻋﻨﺎﺻ ﺮ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﺑﺎﺳ ﺘﺨﺪﺍﻡ ﺭﻗﻢ
4 ﻭﺍ ﺣﺪ ﻓﻘﻂ ،ﻭﻟﻔﻬﻢ ﻫﺬﻩ ﺍﻟﻄﺮﻳ ﻘﺔ ﻳ ﺠﺐ ﺍﻟﺘﺨ ﻴﻞ ﺑﺄﻥ
ﺟﻤﻴﻊ ﻋﻨﺎﺻﺮ ﺍﻟﻤﺼﻔﻮﻓﺔ ﻣﺮﺗﺒﺔ ﺑﺸﻜﻞ ﻋﻤﻮﺩ ﻭﺍﺣﺪ
ﻣﻜﻮﻥ ﻣﻦ ﺃﻋﻤﺪﺓ ﺍﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ ﺍﻷﻋﻠﻰ ﺇﻟﻰ ﺍﻷﺳﻔﻞ
)ﺃﻱ ﻋ ﻨﺎﺻ ﺮ ﺍﻟﻌﻤﻮﺩ ﺍﻷﻭﻝ ﺛﻢ ﺍﻟ ﺜﺎﻧﻲ ﺛﻢ ﺍﻟ ﺜﺎ ﻟﺚ
ﻭﻫﻜﺬﺍ(.
)>> c(1:2,1:3 ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺜﺎﻟﺜﺔ :ﻟﻠﻮﺻ ﻮﻝ ﺍﻟﻰ ﻣﺼ ﻔﻮﻓﺔ ﺗﺒﺪﺃ ﻣﻦ
= ans ﺍﻟﺼﻒ ﺍﻷﻭﻝ ﺍﻟﻰ ﺍﻟﺼﻒ ﺍﻟﺜﺎﻧﻲ ﻭﻣﻦ ﺍﻟﻌﻤﻮﺩ ﺍﻷﻭﻝ
1 2 3 ﺍﻟﻰ ﺍﻟﻌﻤﻮﺩ ﺍﻟﺜﺎﻟﺚ ﻣﻦ ﺍﻟﻤﺼﻔﻮﻓﺔ .c
2 4 6
)>> c(1:2,: ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺮﺍﺑﻌﺔ :ﻟﻠﻮﺻ ﻮﻝ ﺍﻟﻰ ﻣﺼ ﻔﻮﻓﺔ ﺗﺒﺪﺃ ﻣﻦ
= ans ﺍﻟﺼﻒ ﺍﻷﻭﻝ ﺍﻟﻰ ﺍﻟﺼﻒ ﺍﻟﺜﺎﻧﻲ ﻭﻟﻜﻞ ﺍﻻﻋﻤﺪﺓ ﻣﻦ
1 2 3 4 5 ﺍﻟﻤﺼ ﻔﻮﻓﺔ .cﺇﺫ ﺍﺳ ﺘﺨﺪﻣﻨﺎ ﺍﻟﻨﻘﻄﺘﻴﻦ ﺍﻟﻤﺘﻌﺎﻣﺪﺗﻴﻦ
2 4 6 8 10 ﻟﻺﺷﺎﺭﺓ ﺍﻟﻰ ﻛﻞ ﺍﻻﻋﻤﺪﺓ.
6
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
7
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
8
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
1 1 1 1
1 1 1 1
1 1 1 1
ﻣﻼﺣﻈﺔ :ﻋﻨﺪﻣﺎ ﻳﺘﺒﻊ ﺍﺳ ﻢ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﺍﻟﻘﻴﺎﺳ ﻴﺔ ﺑﺮﻗﻢ ﻣﻔﺮﺩ ﻣﺜﻞ ) ones (nﺃﻭ ) zeros (nﻓﺄﻥ ﺑﺮﻧﺎﻣﺞ
ﺍﻟﻤﺎﺗﻼﺏ ﻳﻨﺸﺊ ﻣﺼﻔﻮﻓﺎﺕ ﻣﺮﺑﻌﺔ n u nﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺃﺻﻔﺎﺭﺍ ﺃﻭ ﻭﺍﺣﺪﻳﻪ ﻋﻠﻰ ﺍﻟﺘﺮﺗﻴﺐ.
ﻣﺜﺎﻝ ) :(5ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻋﺸﻮﺍﺋﻴﺔ ﺍﻟﻘﻴﻢ ﻧﺴﺘﺨﺪﻡ ﺍﻻﻣﺮ ):(rand
)>> rand (3
= ans
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
)>> rand (1, 5
9
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ﻣﻼﺣﻈﺔ :ﻳﻤﻜﻦ ﺃﻥ ﺗﻜﻮﻥ dﻣﺼﻔﻮﻓﺔ ﻓﺘﻜﻮﻥ ﺣﻴﻨﺌﺬ ﺗﻜﺮﺍﺭ ﻣﺼﻔﻮﻓﺎﺕ ﻭﻟﻴﺲ ﻗﻴﻢ ﻛﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ):(8
ﻣﺜﺎﻝ ):(8
]>> d = [4,2,1;5,9,7
=d
4 2 1
5 9 7
)>> repmat (d,2,3 )ﺗﻜﺮﺍﺭ ﺍﻟﻤﺼﻔﻮﻓﺔ dﺑﺎﻷﺑﻌﺎﺩ (2 u 3
= ans
4 2 1 4 2 1 4 2 1
5 9 7 5 9 7 5 9 7
4 2 1 4 2 1 4 2 1
5 9 7 5 9 7 5 9 7
ﻣﺜﺎﻝ ) :(9ﺑﻌﺾ ﺍﻟﻌﻤﻠﻴﺎﺕ ﻋﻠﻰ ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﻘﻴﺎﺳﻴﺔ:
;>> d = pi
)>> d * ones (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
)>> 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
ً
ﺳﺎﺩﺳﺎ :ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﳌﺼﻔﻮﻓﺎﺕ:
ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ :ﻟﻘﺪ ﺍﻣﺘﻠﻚ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻄﺮﻕ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ،ﻭﻛﺎﻧﺖ ﻫﺬﻩ
ﺍﻟﺨﺎﺻ ﻴﺔ ﻫﻲ ﺃﻫﻢ ﻣﻤﻴﺰﺍﺕ ﺍﻟﺒﺮﻧﺎﻣﺞ ،ﻓﻤﺎ ﺇﻥ ﺗ ُ ﺤﺪّﺩ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﺣﺘﻰ ﻳﺰﻭﺩﻙ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺑﺄﻗﻮﻯ ﻁﺮﻕ
ﺍﻹﺩﺧﺎﻝ ،ﺍﻟﺘﻮﺳ ﻌﺔ ﺃﻭ ﺇﻋﺎﺩﺓ ﺗﺮﺗﻴﺐ ﺑﻌﺾ ﺃﺟﺰﺍء ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﻋﺒﺮ ﺍﺳ ﺘﻌﻤﺎﻝ ﺗﻌﺎﺑﻴﺮ ﺃﻭ ﺗﻌﻠﻴﻤﺎﺕ ﻣﺤﺪﺩﺓ
ﻭﻣﻤﺘﻌﺔ ،ﻭﺗﻌﺘﺒﺮ ﻣﻌﺮﻓﺔ ﻫﺬﻩ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻣﻔﺘﺎﺡ ﺍﻻﺳ ﺘﻌﻤﺎﻝ ﺍﻟﻔﻌﺎﻝ ﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﻭﻟﺸ ﺮﺡ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ
ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﻧﺄﺧﺬ ﺍﻷﻣﺜﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ:
ﻣﺜﺎﻝ ):(1
]>> A = [1 2 3; 4 5 6; 7 8 9
=A
1 2 3
10
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
4 5 6
7 8 9
>> A (3, 3) = 0 ﻣﻼﺣ ﻈﺔ :ﻟﺠ ﻌﻞ ﺍﻟﻌﻨﺼ ﺮ ﺍﻟﻤﻮﺟﻮﺩ ﻓﻲ ﺍﻟﺼ ﻒ
=A ﺍﻟﺜﺎﻟﺚ ﻭﻓﻲ ﺍﻟﻌﻤﻮﺩ ﺍﻟﺜﺎﻟﺚ ﻳﺴﺎﻭﻱ ﺻﻔﺮ
1 2 3
4 5 6
7 8 0
>> A (2, 6) = 1 ﻣﻼﺣﻈﺔ :ﺟﻌﻞ ﺍﻟﻌﻨﺼﺮ ﻓﻲ ﺍﻟﻤﻮﻗﻊ ) (2, 6ﺗﻜﻮﻥ 1
=A ﻭﺑﻤﺎ ﺍﻥ ﺍﻟﻤﺼ ﻔﻮﻓﺔ 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 4
1 2 3 4 0 0
4 5 6 4 0 1
7 8 0 4 0 0
]>> A (:, 4) = [4 4 4 ﻣﻼﺣﻈﺔ :ﺑﺴﺒﺐ ﻋﺪﻡ ﻭﺟﻮﺩ ﻓﺎﺭﺯﺓ ﻣﻨﻘﻮﻁﺔ
Error
ﻣﺜﺎﻝ ):(2
>> A = [1 ]2 3; 4 5 6; 7 8 9 ]>> B = [7 8 9; 4 5 6; 1 2 3
=A =B
1 2 3 7 8 9
4 5 6 4 5 6
7 8 9 1 2 3
>> C = [A ])]B(:, [1 3 ﻣﻼﺣﻈﺔ :ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ ﺍﻟﻤﺼﻔﻮﻓﺔ Cﻋﺒﺮ ﺗﻮﺳﻴﻊ
=C ﺍﻟﻤﺼ ﻔﻮﻓﺔ Aﺑﺈﺿ ﺎﻓﺔ ﺍﻟﻌﻤﻮﺩﻳﻦ ﺍﻷﻭﻝ ﻭﺍﻟﺜﺎﻟﺚ ﻣﻦ
1 2 3 7 9 ﺍﻟﻤﺼﻔﻮﻓﺔ B
4 5 6 4 6
7 8 9 1 3
11
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
12
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
1 4 7 2 5 8 3 6 9
'>> C = B ﻣﻼﺣﻈﺔ :ﻹﻳﺠﺎﺩ ﻣﻨﻘﻮﻝ )ﻣﺪﻭﺭ( ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﻭﺇﻋﺎﺩﺓ
=C ﺗﺸﻜﻴﻠﻬﺎ ﺑﺎﻷﻣﺮ .reshape
1 4 7
2 5 8
3 6 9
] [ = )>> B (:, 2 ﻣﻼﺣﻈ ﺔ ﻣﻬﻤ ﺔ :ﺗﺴ ﺘﺨ ﺪﻡ ﺍﻹﺷ ﺎﺭﺓ ][ ﻟﻐﺮﺽ
=B ﺍﻟﺤﺬﻑ ،ﺗﻤﺖ ﺇﻋﺎﺩﺓ ﺻ ﻴﺎﻏﺔ ﺍﻟﻤﺼ ﻔﻮﻓﺔ Bﻋﺒﺮ
1 3 ﺣﺬﻑ ﻛﻞ ﺻ ﻔﻮﻑ ﺍﻟﻌﻤﻮﺩ ﺍﻟﺜﺎﻧﻲ ﻣﻦ ﺍﻟﻤﺼ ﻔﻮﻓﺔ
4 6 Bﺍﻷﺻ ﻠﻴﺔ ،ﻭﻋﻨﺪﻣﺎ ﺗﻀ ﻊ ﺃﻱ ﻋﻨﺼ ﺮ ﻣﺴ ﺎﻭﻳﺎ ً
7 9 ﻟﻠﻤﺼ ﻔﻮﻓﺔ ﺍﻟﻔﺎﺭﻏﺔ ][ ،ﻓﻬﺬﺍ ﻳﻌﻨﻲ ﺃﻧﻚ ﺗﺮﻳﺪ ﺣﺬﻓﻬﺎ
] [ = )>> B (3,: ﻣﻦ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﻭﺗﻘﻠﻴﺼ ﻬﺎ ﻟﺘﺤﺎﻓﻆ ﻋﻠﻰ ﺍﻟﻌﻨﺎﺻ ﺮ
=B ﺍﻟﻤﺘﺒﻘﻴﺔ ﺑﻌﺪ ﺍﻟﺤﺬﻑ .ﻭﻣﻦ ﺛﻢ ﺗﻤﺖ ﺇﻋﺎﺩﺓ ﺻ ﻴﺎﻏﺔ
1 2 3 ﺍﻟﻤﺼ ﻔﻮﻓﺔ Bﻋﺒﺮ ﺣﺬﻑ ﻛﻞ ﺍﻋﻤﺪﺓ ﺍﻟﺼ ﻒ ﺍﻟﺜﺎﻟﺚ
4 5 6 ﻣﻦ ﺍﻟﻤﺼﻔﻮﻓﺔ Bﺍﻷﺻﻠﻴﺔ.
]C=[2,9,10 ﻣﻼﺣﻈ ﺔ :ﻻﺳ ﺘﺒ ﺪﺍﻝ ﻋﻨ ﺎﺻ ﺮ ﺍﻟﺼ ﻒ ﺍﻟﺜ ﺎﻧﻲ
=C ﻟﻠﻤﺼﻔﻮﻓﺔ Bﺑﺎﻟﻤﺼﻔﻮﻓﺔ C
2 9 10
>> B(2,:)=C
=B
1 2 3
2 9 10
7 8 9
)>> diag(B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴ ﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ diagﻹﻳﺠﺎﺩ
= ans ﻋﻨﺎﺻﺮ ﺍﻟﻘﻄﺮ ﺍﻟﺮﺋﻴﺴﻲ ﻟﻠﻤﺼﻔﻮﻓﺔ.
1
5
9
)>> flipud(B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴ ﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ flipudﻟﻘﻠﺐ
= ans ﺍﻟﻤﺼﻔﻮﻓﺔ Up – Down
7 8 9
4 5 6
1 2 3
)>> fliplr(B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴ ﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ fliplrﻟﻘﻠﺐ
= ans ﺍﻟﻤﺼﻔﻮﻓﺔ left – right
3 2 1
13
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
6 5 4
9 8 7
)>> triu(B ﻣﻼﺣﻈ ﺔ ﻣﻬﻤ ﺔ ﺟ ﺪﺍً :ﻳﺴ ﺘﺨ ﺪﻡ ﺍﻻﻳﻌ ﺎﺯ triu
= ans ﻻﺳﺘﺨﻼﺹ ﺍﻟﺠﺰء ﺍﻟﻤﺜﻠﻴﺔ ﺍﻟﻌﻠﻴﺎ.
1 2 3
0 5 6
0 0 9
)>> tril(B ﻣﻼﺣﻈ ﺔ ﻣﻬﻤ ﺔ ﺟ ﺪﺍً :ﻳﺴ ﺘﺨ ﺪﻡ ﺍﻻﻳﻌ ﺎﺯ tril
= ans ﻻﺳﺘﺨﻼﺹ ﺍﻟﺠﺰء ﺍﻟﻤﺜﻠﻴﺔ ﺍﻟﺴﻔﻠﻰ.
1 0 0
4 5 0
7 8 9
)>> det(B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴ ﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ detﻟﺤﺴ ﺎﺏ
= ans ﻣﺤﺪﺩ ﺍﻟﻤﺼﻔﻮﻓﺔ )ﻗﻴﻤﺔ(.
6.6613e-16
)>> inv(B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴ ﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ invﻟﺤﺴ ﺎﺏ
= ans ﻣﻌﻜﻮﺱ ﺍﻟﻤﺼﻔﻮﻓﺔ )ﻗﻴﻤﺔ(.
1.0e+16
-0.4504 0.9007 -0.4504
0.9007 -1.8014 0.9007
-0.4504 0.9007 -0.4504
)>> eig(B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴ ﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ eigﻟﺤﺴ ﺎﺏ
= ans ﺍﻟﻘﻴﻢ ﺍﻟﺬﺍﺗﻴﺔ ﺍﻟﻤﺼﻔﻮﻓﺔ.
16.1168
-1.1168
-0.0000
)>> trace (B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ traceﻟﺤﺴﺎﺏ
= ans ﻣﺠﻤﻮﻉ ﻋﻨﺎﺻﺮ ﺍﻟﻘﻄﺮ ﺍﻟﺮﺋﻴﺴﻲ.
15
ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﺇﺫﺍ ﺃﺭﺩﺕ ﺃﻥ ﺗﻌﺮﻑ ﺣﺠﻢ ﺃﻭ ﺑﻌﺪ ﻣﺼ ﻔﻮﻓﺔ ﺃﺣﺎﺩﻳﺔ ﺃﻭ ﺛﻨﺎﺋﻴﺔ ﺃﻭ ﺛﻼﺛﻴﺔ ﺍﻟﺒﻌﺪ ﻏﻴﺮ
ﻣﻌﺮﻭﻓﻴﻦ ﻭﻛﻨﺖ ﺑﺤﺎﺟﺔ ﻟﺤﺠﻤﻬﺎ ﻹﺟﺮﺍء ﺑﻌﺾ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺮﻳﺎﺿ ﻴﺔ ،ﻓﺎﻥ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﻳﻤﻜﻨﻚ ﻣﻦ
ﺧﻼﻝ ﺍﻻﻳﻌﺎﺯ lengthﻭ sizeﻭ numelﻭﺍﻟﻴﻚ ﺍﻷﻣﺜﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ:
)>> size(B ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﺴ ﺘﺨﺪﻡ ﺍﻻﻳﻌﺎﺯ sizeﻹﻳﺠﺎﺩ
= ans ﺣﺠﻢ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﺇﺫ ﻳﻌﺒﺮ ﺍﻟﻌﻨﺼ ﺮ ﺍﻷﻭﻝ ﻋﻦ ﻋﺪﺩ
3 3 ﺍﻟﺼ ﻔﻮﻑ) (3ﺑﻴﻨﻤﺎ ﻳﻌﻄﻲ ﺍﻟﻌﻨﺼ ﺮ ﺍﻟﺜﺎﻧﻲ ﻋﺪﺩ
)>> [r, c] = size (B ﺍﻷﻋﻤﺪﺓ ).(3
14
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
=r
3
=c
3
)>> numel(B ﻣﻼﺣﻈ ﺔ ﻣﻬﻤ ﺔ ﺟ ﺪﺍً :ﻳﺴ ﺘﺨ ﺪﻡ ﺍﻻﻳﻌ ﺎﺯ numel
= ans ﻹﻳﺠﺎﺩ ﺍﻟﻌﺪﺩ ﺍﻟﻜﻠﻲ ﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﺼﻔﻮﻓﺔ.
9
)>> length(B ﻣﻼﺣﻈ ﺔ ﻣﻬﻤ ﺔ ﺟ ﺪﺍً :ﻳﺴ ﺘﺨ ﺪﻡ ﺍﻻﻳﻌ ﺎﺯ length
= ans ﻹﻳﺠﺎﺩ ﻋﺪﺩ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﻮﺟﻮﺩﺓ ﺿﻤﻦ ﺍﻟﺒﻌﺪ ﺍﻷﻁﻮﻝ
3 ﻟﻠﻤﺼﻔﻮﻓﺔ.
ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ :ﻫﻨﺎﻙ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ ﺍﻟﻨﺎﺗﺠﺔ ﻋﻦ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ .ﻛﻤﺎ ﻳﻤﻜﻦ ﺃﻳﻀ ﺎ ً ﺍﺳ ﺘﺨﺪﺍﻡ
ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ ﺇﺫﺍ ﻛﺎﻥ ﺣﺠﻤﻬﺎ ﻣﺴ ﺎﻭﻳﺎ ﻟﺤﺠﻢ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺍﻟﻤﻌﻨﻮﻧﺔ ،ﻭﻳﺘﻢ ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ﺍﻹﺑﻘﺎء
ﻋﻠﻰ ﺍﻟﻌﻨﺎﺻﺮ ﺫﺍﺕ ﺍﻟﻘﻴﻤﺔ ) (1ﺃﻱ trueﻭﻫﻲ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﺤﻘﻘﺔ ﻟﻠﺸﺮﻁ ﺑﻴﻨﻤﺎ ﻳﺘﺠﺎﻫﻞ ﺍﻟﻌﻨﺎﺻﺮ ) (0ﺃﻱ
falseﻭﻫﻲ ﺍﻟﻌﻨﺎﺻﺮ ﻏﻴﺮ ﺍﻟﻤﺤﻘﻘﺔ ﺍﻟﺸﺮﻁ .ﻭﻟﻨﺄﺧﺬ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ:
ﻣﺜﺎﻝ ):(4
>> x = -3: 3
=x
-3 -2 -1 0 1 2 3
>> abs (x) > 1
= ans
1 1 0 0 0 1 1
)>> y = x (abs (x) > 1 ﻫﻨﺎ ﺗﻢ ﺇﻧﺸ ﺎء ﺍﻟﻤﺼ ﻔﻮﻓﺔ yﻣﻦ ﺗﻠﻚ ﺍﻟﻌﻨﺎﺻ ﺮ ﻣﻦ
=y ﺍﻟﻤﺼﻔﻮﻓﺔ xﺍﻟﺘﻲ ﻗﻴﻤﺘﻬﺎ ﺃﻛﺒﺮ ﻣﻦ ﺍﻟﻮﺍﺣﺪ.
-3 -2 2 3
ﻣﺜﺎﻝ ) :(5ﻭﻳﻤﻜﻦ ﺍﻟﻌﻤﻞ ﻣﻊ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺍﻟﺜﻨﺎﺋﻴﺔ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻛﻤﺎ ﻋﻤﻠﻨﺎ ﻣﻊ ﺍﻷﺣﺎﺩﻳﺔ ﺍﻟﻤﻨﻄﻘﻴﺔ ،ﻛﻤﺎ ﻓﻲ
ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ:
]>> B = [5 -3; 2 -4
=B
5 -3
2 -4
>> x = abs (B) > 2
=x
1 1
0 1
15
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
ً
ﺳﺎﺑﻌﺎ :ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﳊﺴﺎﺑﻴﺔ ﺑﲔ ﺍﳌﺼﻔﻮﻓﺔ ﻭﺍﻟﻌﺪﺩ ﺍﳌﻔﺮﺩ:
ﺗﺠﺮﻱ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤ ﺴﺎﺑﻴﺔ ﻛﻌﻤﻠﻴﺔ ﺍﻹ ﺿﺎﻓﺔ ﻭﺍﻟﻄﺮﺡ ﻭﺍﻟ ﻀﺮﺏ ﻭﺍﻟﻘ ﺴﻤﺔ ﺑﻴﻦ ﺍﻟﻌﺪﺩ ﺍﻟﻤﻔﺮﺩ
ﻭﺑﻴﻦ ﺟﻤﻴﻊ ﻋﻨﺎﺻﺮ ﺍﻟﻤﺼﻔﻮﻓﺔ.
ﻣﺜﺎﻝ ):(1
=g
1 2 3 4
5 6 7 8
9 10 11 12
>> g-2 ﻁﺮﺡ ﻣﻦ ﻛﻞ ﻋﻨﺼ ﺮ ﻣﻦ ﻋﻨﺎﺻ ﺮ ﻣﻼﺣﻈﺔ :ﻫﻨﺎ ُ
= ans ﺍﻟﻤﺼﻔﻮﻓﺔ gﺍﻟﻌﺪﺩ .2
-1 0 1 2
3 4 5 6
7 8 9 10
>> 2 * g – 1 ﻣﻼﺣﻈﺔ :ﻫﻨﺎ ﺗﻢ ﺿ ﺮﺏ ﻛﻞ ﻋﻨﺼ ﺮ ﻣﻦ ﻋﻨﺎﺻ ﺮ
= ans ﻁﺮﺡ ﻣﻦ ﻛﻞ ﻋﻨﺼ ﺮ ﺍﻟﻤﺼ ﻔﻮﻓﺔ gﺑﺎﻟﻌﺪﺩ ،2ﺛﻢ ُ
1 3 5 7
ﻣﻦ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻨﺎﺗﺠﺔ ﺍﻟﺮﻗﻢ .1
9 11 13 15
17 19 21 23
>> 2 * g / 5 + 1 ﺿ ﺮﺏ ﻛﻞ ﻣﻼﺣ ﻈﺔ :ﺃ ﻣﺎ ﻓﻲ ﻫﺬﻩ ﺍﻟ ﺤﺎ ﻟﺔ ،ﻓ ﻘﺪ ُ
= ans ﻋﻨﺼ ﺮ ﻣﻦ ﻋﻨﺎﺻ ﺮ ﺍﻟﻤﺼ ﻔﻮﻓﺔ gﺑﺎﻟﻌﺪﺩ ،2ﺛﻢ
1.4 1.8 2.2 2.6
ﺴ ﻢ ﺍﻟﻨﺎﺗﺞ ﻋﻠﻰ ﺍﻟﻌﺪﺩ 5ﻭﺑﻌﺪﻫﺎ ﺃُﺿ ﻴﻒ ﻟﻬﺎ ﻗُ ّ
3 3.4 3.8 4.2
4.6 5 5.4 5.8 ﺍﻟﻮﺍﺣﺪ.
ً
ﺛﺎﻣﻨﺎ :ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﳊﺴﺎﺑﻴﺔ ﺑﲔ ﺍﳌﺼﻔﻮﻓﺎﺕ:
ﻻ ﺗﻌﺘﺒﺮ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴ ﺎﺑﻴﺔ ﺑﻴﻦ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺑﺴ ﻴﻄﺔ ﺗﻤﺎﻣﺎ ً ﻣﺜﻞ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴ ﺎﺑﻴﺔ ﺍﻟﻤﺠﺮﺍﺓ ﺑﻴﻦ
ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﻭﺍﻷﻋﺪﺍﺩ ﺍﻟﻤﻔﺮﺩﺓ .ﻭﺑﺸ ﻜﻞ ﺃﻭﺿ ﺢ ،ﻓﺎﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴ ﺎﺑﻴﺔ ﺍﻟﻤﺠﺮﺍﺓ ﺑﻴﻦ ﻣﺼ ﻔﻮﻓﺎﺕ ﻣﺨﺘﻠﻔﺔ ﺍﻷﺑﻌﺎﺩ
ﻭﺍﻟﺤﺠﻮﻡ ﺗﻌﺪ ﻋﻤﻠﻴﺎﺕ ﺻ ﻌﺒﺔ ﺍﻟﺘﺤﺪﻳﺪ ،ﻭﺗﻌﺪ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴ ﺎﺑﻴﺔ ﻋﻠﻰ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﻣﺘﺴ ﺎﻭﻳﺔ ﺍﻷﺑﻌﺎﺩ ﻣﻦ ﺟﻤﻊ
ﻭﻁﺮﺡ ﻭﺿﺮﺏ ﻭﻗﺴﻤﺔ ﻣﻦ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻷﺳﺎﺳﻴﺔ ﻓﻲ ﻟﻐﺔ ﺍﻟﻤﺎﺗﻼﺏ ﻭﺍﻟﻴﻚ ﺍﻷﻣﺜﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ:
ﻣﺜﺎﻝ ):(1
]>> g=[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
=g =h
16
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
>> 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
12 14 16 18
ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻻﺣﻆ ﺃﻳﻀ ﺎ ً ﺑﺄﻥ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴ ﺎﺑﻴﺔ ﺑﻴﻦ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺗﻌﺘﻤﺪ ﻧﻔﺲ ﺗﺴ ﻠﺴ ﻞ ﺃﺳ ﺒﻘﻴﺔ
ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﻤﻌﺘﻤﺪ ﻋﻨﺪ ﺇﺟﺮﺍء ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴ ﺎﺑﻴﺔ ﻋﻠﻰ ﺍﻷﻋﺪﺍﺩ ﺍﻟﻤﻔﺮﺩﺓ ،ﻭﻳﻤﻜﻦ ﺃﻳﻀ ﺎ ً ﺍﺳ ﺘﺨﺪﺍﻡ ﺍﻷﻗﻮﺍﺱ
ﻟﻜﺴﺮ ﺗﻠﻚ ﺍﻷﻭﻟﻮﻳﺔ .ﻛﻤﺎ ﻭﻳﻤﻜﻦ ﺿﺮﺏ ﻛﻞ ﻋﻨﺼﺮ ﺑﺎﻟﻌﻨﺼﺮ ﺍﻟﻤﻨﺎﻅﺮ ﻟﻪ ﻣﻦ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻷﺧﺮﻯ ﺃﻭ ﻗﺴﻤﺘﻪ
ﺷﺮﻁ ﺇﻥ ﺗُﺴﺒﻖ ﺇﺷﺎﺭﺓ ﺍﻟﻀﺮﺏ ﺃﻭ ﺍﻟﻘﺴﻤﺔ ﺑﻨﻘﻄﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻻﺗﻲ:
>> g .* h ﻭﻟﻘﺪ ﻗﻤﻨﺎ ﻫﻨﺎ ﺑﻀ ﺮﺏ ﺍﻟﻤﺼ ﻔﻮﻓﺔ gﺑﺎﻟﻤﺼ ﻔﻮﻓﺔ h
= ans ﻋﻨﺼ ﺮ ﺑﻌﻨﺼ ﺮ ﻋﺒﺮ ﺍﺳ ﺘﺨﺪﺍﻡ ﺇﺷ ﺎﺭﺓ ﺍﻟﻀ ﺮﺏ
1 2 3 4 ﺍﻟﻤﺴﺒﻮﻗﺔ ﺑﻨﻘﻄﺔ.
10 12 14 16
27 30 33 36
>> 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
ﻋﻨﺼ ﺮﺍ ﺑﻌﻨﺼ ﺮ .ﺃﻣﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﻟﻘﺴ ﻤﺔ ﺑﺪﻭﻥ ﻧﻘﻄﺔ،
ﻓﺈﻧﻨﺎ ﺳﺘﺤﺪﺩ ﻗﺴﻤﺔ ﻣﺼﻔﻮﻓﺎﺕ ﻋﺎﺩﻳﺔ.
17
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
18
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
3
3
=j
1
2
3
ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً :ﻳﻮﻓﺮ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﺍﻟﺪﺍﻟﺘﻴﻦ min ، maxﺍﻟﺬﻳﻦ ﻳﻮﺟﺪﺍﻥ ﺃﻛﺒﺮ ﻭﺃﺻ ﻐﺮ ﻋﻨﺼ ﺮ
ﻓﻲ ﺍﻟﻤﺼﻔﻮﻓﺔ ﻭﻣﻮﺍﻗﻌﻬﻤﺎ .ﻓﻔﻲ ﺣﺎﻟﺔ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻷﺣﺎﺩﻳﺔ:
ﻣﺜﺎﻝ ):(2
)>> 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
ﻣﺜﺎﻝ ) :(3ﻓﻲ ﺣﺎﻟﺔ ﻛﻮﻥ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺛﻨﺎﺋﻴﺔ ﺍﻟﺒﻌﺪ:
)>> A = rand (4, 6
=A
0.8147 0.6324 0.9575 0.9572 0.4218 0.6557
0.9058 0.0975 0.9649 0.4854 0.9157 0.0357
0.1270 0.2785 0.1576 0.8003 0.7922 0.8491
0.9134 0.5469 0.9706 0.1419 0.9595 0.9340
)>> [mx, r] = max (A
19
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
= mx
0.9134 0.6324 0.9706 0.9572 0.9595 0.9340
=r
4 1 4 1 4 4
)'>> max (A ﻹﻳﺠﺎﺩ ﺃﻛﺒﺮ ﻋﻨﺼﺮ ﻟﻜﻞ ﺳﻄﺮ
= ans
0.9575 0.9649 0.8491 0.9706
))>> [mmx, i] = max (A (: ﻹﻳﺠﺎﺩ ﺃﻛﺒﺮ ﻋﻨﺼﺮ ﻓﻲ ﻣﺼﻔﻮﻓﺔ ﺛﻨﺎﺋﻴﺔ ﺍﻟﺒﻌﺪ.
= mmx
0.9706
=i
12
))>> z = max (max (A ﻁﺮﻳﻘﺔ ﺃﺧﺮﻯ ﻹﻳﺠﺎﺩ ﺃﻛﺒﺮ ﻋﻨﺼ ﺮ ﻓﻲ ﻣﺼ ﻔﻮﻓﺔ ﺛﻨﺎﺋﻴﺔ
=z ﺍﻟﺒﻌﺪ.
0.9706
)>> [mn, r] = min (A
= mn
0.1270 0.0975 0.1576 0.1419 0.4218 0.0357
=r
3 2 3 4 1 2
)'>> min (A ﻹﻳﺠﺎﺩ ﺃﺻﻐﺮ ﻋﻨﺼﺮ ﻟﻜﻞ ﺳﻄﺮ
= ans
0.4218 0.0357 0.1270 0.1419
))>> [mmn, i] = min (A (: ﻹﻳﺠﺎﺩ ﺃﺻﻐﺮ ﻋﻨﺼﺮ ﻓﻲ ﻣﺼﻔﻮﻓﺔ ﺛﻨﺎﺋﻴﺔ ﺍﻟﺒﻌﺪ.
= mmn
0.0357
=i
22
))>> z = min (min (A ﻁﺮﻳﻘﺔ ﺃﺧﺮﻯ ﻹﻳﺠﺎﺩ ﺃﺻ ﻐﺮ ﻋﻨﺼ ﺮ ﻓﻲ ﻣﺼ ﻔﻮﻓﺔ ﺛﻨﺎﺋﻴﺔ
=z ﺍﻟﺒﻌﺪ.
0.0357
ﻣﻼﺣﻈﺔ :ﻧﻔﺲ ﺍﻟﺸﻲء ﻟﺤﺴﺎﺏ ﺍﻟﻤﺠﻤﻮﻉ .sum
))>> z = sum (sum (A
=z
15.3152
20
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
21
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
22
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ﺍﳉﻤﻞ ﺍﻟﺸﺮﻃﻴﺔ
ﻳﺪﻋﻢ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻭﺍﻟﻤﻘﺎﺭﻧﺔ ﻣﺜﻠﻤﺎ ﻳﺪﻋﻢ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺮﻳﺎﺿ ﻴﺔ ،ﻭﺗﻬﺪﻑ ﺍﻟﻌﻤﻠﻴﺎﺕ
ﻭﺍﻟﻤﻌﺎﻣﻼﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ ﺍﻟﺤﺼﻮﻝ ﻋﻠﻰ ﺃﺟﻮﺑﺔ ﻟﻸﺳﺌﻠﺔ ﺍﻟﺘﻲ ﻳﺠﺎﺏ ﻋﻨﻬﺎ ﺑﺼﺢ ﺃﻭ ﺧﻄﺄ). (True/False
ﺗﻌﺘﺒﺮ ﻟﻐﺔ ﺍﻟﻤﺎﺗﻼﺏ ﻓﻲ ﺗﻌﺎﻣﻠﻬﺎ ﻣﻊ ﺟﻤﻴﻊ ﺍﻟﺘﻌﺎﺑﻴﺮ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻭﻋﻤﻠﻴﺎﺕ ﺍﻟﻤﻘﺎﺭﻧﺔ ﺇﻥ ﺃﻱ ﻋﺪﺩ ﻏﻴﺮ ﺻ ﻔﺮﻱ
ﻫﻮ Trueﻭﻳﻌﺘﺒﺮ ﺍﻟﺼﻔﺮ ،Falseﻛﻤﺎ ﻭﻳﻜﻮﻥ ﺇﺧﺮﺍﺝ ﺟﻤﻴﻊ ﺍﻟﺘﻌﺎﺑﻴﺮ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻭﻋﻤﻠﻴﺎﺕ ﺍﻟﻤﻘﺎﺭﻧﺔ ﻋﺒﺎﺭﺓ
ﻋﻦ ﻣﺼﻔﻮﻓﺎﺕ ﻣﻨﻄﻘﻴﺔ ﺗﺤﻮﻱ ﺍﻟﻌﺪﺩ ﻭﺍﺣﺪ ﻣﻦ ﺍﺟﻞ Trueﻭﺍﻟﻌﺪﺩ ﺻﻔﺮ ﻣﻦ ﺍﺟﻞ .False
ﻭﺗﻌﺘﺒﺮ ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻧﻮﻋﺎ ًﺧﺎﺻﺎ ً ﻣﻦ ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﻌﺪﺩﻳﺔ ،ﻛﻤﺎ ﻳﻤﻜﻦ ﻋﻨﻮﻧﺔ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﻤﻨﻄﻘﻴﺔ
ﺑﻨﻔﺲ ﻁﺮﻳﻘﺔ ﻋﻨﻮﻧﺔ ﺑﺎﻗﻲ ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﺘﻲ ﺍﺳﺘﺨﺪﻣﻬﺎ ﺳﺎﺑﻘﺎ ً ﺿﻤﻦ ﺍﻟﺘﻌﺎﺑﻴﺮ ﺍﻟﻌﺪﺩﻳﺔ.
ً
ﺃﻭﻻ :ﻣﻌﺎﻣﻼﺕ ﺍﳌﻘﺎﺭﻧﺔRelational Operators :
ﺗﺘﻀﻤﻦ ﻣﻌﺎﻣﻼﺕ ﺍﻟﻤﻘﺎﺭﻧﺔ ﻛﻞ ﺍﻹﺷﺎﺭﺍﺕ ﺍﻟﻤﻘﺎﺭﻧﺔ ﺍﻟﺸﺎﺋﻌﺔ ﻭﺍﻟﻤﺪﺭﺟﺔ ﻓﻲ ﺍﻟﺠﺪﻭﻝ ﺍﻟﺘﺎﻟﻲ:
ﺍﻟﻮﺻﻒ ﻣﻌﺎﻣﻞ ﺍﻟﻤﻘﺎﺭﻧﺔ
ﺃﺻﻐﺮ ﻣﻦ <
ﺃﺻﻐﺮ ﺃﻭ ﻳﺴﺎﻭﻱ =<
ﺃﻛﺒﺮ ﻣﻦ >
ﺃﻛﺒﺮ ﺃﻭ ﻳﺴﺎﻭﻱ =>
ﺇﺷﺎﺭﺓ ﺍﻟﻤﺴﺎﻭﺍﺓ )ﻟﻜﻲ ﻧﻤﻴﺰﻫﺎ ﻋﻦ =( ==
ﺍﺷﺎﺭﺓ ﻋﺪﻡ ﺍﻟﻤﺴﺎﻭﺍﺓ =~
ﻣﺜﺎﻝ ) :(1ﻳﻤﻜﻦ ﺍﺳ ﺘﺨﺪﺍﻡ ﻣﻌﺎﻣﻼﺕ ﺍﻟﻤﻘﺎﺭﻧﺔ ﻟﻠﻤﻘﺎﺭﻧﺔ ﺑﻴﻦ ﻣﺼ ﻔﻮﻓﺘﻴﻦ ﻟﻬﺎ ﻧﻔﺲ ﺍﻟﺤﺠﻢ ،ﺃﻭ ﻟﻠﻤﻘﺎﺭﻧﺔ ﺑﻴﻦ
ﻣﺼ ﻔﻮﻓﺔ ﻭﻋﺪﺩ ﻣﻔﺮﺩ ﻭﺗﺘﻢ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ ﻣﻘﺎﺭﻧﺔ ﻛﻞ ﻋﻨﺼ ﺮ ﻣﻦ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﻣﻊ ﺍﻟﻌﺪﺩ ﺍﻟﻤﻔﺮﺩ ،ﻭﺗﻜﻮﻥ
ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﻨﺎﺗﺠﺔ ﺑﻨﻔﺲ ﺣﺠﻢ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺘﻲ ﺗﻤﺖ ﻣﻘﺎﺭﻧﺘﻬﺎ ﻛﻤﺎ ﻳﺒﻴﻨﻪ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ:
;>> a = 1; b = 5
>> x = a > b
=x
0
>> A = 1: 9, B = 9 - A ﻣﻼﺣﻈﺔ:
=A ﻟﻘﺪ ﺃﻭﺟﺪﻧﺎ ﺍﻟﻌﻨﺎﺻ ﺮ ﻣﻦ Aﺍﻟﺘﻲ ﻫﻲ ﺃﻛﺒﺮ ﻣﻦ
1 2 3 4 5 6 7 8 9 ،4ﻭﺗﻈﻬﺮ ﺍﻻﺻﻔﺎﺭ ﻓﻲ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﻨﺎﺗﺠﺔ ﻓﻲ
=B ﻣﻮﺍﻗﻊ ﺍﻟﻌﻨﺎﺻ ﺮ ﻋﻨﺪﻣﺎ ،A ≤ 4ﺑﻴﻨﻤﺎ ﻳﻈﻬﺮ
8 7 6 5 4 3 2 1 0 ﺍﻟﺮﻗﻢ 1ﻋﻨﺪﻣﺎ .A > 4
>> tf = A > 4
= tf
0 0 0 0 1 1 1 1 1
)>> tf = (A == B ﻟﻘﺪ ﺗﻢ ﻫﻨﺎ ﺇﻳﺠﺎﺩ ﻋﻨﺎﺻ ﺮ Aﺍﻟﺘﻲ ﺗﺴ ﺎﻭﻱ
tf = 0 0 0 0 0 0 0 0 0 ﺍﻟﻌﻨﺎﺻﺮ ﻓﻲ ﺍﻟﻤﺼﻔﻮﻓﺔ .B
23
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
24
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
))>> b = (1==1) & not ((2 ~= 3 ﻳﺠﺐ ﺍﻥ ﻳﺘﺤﻘﻖ ﺍﻟﺸﺮﻁﻴﻦ ﻣﻌﺎ ً
=b
0
ﻣﺜﺎﻝ ):(3
>> A=1:9 >> B = 9 - A
=A =B
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0
>> tf = A > 4 ﺣﻴﺚ ﻗﺎﻡ ﺑﺈﻳﺠﺎﺩ ﻋﻨﺎﺻ ﺮ Aﺍﻟﺘﻲ ﻗﻴﻤﻬﺎ ﺍﻛﺒﺮ
= tf ﻣﻦ .4
0 0 0 0 1 1 1 1 1
)>> tf = ~ (A > 4 ﻟﻘﺪ ﻗﺎﻡ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺑﻘﻠﺐ ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﺴ ﺎﺑﻘﺔ ،ﻭﺗﻌﻨﻲ
= tf ﺍﺳﺘﺒﺪﺍﻝ ﻣﻮﺍﻗﻊ ﺍﻻﺻﻔﺎﺭ ﻭﺍﻟﻮﺍﺣﺪﺍﺕ.
1 1 1 1 0 0 0 0 0
)>> tf = (A > 2) & (A < 6 ﺣﻴﺚ ﺗﻌﻴﺪ ﻫﺬﻩ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﻌﺪﺩ ﻭﺍﺣﺪ ﻋﻨﺪﻣﺎ ﻳﻜﻮﻥ
= tf ﺍﻟﻌﻨﺼﺮ ﻣﻦ Aﺃﻛﺒﺮ ﻣﻦ 2ﻭﺍﻗﻞ ﻣﻦ .6
0 0 1 1 1 0 0 0 0
ً
ﺛﺎﻟﺜﺎ :ﺃﺳﺒﻘﻴﺔ ﺍﳌﻌﺎﻣﻞ:
ﻳﻘﻮﻡ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﺑﺈﻳﺠﺎﺩ ﻗﻴﻤﺔ ﺗﻌﺒﻴﺮ ﻣﺴ ﺘﻨﺪﺍً ﺇﻟﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﻘﻮﺍﻋﺪ ﺍﻟﻨﺎﻅﻤﺔ ﻷﺳ ﺒﻘﻴﺔ ﺍﻟﻤﻌﺎﻣﻞ،
ﻭﺗﺤﺴ ﺐ ﺍﻟﻤﻌﺎﻣﻼﺕ ﺫﺍﺕ ﺍﻷﺳ ﺒﻘﻴﺔ ﺍﻟﻌﻠﻴﺎ ﻗﺒﻞ ﺍﻟﻤﻌﺎﻣﻼﺕ ﺫﺍﺕ ﺍﻷﺳ ﺒﻘﻴﺔ ﺍﻟﺪﻧﻴﺎ ،ﻭﺗﻘﻴﻢ ﺍﻟﻤﻌﺎﻣﻼﺕ ﺫﺍﺕ
ﺍﻷﺳ ﺒﻘﻴﺔ ﺍﻟﻤﺘﺴ ﺎﻭﻳﺔ ﻣﻦ ﺍﻟﻴﺴ ﺎﺭ ﺇﻟﻰ ﺍﻟﻴﻤﻴﻦ .ﻭﻳﺸ ﺮﺡ ﺍﻟﺠﺪﻭﻝ ﺍﻟﺘﺎﻟﻲ ﻗﻮﺍﻋﺪ ﺃﺳ ﺒﻘﻴﺔ ﺍﻟﻤﻌﺎﻣﻞ ﺍﻟﺘﻲ ﻳﻌﺘﻤﺪﻫﺎ
ﺍﻟﺒﺮﺍﻣﺞ.
ﻣﺴﺘﻮﻯ ﺍﻷﺳﺒﻘﻴﺔ ﺍﻟﻤﻌﺎﻣﻞ
ﺍﻷﻋﻠﻰ ﺍﻷﻗﻮﺍﺱ ) (
ﺍﻟﻤﺪﻭﺭ)'( ،ﺍﻟﻘﻮﺓ )^(.^ ،
ﺇﺷﺎﺭﺓ ﺍﻟﻨﻔﻲ )~(
ﺍﻟﻀﺮﺏ ) * ،(.* ،ﺍﻟﻘﺴﻤﺔ )(./ ،/
ﺍﻟﺠﻤﻊ ) ،(+ﻭﺍﻟﻄﺮﺡ )(-
ﻣﻌﺎﻣﻞ ﺍﻟﻨﻘﻄﺘﻴﻦ ﺍﻟﻤﺘﻌﺎﻣﺪﺗﻴﻦ )(:
ﺃﺻﻐﺮ ﻣﻦ )<( ،ﻭﺃﺻﻐﺮ ﺃﻭ ﻳﺴﺎﻭﻱ)=<( ،ﺃﻛﺒﺮ ﻣﻦ )>( ،ﺃﻛﺒﺮ
ﻣﻦ ﺃﻭ ﻳﺴﺎﻭﻱ )=>( ،ﺍﻟﻤﺴﺎﻭﺍﺓ )==( ،ﻋﺪﻡ ﺍﻟﻤﺴﺎﻭﺍﺓ )=~(
ﺍﻟﺠﻤﻊ ﺍﻟﻤﻨﻄﻘﻲ)&( AND
ﺍﻷﺩﻧﻰ ﺍﻟﻤﻌﺎﻣﻞ ﺍﻟﻤﻨﻄﻘﻲ )|( OR
25
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ً
:IF-ELSE-END ﺍﻟﺼﻴﻐﺔ:ﺭﺍﺑﻌﺎ
ﻭﻳﻨﻔﺬ ﻫﺬﺍ ﺍﻻﻳﻌﺎﺯ.ﻗﺪ ﻧﺤﺘﺎﺝ ﺇﻟﻰ ﺣﺴ ﺎﺏ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺃﻭﺍﻣﺮ ﺍﺳ ﺘﻨﺎﺩﺍً ﺇﻟﻰ ﺇﺧﺮﺍﺝ ﻧﺎﺗﺞ ﻋﻦ ﺍﺧﺘﺒﺎﺭ ﺷ ﺮﻁﻲ
: ﻭﻛﻤﺎ ﻳﻠﻲif-else-end ﻓﻲ ﻟﻐﺔ ﺍﻟﻤﺎﺗﻼﺏ ﻋﺒﺮ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺼﻴﻐﺔ
:IF-END -1
if expression ( ﺍﻟﻮﺍﻗﻌ ﺔ ﺑﻴﻦcommands) ﻭﺳ ﺘﻨﻔ ﺬ ﺍﻷﻭﺍﻣﺮ
(commands) ﺇﺫﺍ ﻛ ﺎﻧ ﺖ ﻗﻴﻤ ﺔ ﺍﻟﺘﻌﺒﻴﺮend ﻭif ﺍﻟﻌﺒ ﺎﺭﺗﻴﻦ
end .true ( ﺗﻜﻮﻥexpression)
:(1) ﻣﺜﺎﻝ
>> x = 10;
>> if x == 10
disp ('ok')
end;
: ﻛﻤﺎ ﻳﻠﻲif-else-end ﻓﺘﺼﺒﺢ ﺍﻟﺼﻴﻐﺔ، ﻭﺇﺫﺍ ﻛﺎﻥ ﻟﺪﻧﻴﺎ ﺧﻴﺎﺭﺍﻥ:IF-ELSE-END -2
if expression ﺣﻴﺚ ﺳ ﺘﻨﻔﺬ ﺍﻟﻤﺠﻤﻮﻋﺔ ﺍﻷﻭﻟﻰ ﻣﻦ ﺍﻷﻭﺍﻣﺮ ﻓﻲ ﺣﺎﻝ
(commands evaluated if True) ﺑﻴﻨﻤ ﺎ،true ﺍﻟﻘﻴﻤ ﺔexpression ﺍﻣﺘﻠ ﻚ ﺍﻟﺘﻌﺒﻴﺮ
else ﺗﻨﻔ ﺬ ﺍﻟﻤﺠﻤﻮﻋ ﺔ ﺍﻟﺜ ﺎﻧﻴ ﺔ ﺇﺫﺍ ﺍﻣﺘﻠ ﻚ ﺍﻟﺘﻌﺒﻴﺮ
(commands evaluated if False) .false ﺍﻟﻘﻴﻤﺔexpression
end
: ﺍﻟﺸﻜﻞ ﺍﻟﺘﺎﻟﻲif-else-end ﻓﺴﺘﺄﺧﺬ ﺍﻟﺘﻌﺒﻴﺮ، ﻭﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﻋﺪﺓ ﺣﺎﻻﺕ-3
if expression1
(commands evaluated if expression1 is true)
elseif expression2
(commands evaluated if expression2 is true)
elseif expression3
(commands evaluated if expression3 is true)
elseif expression4
(commands evaluated if expression4 is true)
.
.
else
(commands evaluated if no other expression is true)
End
:(2) ﻣﺜﺎﻝ
>> x = 10;
>> if x == 10
msgbox ('ok', 'result');
26
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
:(3) ﻣﺜﺎﻝ
>> if x == 10
msgbox ('ok', 'result');
else
msgbox ('no', 'result');
end;
:(4) ﻣﺜﺎﻝ
>> x = 11;
>> if x == 1
disp ('1');
elseif x == 2
disp ('2');
else
disp ('3');
end;
ﺍﻹﺧﺮﺍﺝ
3
: ﺍﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻹﻳﺠﺎﺩ ﻧﺎﺗﺞ ﺍﻟﺪﻭﺍﻝ ﺍﻟﺘﺎﻟﻴﺔ:(5) ﻣﺜﺎﻝ
27
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
else
)z=sqrt(x)+sqrt(y
)w=log(x)-3*log(y
end
ً
ﺧﺎﻣﺴﺎ :ﺍﻟﺼﻴﻐﺔ : SWITCH-CASE-OTHERWISE
ﻋﻨﺪﻣﺎ ﻳﺘﻮﺟﺐ ﻋﻠﻴﻨﺎ ﺗﻨﻔﻴﺬ ﺃﻭﺍﻣﺮ ﺍﻋﺘﻤﺎﺩﺍً ﻋﻠﻰ ﺍﺳ ﺘﺨﺪﺍﻡ ﻣﺘﻜﺮﺭ ﻻﺧﺘﻴﺎﺭ ﻛﻤﻲ ﻟﻮﺳ ﻂ ﻣﺎ ،ﻋﻨﺪﻫﺎ ﻣﻦ ﺍﻟﺴ ﻬﻞ
ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺼﻴﻐﺔ switch-caseﺍﻟﺘﻲ ﻟﻬﺎ ﺍﻟﺼﻴﻐﺔ ﺍﻟﻌﺎﻣﺔ ﺍﻟﺘﺎﻟﻴﺔ:
switch expression ﻳﺠﺐ ﺃﻥ ﻳﻜﻮﻥ expressionﻫﻨﺎ ﺃﻣﺎ ﻋﺪﺩﺍً ﻣﻔﺮﺩﺍً ﺃﻭ ﺳﻠﺴﻠﺔ ﺭﻣﺰﻳﺔ.
case test-expression1 ﻳﻘ ﺎﺭﻥ ﺍﻟﺘﻌﺒﻴﺮ expressionﺍﻟﻤﻮﺟﻮﺩ ﻓﻲ ﺍﻟﺼ ﻴﻐ ﺔ ﺍﻟﺴ ﺎﺑﻘ ﺔ
)(commands1 ﺑ ﺎﻟﺘﻌﺒﻴﺮ test-expression1ﺍﻟﻤﻮﺟﻮﺩ ﻓﻲ ﻋﺒ ﺎﺭﺓ caseﺍﻷﻭﻟﻰ.
case test-expression2 ﻭﺇﺫﺍ ﺗﺴ ﺎﻭﻯ ﺍﻟﺘﻌﺒﻴﺮﺍﻥ ،ﺳ ﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺍﻷﻭﺍﻣﺮ )(commands1
)(commands2 ﻭﺗﺨﻄﻲ ﺍﻟﺘﻌﻠﻴﻤ ﺎﺕ ﺍﻟﻮﺍﻗﻌ ﺔ ﺑﻌ ﺪﻫ ﺎ ﺣﺘﻰ ﺍﻟﻌﺒ ﺎﺭﺓ .endﺃﻣ ﺎ ﺇﺫﺍ ﻟﻢ
otherwise ﻳﺘﺤﻘﻖ ﺍﻟﺸ ﺮﻁ ﺍﻷﻭﻝ ،ﻓﺴ ﻴﺨﺘﺒﺮ ﺍﻟﺸ ﺮﻁ ﺍﻟﺜ ﺎﻧﻲ ،ﺣﻴ ﺚ
)(commands3 ﺳ ﻴﻘﺎﺭﻥ expressionﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺴ ﺎﺑﻖ ﻣﻊ ﺍﻟﻌﺒﺎﺭﺍﺕ test-
end exoression2ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﻋﺒﺎﺭﺓ caseﺍﻟﺜﺎﻧﻴﺔ .ﻭﺇﺫﺍ ﺗﺴ ﺎﻭﻯ
ﺍﻟﺘﻌﺒﻴﺮﺍﻥ ،ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ ) (commands2ﻭﺗﻬﻤﻞ ﺑﻘﻴﺔ ﺍﻟﻌﺒﺎﺭﺍﺕ ﺣﺘﻰ
ﻋﺒ ﺎﺭﺓ .endﺇﺫﺍ ﻟﻢ ﺗﺤﻘﻖ ﺃﻱ ﻋﺒ ﺎﺭﺓ caseﺍﻟﻤﺴ ﺎﻭﺍﺓ ﻣﻊ ﺍﻟﺘﻌﺒﻴﺮ
،expressionﻋﻨﺪﻫﺎ ﺳ ﺘﻨﻔﺬ ﺍﻷﻭﺍﻣﺮ ) (commands3ﺍﻟﺘﻲ ﺗﻠﻲ
ﺍﻟﻌﺒﺎﺭﺓ .otherwise
ﻻﺣﻆ ﻣﻦ ﺍﻟﺸ ﺮﺡ ﺍﻟﺬﻱ ﺃﻭﺭﺩﻧﺎﻩ ﻋﻦ ﺻ ﻴﻐﺔ switch-caseﺑﺄﻧﻪ ﺳ ﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺃﺣﺪﻯ ﻣﺠﻤﻮﻋﺎﺕ ﺍﻷﻭﺍﻣﺮ
ﺍﻟﻤﻜﻮﻧﺔ ﻟﻠﺼﻴﻐﺔ switch-caseﻭﺍﻟﻴﻚ ﺍﻷﻣﺜﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ:
ﻣﺜﺎﻝ ):(1
;x = 1
switch x
}case {1, 2, 3, 4, 5
;)'disp ('1..5
}case {9, 10
;)'disp ('9..10
otherwise
;)'disp ('this is impossible
;end
1..5
ﻣﺜﺎﻝ ):(2
;clc
;clear
28
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
n = 3;
switch n
case {0}
m = n + 3;
case {2}
m = 'ali';
case {3}
m = magic (n);
otherwise
disp ('error');
end;
disp (m);
ﺍﻹﺧﺮﺍﺝ
8 1 6
3 5 7
4 9 2
:(3) ﻣﺜﺎﻝ
x = 2.7;
units = 'm';
switch units
case {'inch', 'in'}
y = x * 2.54;
case {'meter', 'm'}
y = x / 100;
case {'feed', 'ft'}
y = x * 2.54 / 12;
case {'millimeter', 'mm'}
y = x * 10;
case {'centimeter', 'cm'}
y = x;
otherwise
disp (['Unknown Units:' units]);
end;
ﺍﻹﺧﺮﺍﺝ
y = 0.027
29
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
30
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
end
=y
0.8415
=y
0.8415 0.9093
=y
0.8415 0.9093 0.1411
=y
0.8415 0.9093 0.1411 -0.7568
=y
0.8415 0.9093 0.1411 -0.7568 -0.9589
ﻣﺜﺎﻝ ) :(4ﺍﻻﺩﺧﺎﻝ ﺑﺼﻴﻐﺔ ﺍﻟﺘﻜﺮﺍﺭ ) (forﻓﻘﻂ
>> for x=1:5
)y=sin(x
end
=y
0.8415
=y
0.9093
=y
0.1411
=y
-0.7568
=y
-0.9589
ﻣﺜﺎﻝ ) :(5ﺗﻮﻟﻴﺪ 10ﺃﻋﺪﺍﺩ ﻋﺸﻮﺍﺋﻴﺔ ﻗﻴﻤﺘﻬﺎ ).(1...10
)>> array = randperm (10 ﺳ ﻴﺄ ﺧﺬ ﻣﺘﻐﻴﺮ ﺍﻟﺤﻠ ﻘﺔ nﻫﻨﺎ
= array ﻗﻴﻤﺎ ً ﻋﺸﻮﺍﺋﻴﺔ ﺑﻴﻦ ) (1ﻭ )(10
8 2 10 7 4 3 6 9 5 1 ﻣﻌﻄﺎﺓ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ .array
>> for n = array
;)x (n) = sin (n * pi / 10
;end
>> x
=x
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
0.8090 0.5878 0.3090 0.0000
31
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
ﺃﻣﺜﻠﺔ ):(6
>> for i = 1: 10 >> for i = 0:2:10 >> for i = 10: -2: 1
;)disp (i ;)disp (i ;)disp (i
;end ;end ;end
ﺍﻹﺧﺮﺍﺝ ﺍﻹﺧﺮﺍﺝ ﺍﻹﺧﺮﺍﺝ
1 0 10
2 2 8
3 4 4
. 6 2
10 8
10
ﻣﺜﺎﻝ ) :(7ﺟﺪ )!:Factorial 10 (10
;F=1
;for k=1:10
;F=F*k
end
)disp(F
ﺍﻹﺧﺮﺍﺝ
3628800
ﻣﺜﺎﻝ ) :(8ﻳﻤﻜﻦ ﺇﻧﺸﺎء ﻋﺪﺓ ﺣﻠﻘﺎﺕ forﻣﺘﺪﺍﺧﻠﺔ ،ﻛﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ:
>> for n =1: 5
for m = 1:5
;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
32
ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ
MATLAB ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ
17 20 25 32 41
26 29 34 41 50
: ﻁﺒﺎﻋﺔ ﺟﺪﻭﻝ ﺍﻟﻀﺮﺏ:(9) ﻣﺜﺎﻝ
>> 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
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 3640
. . . . . . . . . .
. . . . . . . . . .
10 20 30 40 50 60 70 80 90 100
10) (ﻣﺜﺎﻝ:
A= 5 10 15 A= 0 5 10 A= 5 5 5
20 25 30 15 20 25 5 5 5
35 40 45 30 35 40 5 5 5
50 55 60 45 50 55 5 5 5
>> s=0 >> s=0 >>
for r=1:4 for r=1:4 for r=1:4
for c=1:3 for c=1:3 for c=1:3
s=s+5; A(r,c)=s; A(r,c)=5;
A(r,c)=s; s=s+5; end
end end end
end end disp(A)
disp(A) disp(A) A=
A= A= 5 5 5
5 10 15 0 5 10 5 5 5
20 25 30 15 20 25 5 5 5
35 40 45 30 35 40 5 5 5
50 55 60 45 50 55
A = 4 8 12 A= 4 8 12 16 20 A= 3 5 7
10 14 18 18 22 26 30 34 9 11 13
16 20 24 32 36 40 44 48 B= 4 6 8
22 26 30 46 50 54 58 62 10 12 14
33
WHILE ﺟﻣﻠﺔ
53
34
function
35
36
37