0% found this document useful (0 votes)
78 views39 pages

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

The document discusses MATLAB functions for common mathematical operations. It provides examples of functions for inverse trigonometric functions, rounding, remainder, sign, complex components, prime numbers, greatest common divisor, and least common multiple. It also discusses the order of operations in MATLAB expressions and provides examples of translating algebraic expressions into MATLAB syntax.

Uploaded by

Zainab Rasheed
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views39 pages

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

The document discusses MATLAB functions for common mathematical operations. It provides examples of functions for inverse trigonometric functions, rounding, remainder, sign, complex components, prime numbers, greatest common divisor, and least common multiple. It also discusses the order of operations in MATLAB expressions and provides examples of translating algebraic expressions into MATLAB syntax.

Uploaded by

Zainab Rasheed
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﻅﻞ ﻣﻌﻜﻮﺱ ﺍﻟﺰﺍﻭﻳﺔ‬ ‫‪atan‬‬


‫ﺍﻟﺘﺪﻭﻳﺮ ﺑﺎﺗﺠﺎﻩ ﺍﻟﺼﻔﺮ‬ ‫‪fix‬‬
‫ﺍﻟﺘﺪﻭﻳﺮ ﺑﺎﺗﺠﺎﻩ ﺍﻟﻼﻧﻬﺎﻳﺔ ﺍﻟﺴﺎﻟﺒﺔ‬ ‫‪floor‬‬
‫ﺍﻟﺘﺪﻭﻳﺮ ﺑﺎﺗﺠﺎﻩ ﺍﻟﻼﻧﻬﺎﻳﺔ ﺍﻟﻤﻮﺟﺒﺔ‬ ‫‪ceil‬‬
‫ﺍﻟﺘﺪﻭﻳﺮ ﺑﺎﺗﺠﺎﻩ ﺃﻗﺮﺏ ﻋﺪﺩ ﺻﺤﻴﺢ‬ ‫‪round‬‬
‫ﺍﻟﺠﺰء ﺍﻟﺼﺤﻴﺢ ﻣﻦ ﺣﺎﺻﻞ ﺍﻟﻘﺴﻤﺔ‬ ‫‪mod‬‬
‫ﺑﻘﻴﺔ ﺍﻟﻘﺴﻤﺔ‬ ‫‪rem‬‬
‫ﺇﺷﺎﺭﺓ ﺍﻟﻌﺪﺩ ﺇﺫﺍ ﻛﺎﻧﺖ ﻣﻮﺟﺒﺔ‪ ،‬ﺳﺎﻟﺒﺔ‪ ،‬ﺻﻔﺮ‬ ‫‪Sign‬‬
‫ﺍﻟﻘﺴﻢ ﺍﻟﺘﺨﻴﻠﻲ‬ ‫‪imag‬‬
‫ﺍﻟﻘﺴﻢ ﺍﻟﺤﻘﻴﻘﻲ‬ ‫‪real‬‬
‫ﺍﻟﻌﻮﺍﻣﻞ ﺍﻷﻭﻟﻴﺔ‬ ‫‪factor‬‬
‫ﻳﻌﻴﺪ ‪ true‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻌﺪﺩ ﺃﻭﻟﻴﺎ‬ ‫‪Isprime‬‬
‫ﻳﻨﺸﺊ ﻗﺎﺋﻤﺔ ﺑﺎﻷﻋﺪﺍﺩ ﺍﻷﻭﻟﻴﺔ‬ ‫‪primes‬‬
‫ﺍﻟﻘﺎﺳﻢ ﺍﻟﻤﺸﺘﺮﻙ ﺍﻷﻋﻈﻢ‬ ‫‪gcd‬‬
‫ﺍﻟﻤﻀﺎﻋﻒ ﺍﻟﻤﺸﺘﺮﻙ ﺍﻷﺻﻐﺮ‬ ‫‪lcm‬‬
‫ﻣﺜﺎﻝ‪:‬‬
‫;‪>> x = 2.6‬‬
‫;)‪>> y1 = fix (x); y2 = floor (x); y3 = ceil (x); y4 = round (x‬‬
‫‪y1 = 2‬‬
‫‪y2 = 2‬‬
‫‪y3 = 3‬‬
‫‪y4 = 3‬‬
‫ﺱ‪ /‬ﻣﺎ ﻟﻔﺮﻕ ﺑﻴﻦ ﺍﻟﺪﻭﺍﻝ ﺍﻷﺭﺑﻌﺔ ﺃﻋﻼﻩ؟‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬
‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﻣﻼﺣﻈﺔ‪:‬‬
‫ﺗﺄﺧﺬ ﺍﻻﻗﺘﺮﺍﻧﺎﺕ ﺍﻟﻤﻜﺘﺒﻴﺔ ﺃﻭﻟﻮﻳﺔ ﺑﻌﺪ ﺍﻷﻗﻮﺍﺱ ﻋﻨﺪ ﺗﻨﻔﻴﺬ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺑﻴﺔ‪.‬‬
‫)‪sin (a + b) – m / sqrt (d‬‬

‫‪1‬‬ ‫‪3‬‬
‫‪2‬‬
‫‪4‬‬
‫‪5‬‬ ‫ﻳﻜﻮﻥ ﺗﻨﻔﻴﺬ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺑﻴﺔ ﻛﻤﺎ ﻳﻠﻲ‪:‬‬
‫ﺍﻟﻌﻤﻠﻴﺔ ﺍﻷﻭﻟﻰ‪ :‬ﺇﻳﺠﺎﺩ ﻗﻴﻤﺔ ﺟﻤﻊ ‪ a‬ﻣﻊ ‪.b‬‬
‫ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺜﺎﻧﻴﺔ‪ :‬ﺇﻳﺠﺎﺩ ﻗﻴﻤﺔ ﺟﻴﺐ ﺍﻟﺰﺍﻭﻳﺔ ﻟﻨﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ )‪.(1‬‬
‫ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺜﺎﻟﺜﺔ‪ :‬ﺇﻳﺠﺎﺩ ﻗﻴﻤﺔ ﺍﻟﺠﺬﺭ ﺍﻟﺘﺮﺑﻴﻌﻲ ﻟــ ‪.d‬‬
‫ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺮﺍﺑﻌﺔ‪ :‬ﺇﻳﺠﺎﺩ ﻧﺎﺗﺞ ﻗﻴﻤﺔ ﻧﺎﺗﺞ ﻗﺴﻤﺔ ‪ m‬ﻋﻠﻰ ﻧﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ )‪.(3‬‬
‫ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺨﺎﻣﺴ ﺔ‪ :‬ﻁﺮﺡ ﻧﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ )‪ (4‬ﻣﻦ ﻧﺎﺗﺞ ﺍﻟﻌﻤﻠﻴﺔ )‪ (2‬ﻭﺗﺼ ﺒﺢ ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﻨﻬﺎﺋﻴﺔ ﻛﻤﻴﺔ ﻭﺍﺣﺪﺓ )ﻋﺪﺩﺍ ً‬
‫ﻭﺍﺣﺪﺍً(‪.‬‬

‫ﻣﺜﺎﻝ‪ :‬ﺗﻤﺜﻞ ﺍﻟﺠﻤﻞ ﺍﻟﺘﺎﻟﻴﺔ ﺇﻗﺘﺮﺍﻧﺎﺕ ﻣﻜﺘﺒﻴﺔ ﻓﻲ ﺍﻟﺠﺒﺮ ﻭﺇﺯﺍﺋﻬﺎ ﻗﻴﻤﺘﻬﺎ ﻓﻲ ﺍﻟﻤﺎﺗﻼﺏ‪:‬‬

‫ﺍﻟﺘﻌﺒﲑ ﺍﻟﺮﻳﺎﺿﻲ ﺑﺼﻴﻐﺔ ﻣﺎﺗﻼﺏ‬ ‫ﺍﻟﺘﻌﺒﲑ ﺍﻟﺮﻳﺎﺿﻲ‬

‫) ‪b = sqrt ( a ^ 2 + 10‬‬ ‫‪b‬‬ ‫‪a 2  10‬‬

‫)‪z = log (c * x + n * y‬‬ ‫)‪z = ln (cx + ny‬‬


‫‪y = (sin (x + n * k)) ^ 3‬‬ ‫)‪y = sin 3 (x + nk‬‬
‫)‪s = atan (y / x‬‬ ‫)‪s = tan-1 (y / x‬‬
‫) ‪r = 2 * sqrt (exp (x – 5‬‬ ‫‪r‬‬ ‫‪2 e x 5‬‬

‫)‪t = abs (x – sqrt (y)) / (a + m‬‬ ‫‪x y‬‬


‫‪t‬‬
‫)‪( a  m‬‬
‫)‪g = p ^ (3 / 2) + (a * b / c) ^ (1 / 5‬‬ ‫‪3‬‬
‫‪g‬‬ ‫‪p‬‬ ‫‪2‬‬
‫‪ 5 ab‬‬
‫‪c‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬
‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﺍﳌﺼﻔﻮﻓﺎﺕ ﻭﺍﻟﻌﻤﻠﻴﺎﺕ ﻋﻠﻰ ﺍﳌﺼﻔﻮﻓﺎﺕ‬


‫ﻟﻘﺪ ﻛﺎﻧﺖ ﺟﻤﻴﻊ ﺍﻟﺤﺴ ﺎﺑﺎﺕ ﺍﻟﺘﻲ ﺃﺟﺮﻳﺘﻬﺎ ﺣﺘﻰ ﺍﻵﻥ ﻣﺆﻟﻔﺔ ﻣﻦ ﺃﻋﺪﺍﺩ ﻭﺣﻴﺪﺓ ﺍﻟﺒﻌﺪ ﺳ ﻨﺴ ﻤﻴﻬﺎ ﺃﻋﺪﺍﺩ‬
‫ﻣﻔﺮﺩﺓ‪ .‬ﻭﺗﻌﺘﺒﺮ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﻤﺠﺮﺍﺓ ﻋﻠﻰ ﺍﻷﻋﺪﺍﺩ ﺍﻟﻤﻔﺮﺩﺓ ﻫﻲ ﺃﺳ ﺎﺳ ﻴﺎﺕ ﻋﻠﻢ ﺍﻟﺮﻳﺎﺿ ﻴﺎﺕ‪ .‬ﻭﺑﻨﻔﺲ ﺍﻟﻮﻗﺖ‪،‬‬
‫ﻭﻋﻨﺪﻣﺎ ﻳﺮﻳﺪ ﺍﻟﺸ ﺨﺺ ﺇﺟﺮﺍء ﻧﻔﺲ ﺍﻟﻌﻤﻠﻴﺔ ﻋﻠﻰ ﻋﺪﺩ ﻣﻔﺮﺩ ﺃﻭ ﺃﻛﺜﺮ‪ ،‬ﻓﺴ ﻴﺤﺘﺎﺝ ﺇﻟﻰ ﺃﻛﺜﺮ ﺇﻋﺎﺩﺓ ﺇﺟﺮﺍء ﺍﻟﻌﻤﻠﻴﺔ‬
‫ﻋﺪﺓ ﻣﺮﺍﺕ‪ ،‬ﻣ ﻤﺎ ﻳﻌﻨﻲ ﻫﺪﺭ ﻓﻲ ﺍﻟﻮﻗﺖ ﻭﺍﻟﺠ ﻬﺪ‪ .‬ﻭﻟ ﺤﻞ ﻫﺬﻩ ﺍﻟﻤﺸ ﻜﻠﺔ‪ ،‬ﻋ ﻤﺪ ﺑﺮ ﻧﺎﻣﺞ ﺍﻟ ﻤﺎﺗﻼﺏ ﺇﻟﻰ ﺇﺟﺮﺍء‬
‫ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺮﻳﺎﺿﻴﺔ ﻋﻠﻰ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫ً‬
‫ﺃﻭﻻ‪ :‬ﻛﺘﺎﺑﺔ ﺍﳌﺼﻔﻮﻓﺔ ﺍﻟﺒﺴﻴﻄﺔ‪:‬‬

‫ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ‪ :‬ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺒﺴﻴﻄﺔ )ﺍﻻﻓﻘﻴﺔ( ﻫﻲ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺘﻲ ﺗﺘﻜﻮﻥ ﻣﻦ ﺻﻒ ﻭﺍﺣﺪ ﻭﻋﺪﺓ ﺃﻋﻤﺪﺓ‪.‬‬
‫‪ -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‬ﻭﺗﺠﻌﻞ ﻫﺬﻩ ﺍﻹﻣﻜﺎﻧﻴﺔ ﻟﻠﺒﺮﻧﺎﻣﺞ ﻣﺨﺘﻠﻔﺔ ﻋﻦ ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻷﺧﺮﻯ‪.‬‬

‫‪0.1‬‬ ‫‪0.2‬‬ ‫‪0.3‬‬ ‫‪0.4‬‬ ‫‪0.5‬‬ ‫‪0.6‬‬ ‫‪0.7‬‬ ‫‪0.8‬‬ ‫‪0.9‬‬


‫‪x‬‬ ‫‪0‬‬ ‫‪S‬‬
‫‪S‬‬ ‫‪S‬‬ ‫‪S‬‬ ‫‪S‬‬ ‫‪S‬‬ ‫‪S‬‬ ‫‪S‬‬ ‫‪S‬‬ ‫‪S‬‬
‫‪y‬‬ ‫‪0‬‬ ‫‪0.31 0.59 0.81 0.95‬‬ ‫‪1‬‬ ‫‪0.95 0.81 0.59 0.31‬‬ ‫‪0‬‬
‫ﺍﻟﻤﺼﻔﻮﻓﺔ ﺃﻋﻼﻩ ﺗﺘﻜﻮﻥ ﻣﻦ ‪ 11‬ﻋﻨﺼﺮ‪ ،‬ﻳﻤﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺃﻱ ﻋﻨﺼﺮ ﻣﻨﻬﺎ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﻔﻬﺮﺳﺔ ﻟﻪ‪.‬‬
‫ﻣﺜﺎﻝ )‪:(1‬‬
‫)‪>> x (3‬‬ ‫ﻟﻠﻮﺻﻮﻝ ﺍﻟﻰ ﺍﻟﻌﻨﺼﺮ ﺍﻟﺜﺎﻟﺚ ﻓﻲ ﺍﻟﻤﺼﻔﻮﻓﺔ ‪x‬‬
‫= ‪ans‬‬
‫‪0.6283‬‬
‫)‪>> y (5‬‬ ‫ﻟﻠﻮﺻﻮﻝ ﺍﻟﻰ ﺍﻟﻌﻨﺼﺮ ﺍﻟﺨﺎﻣﺲ ﻓﻲ ﺍﻟﻤﺼﻔﻮﻓﺔ ‪y‬‬
‫= ‪ans‬‬
‫‪0.9511‬‬
‫ﻣﻼﺣﻈ ﺔ‪ :‬ﻭﻟﺘﻌﺮﻳﻒ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ ﺍﻟﻌﻨ ﺎﺻ ﺮ ﺑﻨﻔﺲ ﺍﻟﻮﻗ ﺖ ﻓ ﺄﻥ ﺑﺮﻧ ﺎﻣﺞ ﺍﻟﻤ ﺎﺗﻼﺏ ﻳﺴ ﺘﺨ ﺪﻡ ﺍﻟﻨﻘﻄﺘﻴﻦ‬
‫ﺍﻟﻤﺘﻌﺎﻣﺪﺗﻴﻦ )‪.(:‬‬
‫)‪>> x (1:5‬‬ ‫ﻫﺬﻩ ﻫﻲ ﺍﻟﻌﻨﺎﺻ ﺮ ﺍﻟﺨﻤﺴ ﺔ ﺍﻷﻭﻟﻰ ﻣﻦ ﺍﻟﻤﺼ ﻔﻮﻓﺔ‬
‫= ‪ans‬‬ ‫‪ ،x‬ﻭﻳﺠﺒﺮﻙ ﺍﻟﺮﻣﺰ‪ 1:5‬ﺑ ﺄﻥ ﺗﺒ ﺪﺃ ﺑ ﺎﻟﺮﻗﻢ ‪ 1‬ﻭﺗﻌ ﺪ ّ‬
‫‪0 0.3142 0.6283 0.9425 1.2566‬‬ ‫ﺣﺘﻰ ﺍﻟﺮﻗﻢ ‪.5‬‬
‫)‪>> x (7: end‬‬ ‫ﻭﻫﻨﺎ ﺗﻜﻤﻞ ﻣﻦ ﺍﻟﻌﻨﺼ ﺮ ﺍﻟﺴ ﺎﺑﻊ ﻭﺣﺘﻰ ﻧﻬﺎﻳﺔ‬
‫= ‪ans‬‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‪ ،‬ﺇﺫ ﺗﺸﻴﺮ ﺍﻟﻜﻠﻤﺔ ‪ end‬ﺇﻟﻰ ﺁﺧﺮ ﻋﻨﺼﺮ‬
‫‪1.885 2.1991 2.5133 2.8274‬‬ ‫ﻣﻦ ﻋﻨﺎﺻﺮ ﺍﻟﻤﺼﻔﻮﻓﺔ‪.‬‬
‫‪3.1416‬‬
‫)‪>> y (3: -1: 1‬‬ ‫ﻫﻨﺎ ﺍﻟﻌﻨﺼ ﺮ ﺍﻟﺜﺎﻟﺚ ﺛﻢ ﺍﻟﺜﺎﻧﻲ ﺛﻢ ﺍﻷﻭﻝ ﺑﺘﺮﺗﻴﺐ‬
‫= ‪ans‬‬ ‫ﻋﻜﺴﻲ‪ ،‬ﻭﻳﺨﺒﺮﻙ ﺍﻟﺮﻣﺰ ‪ 3: -1: 1‬ﺑﺄﻥ ﺗﺒﺪﺃ ﺑﺎﻟﺮﻗﻢ‬
‫‪0.5878 0.3090 0‬‬ ‫‪ 3‬ﻭﺗﻌﺪّ ﻧﺰﻭﻻً ﺑﻘﻴﻤﺔ ‪ 1‬ﻭﺗﻘﻒ ﻋﻨﺪ ﺍﻟﺮﻗﻢ ‪.1‬‬
‫)‪>> x (2: 2: 7‬‬ ‫ﻫﻨ ﺎ ﺍﻟﻌﻨﺼ ﺮ ﺍﻟﺜ ﺎﻧﻲ ﻭﺍﻟﺮﺍﺑﻊ ﻭﺍﻟﺴ ﺎﺩﺱ ﻣﻦ‬
‫= ‪ans‬‬ ‫ﺍﻟﻤﺼ ﻔﻮﻓﺔ ‪ ،x‬ﻭﻳﺨﺒﺮﻙ ﺍﻟﺮﻣﺰ ‪ 2: 2: 7‬ﺑﺄﻥ ﺗﺒﺪﺃ‬
‫‪0.3142 0.9425 1.5708‬‬ ‫ﺑﺎﻟﺮﻗﻢ ‪ 2‬ﻭﺗﻌﺪّ ﻧﺤﻮ ﺍﻷﻋﻠﻰ ﺑـ ـ ‪ 2‬ﻭﺗﻘﻒ ﻋﻨﺪﻣﺎ‬
‫ﺗﺼﻞ ﺇﻟﻰ ﺍﻟﺮﻗﻢ ‪.7‬‬
‫)]‪>> y ([8 2 9 1‬‬ ‫ﺍﺳﺘﺨﺪﻣﻨﺎ ﻫﻨﺎ ﻣﺼﻔﻮﻓﺔ ﺃﺧﺮﻯ ]‪ [8 2 9 1‬ﻟﻮﺿﻊ‬
‫= ‪ans‬‬ ‫ﻋﻨﺎﺻ ﺮ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ‪ y‬ﺑﺎﻟﺘﺮﺗﻴﺐ ﺍﻟﺬﻱ ﻧﺮﻏﺐ ﻓﻴﻪ‪،‬‬
‫‪0.8090 0.3090 0.5878 0‬‬ ‫ﺣﻴﺚ ﻭﺿﻊ ﺍﻟﻌﻨﺼﺮ ﺍﻟﺜﺎﻣﻦ ﺃﻭﻻً ﻭﺍﻟﻌﻨﺼﺮ ﺍﻟﺜﺎﻧﻲ‬
‫ﺛﺎﻧﻴﺎ ً‪ ،‬ﺑﻴﻨﻤﺎ ﻭ ﺿﻊ ﺍﻟﻌﻨ ﺼﺮ ﺍﻟﺘﺎ ﺳﻊ ﺛﺎﻟﺜﺎ ً ﻭﺍﻟﻌﻨ ﺼﺮ‬
‫ﺍﻷﻭﻝ ﺭﺍﺑﻌﺎ ً‪.‬‬
‫ﻓﻲ ﺍﻟﻮﺍﻗﻊ ﺗﺪﻝ ﺍﻟﻤﺼﻔﻮﻓﺔ ]‪ [8 2 9 1‬ﻋﻨﺎﻭﻳﻦ‬
‫ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﺮﻏﻮﺑﺔ ﻣﻦ ﺍﻟﻤﺼﻔﻮﻓﺔ ‪.y‬‬

‫‪3‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬
‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫)]‪>> y ([1 1 3 4 2 2‬‬ ‫ﺇﻋﺎﺩﺓ ﺗﺮﺗﻴﺐ ﻟﻘﻴﻢ ﺍﻟﻤﺼﻔﻮﻓﺔ ‪.y‬‬


‫= ‪ans‬‬
‫‪0 0 0.5878 0.8090‬‬ ‫‪0.3090‬‬
‫‪0.3090‬‬

‫)‪>> y (3.2‬‬ ‫ﺗﻮﺿ ﺢ ﺍﻷﻣﺜﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺑﺄﻥ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﻻ‬


‫‪Error‬‬ ‫ﻳﻘﺒﻞ ﺍﻟﺪﻟﻴﻞ ﻛﺮﻗﻢ ﻏﻴﺮ ﺻﺤﻴﺢ ﺣﻴﺚ ﻳﻌﻄﻲ ﺭﺳﺎﻟﺔ‬
‫)‪>> y (3.7‬‬ ‫ﺧﻄﺄ‪.‬‬
‫‪Error‬‬
‫)‪>> y (11.6‬‬
‫‪Error‬‬
‫)‪>> M=x (2: 2: 7‬‬ ‫ﺗﻢ ﺍﺧﺮﺍﺝ ﻣﺼ ﻔﻮﻓﺔ ﺟﺪﻳﺪﺓ ﻭﻫﻲ ‪ M‬ﻣﻦ ﻣﺼ ﻔﻮﻓﺔ‬
‫=‪M‬‬ ‫ﻣﻌﺮﻭﻓﺔ ﻣﺴ ﺒﻘﺎً‪ .‬ﻭﻫﺬﺍ ﻳﻨﻄﺒﻖ ﻋﻠﻰ ﺟﻤﻴﻊ ﺍﻷﻣﺜﻠﺔ‬
‫‪0.3142 0.9425 1.5708‬‬ ‫ﺃﻋﻼﻩ ﺇﺫ ﻧﺴ ﺘﻄﻴﻊ ﺍﺳ ﻨ ﺎﺩ ﺍﻟﻘﻴﻢ ﺍﻟﻤ ﺄﺧﻮﺫﺓ ﻣﻦ‬
‫ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺟﻌﻠﻬﺎ ﻣﺼﻔﻮﻓﺔ ﺟﺪﻳﺪﺓ‪.‬‬

‫ً‬
‫ﺛﺎﻟﺜﺎ‪ :‬ﻛﺘﺎﺑﺔ ﺍﳌﺼﻔﻮﻓﺔ ﺍﻻﻋﺘﻴﺎﺩﻳﺔ‪:‬‬

‫ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً‪ :‬ﻋﻨﺪ ﻓﺼ ﻞ ﺍﻟﻌﻨﺎﺻ ﺮ ﺑﻔﺮﺍﻏﺎﺕ ﺃﻭ ﺑﻔﻮﺍﺻ ﻞ ﻋﺎﺩﻳﺔ ﻳﺤﺪﺩ ﻋﻨﺎﺻ ﺮ ﻓﻲ ﺃﻋﻤﺪﺓ ﻣﺨﺘﻠﻔﺔ‪،‬‬
‫ﻓﻲ ﺣﻴﻦ ﺃﻥ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻔﺎﺻﻠﺔ ﺍﻟﻤﻨﻘﻮﻁﺔ ﻳﺠﻌﻞ ﺍﻟﻌﻨﺎﺻﺮ ﻭﺍﻗﻌﺔ ﻓﻲ ﺻﻔﻮﻑ ﻣﺨﺘﻠﻔﺔ‪.‬‬

‫ﻣﺜﺎﻝ )‪ :(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‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫)‪>> c(:,1:4‬‬ ‫ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺨﺎﻣﺴ ﺔ‪ :‬ﻟﻠﻮﺻ ﻮﻝ ﺍﻟﻰ ﻣﺼ ﻔﻮﻓﺔ ﺗﻀ ﻢ‬


‫= ‪ans‬‬ ‫ﻛﻞ ﺍﻟﺼ ﻔﻮﻑ ﻭﻟﻜﻦ ﻟﻸﻋﻤﺪﺓ ﻣﻦ ﺍﻷﻭﻝ ﺍﻟﻰ ﺍﻟﺮﺍﺑﻊ‬
‫‪1 2 3‬‬ ‫‪4‬‬ ‫ﻣﻦ ﺍﻟﻤﺼ ﻔﻮﻓ ﺔ ‪ .c‬ﺇﺫ ﺍﺳ ﺘﺨ ﺪﻣﻨ ﺎ ﺍﻟﻨﻘﻄﺘﻴﻦ‬
‫‪2 4 6‬‬ ‫‪8‬‬ ‫ﺍﻟﻤﺘﻌﺎﻣﺪﺗﻴﻦ ﻟﻺﺷﺎﺭﺓ ﺍﻟﻰ ﻛﻞ ﺍﻟﺼﻔﻮﻑ‪.‬‬
‫‪7 6 5‬‬ ‫‪4‬‬
‫)]‪>> c(:,[1 5‬‬ ‫ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺴ ﺎﺩﺳ ﺔ‪ :‬ﻟﻠﻮﺻ ﻮﻝ ﺍﻟﻰ ﻣﺼ ﻔﻮﻓﺔ ﺗﻀ ﻢ‬
‫= ‪ans‬‬ ‫ﻛﻞ ﺍﻟﺼﻔﻮﻑ ﻭﻟﻜﻦ ﻟﻠﻌﻤﻮﺩﻳﻦ ﺍﻷﻭﻝ ﻭﺍﻟﺨﺎﻣﺲ ﻓﻘﻂ‬
‫‪1 5‬‬ ‫ﻣﻦ ﺍﻟﻤﺼﻔﻮﻓﺔ ‪.c‬‬
‫‪2 10‬‬
‫‪7 3‬‬
‫)‪>> c([1 3],:‬‬ ‫ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺴ ﺎﺑﻌﺔ‪ :‬ﻟﻠﻮﺻ ﻮﻝ ﺍﻟﻰ ﻣﺼ ﻔﻮﻓﺔ ﺗﻀ ﻢ‬
‫= ‪ans‬‬ ‫ﺍﻟﺼ ﻔﻴﻦ ﺍﻷﻭﻝ ﻭﺍﻟﺜ ﺎﻟ ﺚ ﻓﻘﻂ ﻭﻟﻜ ﻞ ﺍﻻﻋﻤ ﺪﺓ ﻣﻦ‬
‫‪1 2 3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ ‪.c‬‬
‫‪7 6 5‬‬ ‫‪4‬‬ ‫‪3‬‬
‫)]‪>> c(1:2,[1 3‬‬ ‫ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺜﺎﻣﻨﺔ‪ :‬ﻟﻠﻮﺻ ﻮﻝ ﺍﻟﻰ ﻣﺼ ﻔﻮﻓﺔ ﺗﺒﺪﺃ ﻣﻦ‬
‫= ‪ans‬‬ ‫ﺍﻟﺼﻒ ﺍﻷﻭﻝ ﺍﻟﻰ ﺍﻟﺜﺎﻧﻲ ﻭﻟﻠﻌﻤﻮﺩﻳﻦ ﺍﻷﻭﻝ ﻭﺍﻟﺜﺎﻟﺚ‬
‫‪1 3‬‬ ‫ﻓﻘﻂ ﻣﻦ ﺍﻟﻤﺼﻔﻮﻓﺔ ‪.c‬‬
‫‪2 6‬‬
‫ً‬
‫ﺧﺎﻣﺴﺎ‪ :‬ﺍﳌﺼﻔﻮﻓﺎﺕ ﺍﻟﻘﻴﺎﺳﻴﺔ‪:‬‬
‫ﻳﻤ ّﻜﻨﻚ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﻣﻦ ﺇﻧﺸ ﺎء ﻣﺼ ﻔﻮﻓﺎﺕ ﻗﻴﺎﺳ ﻴﺔ‪ ،‬ﻭﺫﻟﻚ ﻟﺘﻤﺘﻊ ﺗﻠﻚ ﺍﻟﻤﺼ ﻔﻮﻓﺎﺕ ﺑﺨﻮﺍﺹ‬
‫ﻭﻣﻴﺰﺍﺕ ﺧﺎﺻﺔ‪ ،‬ﻭﺗﺘﻀﻤﻦ ﺃﻳﻀﺎ ً ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﺘﻲ ﺟﻤﻴﻊ ﻋﻨﺎﺻﺮﻫﺎ ﺻﻔﺮﻳﺔ ﺃﻭ ﻣﺴﺎﻭﻳﺔ ﻟﻠﻮﺍﺣﺪ‪ ،‬ﻭﻣﺼﻔﻮﻓﺎﺕ‬
‫ﺍﻷﻋﺪﺍﺩ ﺍﻟﻌﺸﻮﺍﺋﻴﺔ ﻭﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﻘﻄﺮﻳﺔ ﻭﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﺘﻲ ﻋﻨﺎﺻﺮﻫﺎ ﺃﻋﺪﺍﺩ ﺛﺎﺑﺘﺔ‪.‬‬
‫ﻣﺜﺎﻝ )‪ :(1‬ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻭﺍﺣﺪﻳﺔ )ﺟﻤﻴﻊ ﻋﻨﺎﺻﺮﻫﺎ ﺗﺴﺎﻭﻱ ﻭﺍﺣﺪ( ﻧﺴﺘﺨﺪﻡ ﺍﻻﻣﺮ )‪:(once‬‬
‫ﻋﺪﺩ ﺍﻟﺼﻔﻮﻑ = ﻋﺪﺩ ﺍﻻﻋﻤﺪﺓ = ‪>> x = ones (3) 3‬‬
‫=‪x‬‬
‫‪1 1 1‬‬
‫‪1 1 1‬‬
‫‪1 1 1‬‬

‫)‪>> y = ones (3,2‬‬

‫ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﻋﺪﺩ ﺍﻟﺼﻔﻮﻑ = ‪y‬‬


‫‪1 1‬‬
‫‪1 1‬‬
‫‪1 1‬‬

‫‪7‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬
‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﻣﺜﺎﻝ )‪ :(2‬ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺻﻔﺮﻳﺔ ﻧﺴﺘﺨﺪﻡ ﺍﻻﻣﺮ )‪:(zeros‬‬


‫)‪>> s = zeros (2‬‬ ‫ﻋﺪﺩ ﺍﻟﺼﻔﻮﻑ = ﻋﺪﺩ ﺍﻻﻋﻤﺪﺓ = ‪2‬‬
‫=‪s‬‬
‫‪0 0‬‬
‫‪0 0‬‬
‫)‪>> s = zeros (2, 5‬‬

‫=‪s‬‬ ‫ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﻋﺪﺩ ﺍﻟﺼﻔﻮﻑ‬


‫‪0 0 0 0‬‬
‫‪0 0 0 0‬‬
‫ﻣﺜﺎﻝ )‪ :(3‬ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺍﻟﻮﺣﺪﺓ ﻧﺴﺘﺨﺪﻡ ﺍﻻﻣﺮ )‪:(eye‬‬
‫)‪>> eye (4‬‬
‫= ‪ans‬‬
‫‪1 0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0 1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0 0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪0 0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫)‪>> eye (4,3‬‬

‫ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﻋﺪﺩ ﺍﻟﺼﻔﻮﻑ‬


‫= ‪ans‬‬
‫‪1 0 0‬‬
‫‪0 1 0‬‬
‫‪0 0 1‬‬
‫‪0 0 0‬‬
‫ﻣﺜﺎﻝ )‪ :(4‬ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺑﺤﺠﻢ ﻣﺼﻔﻮﻓﺔ ﻣﻌﻠﻮﻣﺔ ﻣﺴﺒﻘﺎ ً ﻧﺴﺘﺨﺪﻡ ﺍﻻﻣﺮ )‪:(size‬‬
‫]‪>> g=[3,5,7,8;1,3,4,5;7,8,4,1‬‬
‫=‪g‬‬
‫‪3 5 7 8‬‬
‫‪1 3 4 5‬‬
‫‪7 8 4 1‬‬
‫)‪>> size (g‬‬ ‫)ﺗﺤﺪﻳﺪ ﺃﺑﻌﺎﺩ ﻣﺼﻔﻮﻓﺔ(‬
‫= ‪ans‬‬
‫‪3 4‬‬
‫))‪>>w = ones (size (g‬‬
‫=‪w‬‬

‫‪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‬‬

‫ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﻋﺪﺩ ﺍﻟﺼﻔﻮﻑ‬


‫= ‪ans‬‬
‫‪0.4447 0.6154 0.7919 0.9218 0.7382‬‬
‫ﻣﺜﺎﻝ )‪ :(6‬ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻋﺸﻮﺍﺋﻴﺔ ﺍﻟﻘﻴﻢ ﻧﺴﺘﺨﺪﻡ ﺍﻻﻣﺮ )‪:(Magic‬‬
‫)‪>> magic(3‬‬
‫= ‪ans‬‬
‫‪8 1 6‬‬
‫‪3 5 7‬‬
‫‪4 9 2‬‬
‫ﻣﺜﺎﻝ )‪ :(7‬ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻟﺘﻜﺮﺍﺭ ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ ﻧﺴﺘﺨﺪﻡ ﺍﻻﻣﺮ )‪:(repmat‬‬
‫)‪>> repmat (3,2,3‬‬ ‫)ﺗﻜﺮﺍﺭ ﺍﻟﻘﻴﻤﺔ ‪ 3‬ﺑﺎﻷﺑﻌﺎﺩ ‪(2 u 3‬‬

‫ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﻋﺪﺩ ﺍﻟﺼﻔﻮﻑ = ‪ans‬‬


‫‪3 3 3‬‬
‫‪3 3 3‬‬
‫;‪>> d = pi‬‬
‫)‪>> repmat (d, 3, 4‬‬ ‫)ﺗﻜﺮﺍﺭ ﺍﻟﻘﻴﻤﺔ ‪ d‬ﺑﺎﻷﺑﻌﺎﺩ ‪(3 u 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‬‬

‫‪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‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫)‪>> B = A (1: 2, 2: 3‬‬ ‫ﻣﻼﺣﻈﺔ‪ :‬ﻟﻠﺤﺼ ﻮﻝ ﻋﻠﻰ ﻣﺼ ﻔﻮﻓﺔ ﺗﺒﺪﺃ ﻣﻦ ﺍﻟﺼ ﻒ‬


‫=‪B‬‬ ‫ﺍﻷﻭﻝ ﺍﻟﻰ ﺍﻟﺼ ﻒ ﺍﻟﺜﺎﻧﻲ ﻭﻣﻦ ﺍﻟﻌﻤﻮﺩ ﺍﻟﺜﺎﻧﻲ ﺍﻟﻰ‬
‫‪2 3‬‬ ‫ﺍﻟﻌﻤﻮﺩ ﺍﻟﺜﺎﻟﺚ ﻟﻠﻤﺼﻔﻮﻓﺔ ‪A‬‬
‫‪5 6‬‬
‫)‪>> D = A (:‬‬ ‫ﻣﻼﺣﻈﺔ‪ :‬ﻟﻠﺤﺼ ﻮﻝ ﻋﻠﻰ ﺍﻟﻤﺼ ﻔﻮ ﻓﺔ ‪ D‬ﺑﺠ ﻌﻞ‬
‫=‪D‬‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ ‪ A‬ﻛﻤﺼﻔﻮﻓﺔ ﻋﻤﻮﺩ ﻭﺃﺧﺬ ﺃﻋﻤﺪﺗﻬﺎ ﻋﻤﻮﺩ‬
‫‪1‬‬ ‫ﺑﻌﺪ ﻋﻤﻮﺩ‬
‫‪4‬‬
‫‪7‬‬
‫‪2‬‬
‫‪5‬‬
‫‪8‬‬
‫‪3‬‬
‫‪6‬‬
‫‪9‬‬
‫'‪>> C=A‬‬ ‫ﻣﻼﺣﻈﺔ‪ :‬ﻟﺘﺤﻮﻳﻞ ﺻ ﻔﻮﻑ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﺍﻟﻰ ﺃﻋﻤﺪﺓ‬
‫=‪C‬‬ ‫ﻧﺴﺘﺨﺪﻡ ﺇﺷﺎﺭﺓ ﺍﻟﻤﻨﻘﻮﻝ ﺍﻟﻤﺪﻭﺭ )'( ﻭﺑﺎﻟﻌﻜﺲ‪.‬‬
‫‪1 4 7‬‬
‫‪2 5 8‬‬
‫‪3 6 9‬‬
‫'‪>> L=C‬‬
‫=‪L‬‬
‫‪1 2 3‬‬
‫‪4 5 6‬‬
‫‪7 8 9‬‬
‫ﻣﺜﺎﻝ )‪:(3‬‬
‫]‪>> B = [1 2 3; 4 5 6; 7 8 9‬‬
‫=‪B‬‬
‫‪1 2 3‬‬
‫‪4 5 6‬‬
‫‪7 8 9‬‬
‫)‪>> C = reshape (B, 1, 9‬‬ ‫ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ‪ :‬ﻹﻋﺎﺩﺓ ﺗﺮﺗﻴﺐ ﺍﻟﻤﺼ ﻔﻮﻓﺔ ﺑﺄﺑﻌﺎﺩ‬
‫=‪C‬‬ ‫ﺟ ﺪﻳ ﺪﺓ ﻧﺴ ﺘﺨ ﺪﻡ ﺍﻻﻣﺮ ‪ reshape‬ﺇﺫ ﺗﻢ ﺗﺤﻮﻳ ﻞ‬
‫‪1 4 7 2 5 8 3 6 9‬‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ ‪ B‬ﺍﻟﻰ ﻋﻤﻮﺩ ﻭﺍﺣﺪ ﻭﺗﺴﻌﺔ ﺻﻔﻮﻑ‪.‬‬
‫;)]‪>> C = reshape (B, [1 9‬‬
‫=‪C‬‬

‫‪12‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔ ﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫‪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‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ً‬
‫ﺳﺎﺑﻌﺎ‪ :‬ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﳊﺴﺎﺑﻴﺔ ﺑﲔ ﺍﳌﺼﻔﻮﻓﺔ ﻭﺍﻟﻌﺪﺩ ﺍﳌﻔﺮﺩ‪:‬‬
‫ﺗﺠﺮﻱ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤ ﺴﺎﺑﻴﺔ ﻛﻌﻤﻠﻴﺔ ﺍﻹ ﺿﺎﻓﺔ ﻭﺍﻟﻄﺮﺡ ﻭﺍﻟ ﻀﺮﺏ ﻭﺍﻟﻘ ﺴﻤﺔ ﺑﻴﻦ ﺍﻟﻌﺪﺩ ﺍﻟﻤﻔﺮﺩ‬
‫ﻭﺑﻴﻦ ﺟﻤﻴﻊ ﻋﻨﺎﺻﺮ ﺍﻟﻤﺼﻔﻮﻓﺔ‪.‬‬
‫ﻣﺜﺎﻝ )‪:(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‬‬

‫‪1 2 3 4‬‬ ‫‪1 1 1 1‬‬


‫‪5 6 7 8‬‬ ‫‪2 2 2 2‬‬
‫‪9 10 11 12‬‬ ‫‪3 3 3 3‬‬

‫‪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‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫‪>> g .^ 2‬‬ ‫ﻟ ﻘﺪ ﻭ ﺟﺪ ﻧﺎ ﻫ ﻨﺎ ﻣﺮﺑﻊ ﻛﻞ ﻋﻨﺼ ﺮ ﻣﻦ ﻋ ﻨﺎﺻ ﺮ‬


‫= ‪ans‬‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ ‪.g‬‬
‫‪1 4 9 16‬‬
‫‪25 36 49 64‬‬
‫‪81 100 121 144‬‬
‫ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً‪ :‬ﻳﺠﻌﻞ ﻭﺟﻮﺩ ﺍﻟﻨﻘﻄﺔ ﺃﻣﺎﻡ ﺇﺷ ﺎﺭﺓ ﺍﻟﻀ ﺮﺏ ﺍﻟﻘﻴﺎﺳ ﻴﺔ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﻳﻀ ﺮﺏ‬
‫ﺍﻟﻤﺼﻔﻮﻓﺘﻴﻦ ﻋﻨﺼﺮﺍ ﺑﻌﻨﺼﺮ‪ ،‬ﺑﻴﻨﻤﺎ ﺗﺨﺒﺮ ﺇﺷﺎﺭﺓ ﺍﻟﻀﺮﺏ ﻟﻮﺣﺪﻫﺎ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻥ ﻳﻘﻮﻡ ﺑﻀﺮﺏ ﻣﺼﻔﻮﻓﺎﺕ‬
‫ﻋﺎﺩﻳﺔ‪.‬‬
‫‪>> g * h‬‬
‫‪Error‬‬
‫ﻻﻥ ﻋﺪﺩ ﺍﻷﺳﻄﺮ ﻟﻠﻤﺼﻔﻮﻓﺔ ‪ z g‬ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﻟﻠﻤﺼﻔﻮﻓﺔ ‪h‬‬
‫ً‬
‫ﺗﺎﺳﻌﺎ‪ :‬ﺍﻟﺒﺤﺚ ﻋﻦ ﻣﺼﻔﻮﻓﺔ ﺟﺰﺋﻴﺔ‪:‬‬
‫ﻣﺜﺎﻝ )‪ :(1‬ﻣﻦ ﺍﻟﻤﻔﻴﺪ ﻓﻲ ﺑﻌﺾ ﺍﻷﺣﻴﺎﻥ ﺇﻥ ﺗﻌﺮﻑ ﻣﻮﻗﻊ ﺃﻭ ﺩﻟﻴﻞ ﺍﻟﻌﻨﺎﺻ ﺮ ﺍﻟﺘﻲ ﺗﺤﻘﻖ ﺷ ﺮﻁﺎ ﻣﻌﻴﻨﺎ‪،‬‬
‫ﻭﺍﻟﻤﻮﺟﻮﺩﺓ ﺿ ﻤﻦ ﻣﺼ ﻔﻮﻓﺔ ﻣﻌﻴﻨﺔ‪ .‬ﻳﻘﻮﻡ ﺑﺮﻧﺎﻣﺞ ﺍﻟﻤﺎﺗﻼﺏ ﺑﺘﺤﻘﻴﻖ ﻫﺬﻩ ﺍﻟﻐﺎﻳﺔ ﻋﺒﺮ ﺍﻻﻳﻌﺎﺯ ‪ ،find‬ﻭﺍﻟﺬﻱ‬
‫ﻳﻌﻴﺪ ﻟﻚ ﺩﻟﻴﻞ ﺃﻭ ﻣﻮﻗﻊ ﺍﻟﻌﻨﺼﺮ ﺍﻟﺬﻱ ﺗﻜﻮﻥ ﻧﺘﻴﺠﺔ ﺗﺤﻘﻴﻘﻪ ﻟﺸﺮﻁ ﻣﺎ ‪ ،true‬ﻭﺍﻟﻴﻚ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫‪>> x = -3: 3‬‬
‫=‪x‬‬
‫‪-3 -2 -1 0 1 2 3‬‬
‫)‪>> k = find (abs (x) > 1‬‬
‫=‪k‬‬ ‫)ﺍﻟﻤﻮﻗﻊ(‬
‫‪1 2 6 7‬‬
‫)‪>> y = x (k‬‬
‫=‪y‬‬
‫‪-3 -2 2 3‬‬
‫)‪>> y = x (abs (x) > 1‬‬
‫=‪y‬‬
‫‪-3 -2 2 3‬‬
‫ﻣﺜﺎﻝ )‪ :(2‬ﻳﺴﺘﻄﻴﻊ ﺍﻻﻳﻌﺎﺯ ‪ find‬ﺃﻥ ﻳﻌﻤﻞ ﻓﻲ ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺍﻟﺜﻨﺎﺋﻴﺔ ﺍﻟﺒﻌﺪ ﺃﻳﻀﺎ )ﻋﻤﻮﺩ ﺑﻌﺪ ﻋﻤﻮﺩ(‪ ،‬ﻓﻤﺜﻼ‪:‬‬
‫]‪>> A = [1 2 3; 4 5 6; 7 8 9‬‬
‫=‪A‬‬
‫‪1 2 3‬‬
‫‪4 5 6‬‬
‫‪7 8 9‬‬
‫)‪>> [i, j] = find (A > 6‬‬
‫=‪i‬‬
‫‪3‬‬

‫‪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‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﲨﻞ ﺍﻹﺩﺧﺎﻝ ﻭﺍﻹﺧﺮﺍﺝ ﻭﺍﳉﻤﻞ ﺍﻟﺸﺮﻃﻴﺔ‬


‫ً‬
‫ﺃﻭﻻ‪ :‬ﲨﻞ ﺍﻹﺩﺧﺎﻝ‪ :‬ﻫﻨﺎﻙ ﻋﺪﺓ ﺻﻴﻎ ﻟﻺﺩﺧﺎﻝ ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻨﺴﻴﺐ ﻣﻨﻬﺎ ﺍﻻﻳﻌﺎﺯ ‪:input‬‬
‫ﻣﺜﺎﻝ )‪:(1‬‬
‫)' ‪>> x = input ('enter x:‬‬
‫‪enter x:‬‬
‫ﻣﺜﺎﻝ )‪ :(2‬ﺇﺩﺧﺎﻝ ﺍﻷﻋﺪﺍﺩ‪:‬‬
‫;)' =‪>> x=input('First Degree is‬‬
‫;‪First Degree is= 55‬‬
‫;)' =‪>> y=input('Second Degree is‬‬
‫;‪Second Degree is= 75‬‬
‫‪>> Average=(x+y)/2‬‬
‫= ‪Average‬‬
‫‪65‬‬
‫ﻣﺜﺎﻝ )‪ :(3‬ﺇﺩﺧﺎﻝ ﺃﺳﻤﺎء ﺭﻣﺰﻳﺔ‪:‬‬
‫;)'‪z = input ('enter name', 's‬‬ ‫ﺗﺴﺘﺨﺪﻡ ﺍﻟﻌﻼﻣﺔ )' '( ﻟﻠﺪﻻﻟﺔ ﻋﻠﻰ ﺍﻥ ﺍﻟﻤﺘﻐﻴﺮ ﻫﻮ ﺭﻣﺰﻱ‬
‫ﻭﻟﻴﺲ ﻋﺪﺩﻱ‬
‫ً‬
‫ﺛﺎﻧﻴﺎ‪ :‬ﲨﻞ ﺍﻹﺧﺮﺍﺝ‪ :‬ﻫﻨﺎﻙ ﻋﺪﺓ ﺻﻴﻎ ﻟﻺﺧﺮﺍﺝ ﻣﻨﻬﺎ‪:‬‬
‫ﺃ‪ -‬ﺍﻻﻳﻌﺎﺯ ‪ :disp‬ﻳﺠﺐ ﺃﻥ ﻳﻜﻮﻥ ﻣﺤﺘﻮﻳﺎﺕ ‪ disp‬ﻗﻴﻤﺔ ﺫﺍﺕ ﻧﻮﻉ ﺑﻴﺎﻧﻲ ﻭﺍﺣﺪ ﺿ ﻤﻦ ﺍﻟﺠﻤﻠﺔ ﺍﻟﻮﺍﺣﺪﺓ )ﻛﻞ‬
‫ﺟﻤﻠﺔ ﻧﻮﻉ ﺑﻴﺎﻧﻲ ﻭﺍﺣﺪ(‪.‬‬
‫ﻣﺜﺎﻝ )‪:(1‬‬
‫;‪>> d = 15‬‬
‫;)‪>> disp (d‬‬
‫‪15‬‬
‫ﻣﺜﺎﻝ )‪:(2‬‬
‫;'‪>> a = 'ali‬‬
‫;)‪>> disp (a‬‬
‫‪ali‬‬
‫ﻣﺜﺎﻝ )‪:(3‬‬
‫;‪>> sum = 9.8‬‬ ‫ﻣﻼﺣﻈ ﺔ‪ :‬ﻓﻲ ﺣ ﺎﻟ ﺔ ﻛﻮﻥ ﻣﺤﺘﻮﻳ ﺎﺕ ‪ disp‬ﺃﻛﺜﺮ ﻣﻦ‬
‫ﻗﻴﻤﺔ ﺫﺍﺕ ﻧﻮﻉ ﺑﻴﺎﻧﻴﺔ ﻣﺨﺘﻠﻔﺔ ﺿ ﻤﻦ ﺍﻟﺠﻤﻠﺔ ﺍﻟﻮﺍﺣﺪﺓ ;)])‪>> disp (['sum = ', num2str (sum‬‬
‫‪sum = 9.8‬‬ ‫)ﻳﺠﺐ ﺍﻥ ﺗﺠﻤﻊ ﺍﻟﻘﻴﻢ ﻓﻲ ﻗﻮﺳﻴﻦ ﻛﺒﻴﺮﻳﻦ ] [ ‪.‬‬
‫ﻣﺜﺎﻝ )‪:(4‬‬
‫;)'‪>> disp ('computer‬‬
‫‪Computer‬‬

‫‪21‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﺝ‪ -‬ﺗﻌﻠﻴﻤﺔ ‪:fprintf‬‬


‫ﻣﺜﺎﻝ )‪:(1‬‬
‫;‪>> y = 1.2‬‬ ‫ﻭﻫﺬﺍ ﻳﻌﻨﻲ ﺑﺄﻧﻪ ﺗﻢ ﺣﺠﺰ ‪ 6‬ﻣﺮﺍﺗﺐ ﻣﻨﻬﺎ ‪ 3‬ﻣﺮﺍﺗﺐ‬
‫;‪>> x = 100.5‬‬ ‫ﺑﻌﺪ ﺍﻟﻔﺎﺭﺯﺓ ﺍﻟﻌﺸﺮﻳﺔ‪.‬‬
‫;)‪>> fprintf ('variable x is % 6.3f\n', x‬‬
‫;)‪>> fprintf ('variable y is % 6.3f\n', y‬‬
‫‪variable x is 1.200‬‬
‫‪variable y is 100.500‬‬
‫ﻣﺜﺎﻝ )‪:(2‬‬
‫;))‪>> fprintf ('% 8.3f\n', round (3.8‬‬
‫‪4.000‬‬
‫ﻣﺜﺎﻝ )‪:(3‬‬
‫;‪>> x=15000‬‬
‫;‪>> y=12‬‬
‫)‪>> fprintf('Numer = %e',x‬‬
‫‪Numer = 1.500000e+04‬‬
‫)‪>> fprintf('Numer = %e',y‬‬
‫‪Numer = 1.200000e+01‬‬
‫ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ‪:‬‬
‫ﻳﻤﻜﻦ ﻁﺒﺎﻋﺔ ﺍﻷﻋﺪﺍﺩ ﻭﺍﻷﺳ ﻤﺎء ﻭﺍﻟﻨﺘﺎﺋﺞ ﻣﻦ ﺧﻼﻝ ﻛﺘﺎﺑﺔ ﺍﻻﻳﻌﺎﺯﺍﺕ ﺑﺪﻭﻥ ﻓﺎﺭﺯﺓ ﻣﻨﻘﻮﻁﺔ ﻭﺳ ﺘﻈﻬﺮ‬
‫ﺍﻟﻨﺘﺎﺋﺞ ﻓﻲ ﻧﺎﻓﺬﺓ ﺍﻷﻣﺮ ‪.Command Window‬‬

‫‪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‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﻣﻼﺣﻈﺔ ﻣﻬﻤﺔ ﺟﺪﺍً‪:‬‬


‫ﻻﺣﻆ ﺑﺎﻥ ﺍﻹﺷ ﺎﺭﺗﻴﻦ )=( ﻭ )==( ﺗﻌﻨﻴﺎﻥ ﺷ ﻴﺌﺎ ً ﻣﺨﺘﻠﻔﺎ ً‪ ،‬ﺣﻴﺚ ﻳﻘﻮﻡ )==( ﺑﻤﻘﺎﺭﻧﺔ ﻣﺘﻐﻴﺮﻳﻦ ﻭﺗﻌﻴﺪ ﺍﻟﻌﺪﺩ‬
‫ﻭﺍﺣﺪ ﺇﺫﺍ ﻛﺎﻧﺎ ﻣﺘﺴ ﺎﻭﻳﻴﻦ ﻭﺻ ﻔﺮﺍً ﺇﺫﺍ ﻟﻢ ﻳﻜﻮﻧﺎ ﻣﺘﺴ ﺎﻭﻳﻴﻦ‪ ،‬ﺑﻴﻨﻤﺎ ﺗﺴ ﺘﺨﺪﻡ )=( ﻹﺳ ﻨﺎﺩ ﺇﺧﺮﺍﺝ ﺍﻟﻌﻤﻠﻴﺔ ﺇﻟﻰ‬
‫ﻣﺘﻐﻴﺮ‪.‬‬
‫ﻣﺜﺎﻝ )‪ :(1‬ﻟﺘﻮﻟﻴﺪ ﻣﺼ ﻔﻮﻓﺔ ﺃﺣﺎﺩﻳﺔ ﻣﻨﻄﻘﻴﺔ ﻋﻨﺎﺻ ﺮﻫﺎ ﻭﺍﺣﺪﺍﺕ )ﻓﻲ ﺣﺎﻟﺔ ‪ X‬ﺃﻛﺒﺮ ﻣﻦ ‪ (Y‬ﻭﺍﺻ ﻔﺎﺭﺍً )ﻓﻲ‬
‫ﺣﺎﻟﺔ ‪ X‬ﺃﺻﻐﺮ ﻣﻦ ﺃﻭ ﺗﺴﺎﻭﻱ ‪.(Y‬‬
‫;]‪>> X= [10 17 22 0 7 3 2‬‬
‫;‪>> Y= 7‬‬
‫)‪>> y = (X > Y‬‬
‫=‪y‬‬
‫‪1 1 1 0 0 0 0‬‬
‫ﻣﺜﺎﻝ )‪ :(2‬ﻟﺘﻮﻟﻴﺪ ﻣﺼ ﻔﻮﻓﺔ ﺃﺣﺎﺩﻳﺔ ﻋﻨﺎﺻ ﺮﻫﺎ ﻧﻔﺲ ﺍﻟﻌﻨﺎﺻ ﺮ )ﻓﻲ ﺣﺎﻟﺔ ‪ X‬ﺃﻛﺒﺮ ﻣﻦ ‪ (Y‬ﻭﺍﺻ ﻔﺎﺭﺍً )ﻓﻲ‬
‫ﺣﺎﻟﺔ ‪ X‬ﺃﺻﻐﺮ ﻣﻦ ﺃﻭ ﺗﺴﺎﻭﻱ ‪.(Y‬‬
‫)‪>> z = X.* (X>Y‬‬
‫=‪z‬‬
‫‪10 17 22 0 0 0 0‬‬
‫ً‬
‫ﺛﺎﻧﻴﺎ‪ :‬ﺍﳌﻌﺎﻣﻼﺕ ﺍﳌﻨﻄﻘﻴﺔ )ﺍﻟﻌﻮﺍﻣﻞ ﺍﳌﻨﻄﻘﻴﺔ( ‪Logical Operators:‬‬
‫ﺗﻮﻓﺮ ﺍﻟﻤﻌﺎﻣﻼﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ ﻁﺮﻳﻘﺔ ﻟﺪﻣﺞ ﺃﻭ ﻧﻔﻲ ﺗﻌﺎﺑﻴﺮ ﺍﻟﻤﻘﺎﺭﻧﺔ‪ ،‬ﻭﻳﻈﻬﺮ ﺍﻟﺠﺪﻭﻝ ﺍﻟﺘﺎﻟﻲ ﺍﻟﻤﻌﺎﻣﻼﺕ ﺍﻟﻤﻨﻄﻘﻴﺔ‬
‫ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﻟﻐﺔ ﺍﻟﻤﺎﺗﻼﺏ‪:‬‬
‫ﺍﻟﻮﺻﻒ‬ ‫ﺍﻟﻤﻌﺎﻣﻞ ﺍﻟﻤﻨﻄﻘﻲ‬
‫‪) AND‬ﻭ(‬ ‫&‬
‫‪) OR‬ﺃﻭ(‬ ‫|‬
‫‪) NOT‬ﻧﻔﻲ(‬ ‫~‬
‫ﻣﺜﺎﻝ )‪:(1‬‬
‫;‪>> a = 1‬‬
‫;‪>> b = 5‬‬
‫‪>> x = a ~= b‬‬
‫=‪x‬‬
‫‪1‬‬
‫ﻣﺜﺎﻝ )‪:(2‬‬
‫)‪>> b = (1 == 1) & (2 ~= 3‬‬ ‫ﻳﺠﺐ ﺍﻥ ﻳﺘﺤﻘﻖ ﺍﻟﺸﺮﻁﻴﻦ ﻣﻌﺎ ً‬
‫=‪b‬‬
‫‪1‬‬
‫)‪>> b = (1==1) | (2 ~= 3‬‬ ‫ﻳﺠﺐ ﺍﻥ ﻳﺘﺤﻘﻖ ﺍﻟﺸﺮﻁﻴﻦ ﻣﻌﺎ ً‬
‫‪b= 1‬‬

‫‪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) ‫ﻣﺜﺎﻝ‬

x=input('Please input the value of x:');


y=input('Please input the value of y:');
z=0; w=0;
if (x>=2) & (y==0.5)
disp('(x>=2) & (y==0.5)')
z=1/sqrt(2*pi*y/x)
elseif x==4
z=exp(-1*y/(2*x))/(log(y)*sqrt(x))
elseif (x>=10) & (y<8)
w=sin(x)

27
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫‪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‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

‫ﲨﻞ ﺍﻟﺪﻭﺭﺍﻥ ﻭﺍﻟﺘﻜﺮﺍﺭ‬


‫ﺗﻮﻓﺮ ﻟﻐﺔ ﺍﻟﻤﺎﺗﻼﺏ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺟﻤﻞ ﺍﻟﺪﻭﺭﺍﻥ ﻭﺍﻟﺘﻜﺮﺍﺭ ﻭﻫﻲ‪:‬‬
‫‪ -1‬ﲨ ﻠﺔ‪ :for :‬ﺗﻘﻮﻡ ﺣﻠ ﻘﺎﺕ ‪ for‬ﺑﺈ ﻋﺎﺩﺓ ﺗﻨﻔ ﻴﺬ ﻣﺠﻤﻮ ﻋﺔ ﻣﻦ ﺍﻷﻭﺍﻣﺮ ﻟ ﻌﺪﺩ ﻣﻌﻴﻦ ﻣﻦ ﺍﻟﻤﺮﺍﺕ ﻭﺑﺨﻄﻮﺓ‬
‫ﻣﻌﻴﻨﺔ‪ ،‬ﻭﺗﻌﻄﻰ ﺍﻟﺼﻴﻐﺔ ﺍﻟﻌﺎﻣﺔ ﻟﺤﻠﻘﺔ )‪ (for‬ﻛﻤﺎ ﻳﻠﻲ‪:‬‬
‫‪for i = x1: x3: x2‬‬ ‫ﺣﻴﺚ ﻳﻌﺎﺩ ﺗﻨﻔﻴﺬ ﺍﻷﻭﺍﻣﺮ)‪ (commands‬ﺍﻟﻮﺍﻗﻌﺔ ﺑﻴﻦ ﻋﺒﺎﺭﺗﻲ‬
‫)‪(commands‬‬ ‫‪ for‬ﻭ‪ end‬ﻣﻦ ﺍﻟﻘﻴﻤ ﺔ ﺍﻻﺑﺘ ﺪﺍﺋﻴ ﺔ ‪ x1‬ﺇﻟﻰ ﺍﻟﻘﻴﻤ ﺔ ﺍﻟﻨﻬ ﺎﺋﻴ ﺔ ‪x2‬‬
‫;‪end‬‬ ‫ﻭﺑﺰﻳﺎﺩﺓ ﻣﻘﺪﺍﺭﻫﺎ ‪ .x3‬ﻛﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫ﻣﺜﺎﻝ )‪:(1‬‬
‫ﻭﻳﻤﻜﻦ ﺗﻔﺴﻴﺮ ﻫﺬﻩ ﺍﻟﺪﻭﺭﺓ‪ :‬ﻣﻦ ﺍﺟﻞ ﻛﻞ ﻗﻴﻤﺔ ﻟـ ‪ n‬ﻣﻦ ‪ 1‬ﺇﻟﻰ ‪ 5‬ﻳﺠﺐ ﺣﺴﺎﺏ ﻗﻴﻤﺔ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﻤﻮﺟﻮﺩﺓ ﺣﺘﻰ‬
‫ﻋﺒﺎﺭﺓ ‪ end‬ﺍﻟﺘﺎﻟﻴﺔ‪ ،‬ﺗﻜﻮﻥ ﻗﻴﻤﺔ ‪ n‬ﻓﻲ ﺍﻟﺪﻭﺭﺓ ﺍﻷﻭﻟﻰ ‪ ،n = 1‬ﻭﺗﻜﻮﻥ ﻓﻲ ﺍﻟﺪﻭﺭﺓ ﺍﻟﺜﺎﻧﻴﺔ ‪ n = 2‬ﻭﻫﻜﺬﺍ ﺣﺘﻰ‬
‫ﺗﺼﻞ ﺇﻟﻰ ‪.n = 5‬‬
‫‪>> for n=1:5‬‬
‫)‪x(n)=sin(n/10‬‬
‫‪end‬‬
‫=‪x‬‬
‫‪0.0998‬‬
‫=‪x‬‬
‫‪0.0998 0.1987‬‬
‫=‪x‬‬
‫‪0.0998 0.1987 0.2955‬‬
‫=‪x‬‬
‫‪0.0998 0.1987 0.2955 0.3894‬‬
‫=‪x‬‬
‫‪0.0998 0.1987 0.2955 0.3894 0.4794‬‬
‫ﻣﻼﺣﻈﺔ‪:‬‬
‫ﺍﻟﻔﺮﻕ ﺑﻴﻦ ﺍﻻﺩﺧﺎﻝ ﺍﻻﻋﺘﻴﺎﺩﻱ ﻭﺍﻻﺩﺧﺎﻝ ﺑﺼﻴﻐﺔ ﺍﻟﺘﻜﺮﺍﺭ )‪ (for‬ﻫﻮ ﺍﻥ ﺍﻻﺩﺧﺎﻝ ﺑﺼﻴﻐﺔ ﺍﻟﺘﻜﺮﺍﺭ ﻳﺴﺘﻨﺪ ﺍﻟﻰ‬
‫ﺩﻭﺭﺍﺕ ﻣﺘﻼﺣﻘﺔ ﻛﻞ ﻣﺮﺓ ﻳﺜﺒﺖ ﻗﻴﻤﺔ ﻭﻳﺒﺪﺉ ﺑﺎﻷﺧﺮﻯ ﻭﻫﻜﺬﺍ‪...‬‬
‫ﻣﺜﺎﻝ )‪ :(2‬ﺍﻻﺩﺧﺎﻝ ﺍﻻﻋﺘﻴﺎﺩﻱ‪:‬‬
‫;‪>> x=1:5‬‬
‫)‪>> y=sin(x‬‬
‫=‪y‬‬
‫‪0.8415 0.9093 0.1411 -0.7568 -0.9589‬‬
‫ﻣﺜﺎﻝ )‪ :(3‬ﺍﻻﺩﺧﺎﻝ ﺑﺼﻴﻐﺔ ﺍﻟﺘﻜﺮﺍﺭ )‪ (for‬ﺑﺪﻻﻟﺔ )‪:(x‬‬
‫;‪>> for x=1:5‬‬
‫)‪y(x)=sin(x‬‬

‫‪30‬‬
‫ﺟﺎﻣﻌﺔ ﺍﻟﺒﺼﺮﺓ‬

‫‪MATLAB‬‬ ‫ﻛﻠﻴﺔﺍﻟﺘﺮﺑﻴﺔ ﻟﻠﻌﻠﻮﻡ ﺍﻟﺼﺮﻓﺔ‬

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

You might also like