You are on page 1of 12

‫ﺟﻠﺳﺔ اﻟﻌﻣﻠﻲ اﻷوﻟﻰ‪-‬ﻣﺎدة ﻧظرﯾﺔ اﻟﻣﻌﻠوﻣﺎت‬

‫ﻣﺎ ھو ﻣﺎﺗﻼب‬
‫ـ ) ‪( MATrix LABoratory‬‬ ‫) ‪( MATLAB‬‬
‫أﺳﺎس أﻧﮭﺎ ﻣﺻﻔوﻓﺔ )ﺣﺗﻰ اﻟﻘﯾﻣﺔ اﻷﺣﺎدﯾﺔ ھﻲ ﻣﺻﻔوﻓﺔ ﻣن ﺳطر واﺣد وﻋﻣود واﺣد(‪ ،‬وﯾﺣﺗوي ﺗواﺑﻊ ﺟﺎھز‬

‫ﯾﻣﻛﻧﻧﺎ ﻛﺗﺎﺑﺔ ﺑراﻣﺞ ﺑﮭﺎ ﺑﻣﺳﺗوﯾﺎت ﻣﺧﺗﻠﻔﺔ‪ :‬ﻣﻧﺧﻔﺿﺔ اﻟﻣﺳﺗوى و ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى ‪ ،‬و ذﻟك ﻛﻠﮫ ﻓﻲ ﺑﯾﺋﺔ ﺳﮭﻠﺔ اﻻﺳﺗﺧدام‪.‬‬
‫ﯾﺳﺗﺧدم ﺑرﻧﺎﻣﺞ ﻣﺎﺗﻼب ﻓﻲ‪:‬‬
‫‪ .1‬إﻧﺠﺎز اﻟﺤﺴﺎﺑﺎت ) ‪( Math and Computation‬‬

‫‪ .2‬ﺗﻄﻮﯾﺮ اﻟﺨﻮارزﻣﯿﺎت ) ‪( Algorithm Development‬‬

‫‪ .3‬ﺗﺤﺼﯿﻞ اﻟﻤﻌﻄﯿﺎت ) ‪ ( Data Acquisition‬وھﻮ ﻣﺎ ﯾﺘﻀﻤﻦ ﻗﺮاءة اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺑﻄﺎﻗﺎت اﻟﺘﺤﺼﯿﻞ ‪ acquisition card‬اﻟﺘﻲ ﺗﻮﺻﻞ‬
‫إﻟﯿﮭﺎ ﺣﺴﺎﺳﺎت ‪ ) sensor‬ﻣﺜﻞ ﺣﺴﺎﺳﺎت اﻟﺤﺮارة أو اﻟﺮطﻮﺑﺔ( ﺛﻢ إﯾﺠﺎد ﺗﻮاﺑﻊ ﺗﻤﺜﻞ ﺗﻌﻄﻲ ﻗﯿﻢ ھﺬه اﻟﺒﯿﺎﻧﺎت اﻟﻤﺤﺼﻠﺔ )ﻋﺒﺮ ﻋﻤﻠﯿﺔ اﻻﺳﺘﯿﻔﺎء‬
‫اﻟﺮﯾﺎﺿﻲ ‪.(interpolation‬‬

‫‪ .4‬اﻟﻨﻤﺬﺟﺔ و اﻟﻤﺤﺎﻛﺎة و إﻋﺎدة ﻧﻤﺬﺟﺔ اﻟﻨﻈﺎم ‪( Modeling , Simulink , and Prototyping ).‬‬

‫‪ .5‬ﺗﺤﻠﯿﻞ اﻟﻤﻌﻄﯿﺎت و ﻣﻌﺎﻟﺠﺘﮭﺎ و إظﮭﺎر اﻟﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺷﻜﻞ رﺳﻮﻣﺎت ) ‪( Data Analysis , Exploration , and Visualization‬‬

‫‪ .6‬ﻣﺤﺎﻛﺎة ﻟﻠﻌﻠﻮم اﻟﮭﻨﺪﺳﯿﺔ و اﻟﻔﯿﺰﯾﺎﺋﯿﺔ و ذﻟﻚ ﻋﻦ طﺮﯾﻖ اﻟﺮﺳﻮﻣﺎت‪.‬‬

‫‪ .7‬ﺗﻄﻮﯾﺮ اﻟﺘﻄﺒﯿﻘﺎت ) ‪ ( Application Development‬ﻋﺒﺮ ﻋﻤﻞ واﺟﮭﺎت إظﮭﺎر ﻟﻠﻤﺴﺘﺨﺪم ‪ GUI‬ورﺑﻄﮭﺎ وﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫وﺧﻮارزﻣﯿﺎت ﻣﻌﺎﻟﺠﺔ اﻟﺒﯿﺎﻧﺎت‪.‬‬

‫ﺑ ﺮﻧﺎﻣﺞ اﻟﻤﺎﺗﻼب ھﻮ ﺑﺮﻧﺎﻣﺞ ھﻨﺪﺳﻲ )وﻟﮫ ﻣﺠﺎﻻت أﺧﺮى( ﯾﻘﻮم ﺑﻌﻤﻠﯿﺎت ﺗﺤﻠﯿﻞ وﺗﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺧﻼل ﻣﻌﺎﻟﺠﺔ ﺗﻠﻚ اﻟﺒﯿﺎﻧﺎت ﺗﺒﻌﺎً ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬
‫اﻟﺨﺎﺻﺔ ﺑﮫ‪ ,‬ﻓﻤﺜﻼً ﯾﺴﺘﻄﯿﻊ اﻟﺒﺮﻧﺎﻣﺞ ﻋﻤﻞ اﻟﺘﻔﺎﺿﻞ ‪ differentiation‬واﻟﺘﻜﺎﻣﻞ ‪ Integration‬و ﻛﺬﻟﻚ ﯾﻘﻮم ﺑﺤﻞ اﻟﻤﻌﺎدﻻت اﻟﺠﺒﺮﯾﺔ ‪Algebraic‬‬
‫‪Equations‬وﻛﺬﻟﻚ اﻟﻤﻌﺎدﻻت اﻟﺘﻔﺎﺿﻠﯿﺔ ‪ Differential Equations‬ذات اﻟﺮﺗﺐ اﻟﻌﻠﯿﺎ واﻟﺘﻲ ﻗﺪ ﺗﺼﻞ ﻣﻦ اﻟﺼﻌﻮﺑﺔ ﻣﺎ ﺗﺼﻞ‪ ,‬ﻟﯿﺲ ﻓﻘﻂ ذﻟﻚ ﺑﻞ‬
‫ﯾﺴﺘﻄﯿﻊ اﻟﺒﺮﻧﺎﻣﺞ ﻋﻤﻞ اﻟﺘﻔﺎﺿﻞ اﻟﺠﺰﺋﻲ ‪,‬وﯾﻘﻮم ﺑﻌﻤﻞ ﻋﻠﯿﺎت اﻟﻜﺴﺮ اﻟﺠﺰﺋﻲ ‪ Partial fraction‬ﺑﺴﮭﻮﻟﺔ وﯾﺴﺮ واﻟﺘﻲ ﺗﺴﺘﻠﺰم وﻗﺘﺎً ﻛﺒﯿﺮاً ﻟﻌﻤﻠﮭﺎ‬
‫ﺑﺎﻟﻄﺮق اﻟﺘﻘﻠﯿﺪﯾﺔ‪ ,‬ھﺬا ﻣﻦ اﻟﻨﺎﺣﯿﺔ اﻷﻛﺎدﯾﻤﯿﺔ‪ ,‬أﻣﺎ ﻣﻦ اﻟﻨﺎﺣﯿﺔ اﻟﺘﻄﺒﯿﻘﯿﺔ ﻓﯿﺴﺘﻄﯿﻊ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻌﻤﻞ ﻓﻲ ﺟﻤﯿﻊ اﻟﻤﺠﺎﻻت اﻟﮭﻨﺪﺳﯿﺔ ﻣﺜﻞ أﻧﻈﻤﺔ اﻟﺘﺤﻜﻢ‬
‫‪Control System,‬وﻓﻲ ﻣﺠﺎل اﻟﻤﯿﻜﺎﻧﯿﻜﺎ ‪ Mechanical Field,‬وﻛﺬﻟﻚ ﻣﺤﺎﻛﺔ اﻹﻟﻜﺘﺮوﻧﯿﺎت ‪ Electronics‬وﺻﻨﺎﻋﺔ اﻟﺴﯿﺎرات ‪Automotive‬‬
‫اﻟﮭﻨﺪﺳﯿﺔ‪.‬‬ ‫اﻟﺘﻄﺒﯿﻘﺎت‬ ‫واﻟﻜﺜﯿﺮ ﻣﻦ‬ ‫‪Aerospace‬‬ ‫‪and Defense,‬‬ ‫اﻟﺠﻮي‬ ‫اﻟﻄﯿﺮان واﻟﺪﻓﺎع‬ ‫وﻛﺬﻟﻚ ﻣﺠﺎل‬ ‫‪Industry,‬‬
‫وﺣﺘﻰ أؤﻛﺪ ﻟﻠﺠﻤﯿﻊ ذﻟﻚ‪ ,‬ﻗﺎﻣﺖ ﺷﺮﻛﺔ اﻟﺴﯿﺎرات اﻟﻤﺮﻣﻮﻗﺔ ﻧﯿﺴﺎن ‪ Nissan‬ﺑﺘﺨﻔﯿﺾ وﻗﺖ اﻟﺘﻄﻮﯾﺮ إﻟﻰ ‪ %50‬ﻋﻨﺪﻣﺎ ﻗﺎﻣﺖ ﺑﺈﺳﺘﺒﺪال اﻟﺘﺼﻤﯿﻢ ﻋﻠﻰ‬
‫اﻷوراق ‪ Paper Model Based Design‬إﻟﻰ اﻷداة اﻟﻤﺘﻄﻮرة ﻓﻲ ﺑﺮﻧﺎﻣﺞ اﻟﻤﺎﺗﻼب وھﻮ ‪ Model Based Design,‬ﯾﻘﻮل اﻟﻤﺪﯾﺮ اﻟﻤﺴﺎﻋﺪ‬
‫ﺷﯿﺠﺎﯾﺎﻛﻲ ﻛﺎﻛﯿﺰاﻛﻲ ﻓﻲ ﻣﺠﻤﻮﻋﺔ ھﻨﺪﺳﺔ إدارة ﻧﻈﺎم اﻟﻤﺤﺮك ﻟﺸﺮﻛﺔ ﻧﯿﺴﺎن‪:‬‬
‫‪Without MathWorks tools for Model-Based Design, Nissan would not have become the first company to‬‬
‫‪meet‬‬ ‫‪the‬‬ ‫‪CARB‬‬ ‫‪PZEV‬‬ ‫‪standard.‬‬ ‫=‪CARB‬‬ ‫‪California‬‬ ‫‪Air‬‬ ‫‪Resources‬‬ ‫‪Board‬‬
‫‪PZEV= Partial Zero Emission Vehicle‬‬

‫ﻓﻲ ﻣﺎدة ﻧﻈﺮﯾﺔ اﻟﻤﻌﻠﻮﻣﺎت ﺳﻮف ﻧﺴﺘﺨﺪم اﻟﻤﺎﺗﻼب ﻟﺪارﺳﺔ‪ 1 :‬ﺧﻮارزﻣﯿﺎت ﺿﻐﻂ اﻟﺒﯿﺎﻧﺎت ‪ .2‬ﺧﻮارزﻣﯿﺎت ﻛﺸﻒ وﺗﺼﺤﯿﺢ‬
‫اﻷﺧﻄﺎء‬
‫‪1‬‬
‫اﻟﺗﻌرﯾف ﺑﺑرﻧﺎﻣﺞ ‪Matlab‬‬

‫ﺑﺪاﯾﺔ ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻈﮭﺮ ﺛﻼث ﻧﻮاﻓﺬ‬


‫‪ .1‬ﻧﺎﻓﺬة اﻷواﻣﺮ ‪ : Command Window‬ﺣﯿﺚ ﯾﺘﻢ ﻛﺘﺎﺑﺔ ﺗﻌﻠﯿﻤﺎت )أواﻣﺮ( ﻣﺎﺗﻼب وﺗﻨﻔﯿﺬھﺎ‬
‫‪ .2‬ﻧﺎﻓﺬة اﻷواﻣﺮ اﻟﺴﺎﺑﻘﺔ ‪ :Command History‬ﺗﻌﺮض اﻟﺘﻌﻠﯿﻤﺎت اﻟﺴﺎﺑﻘﺔ اﻟﺘﻲ ﺗﻢ ﺗﻨﻔﯿﺬھﺎ ﺑﺤﺴﺐ اﻟﯿﻮم‬
‫‪ .3‬ﻓﻀﺎء اﻟﻌﻤﻞ ‪ :workspace‬ﺗﻌﺮض اﻟﻤﺘﺤﻮﻻت اﻟﻤﻮﺟﻮدة ﻓﻲ ذاﻛﺮة اﻟﺒﺮﻧﺎﻣﺞ واﻟﺘﻲ ﺗﻢ ﺗﻌﺮﯾﻔﮭﺎ‬
‫‪ .4‬اﻟﻤﺠﻠﺪ اﻟﺤﺎﻟﻲ ‪ :Current Directory‬ﺗﻌﺮض أﺳﻤﺎء اﻟﻤﻠﻔﺎت اﻟﺘﻲ ﯾﺤﺘﻮﯾﮭﺎ اﻟﻤﺠﻠﺪ اﻟﺤﺎﻟﻲ اﻟﺬي ﯾﻮﺟﺪ ﻣﺴﺎره ﻓﻮق وﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻣﺴﺎره‪.‬‬

‫ﺑﻌض أواﻣر )ﺗﻌﻠﯾﻣﺎت( ﻣﺎﺗﻼب‬


‫ﻋﻧدﻣﺎ ﯾظﮭر “اﻟﻣﺣث” ‪ ( >> ) prompt‬ﻓﻲ ﻧﺎﻓذة اﻷواﻣر ﯾﻌﻧﻲ أن اﻟﺑرﻧﺎﻣﺞ ﺟﺎھز ﻟﺗﻧﻔﯾذ اﻷواﻣر‪.‬‬
‫ھذه اﻟﻧﺎﻓذة ھﻲ ﻋﺑﺎرة ﻋ ن اﻟﻧﺎﻓذة اﻷﺳﺎﺳﯾﺔ اﻟﺗﻲ ﺗﺟري ﻓﯾﮭﺎ ﺟﻣﯾﻊ اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ‪ .‬وﻓﯾﻣﺎ ﯾﻠﻲ ﺳوف ﻧذﻛر ﺑﻌض اﻷواﻣر ‪:‬‬
‫اﻟﻌﻣﻠﯾﺎت اﻟرﯾﺎﺿﯾﺔ‪:‬‬
‫ﻧرﯾد أن ﻧﺣﺳب ﻓﻌﺎﻟﯾﺔ ‪ efficiency‬ﻟﺗرﻣﯾز ﺑت اﻟزوﺟﯾﺔ‪ :‬اﻟﻔﻌﺎﻟﯾﺔ ھﻲ اﻟﻧﺳﺑﺔ اﻟﻣﺋوﯾﺔ ﻟﻌدد ﺑﺗﺎت اﻟﻣﻌﻠوﻣﺎت )‪ (8‬إﻟﻰ ﻋدد اﻟﺑﺗﺎت اﻟﻣرﺳﻠﺔ )‪(9‬‬
‫‪>>8/9*100‬‬
‫ﻣﺎ ھﻲ ﻓﻌﺎﻟﯾﺔ ﺗرﻣﯾز ‪ R3‬ﻛود؟ أﯾﮭﺎ أﻓﺿل ‪ R3‬ﻛود أم ﺑت اﻟزوﺟﯾﺔ وﻟﻣﺎذا؟ ﻛﯾف ﯾﻣﻛن ﺗﺻﺣﯾﺢ اﻷﺧطﺎء إذا اﺳﺗﺧدﻣﻧﺎ ﺗرﻣﯾز ﺑت اﻟزوﺟﯾﺔ؟‬
‫‪(answer‬‬ ‫ﻻﺣظ أﻧك ﺣﺻﻠت ﻋﻠﻰ اﻟﻧﺗﯾﺟﺔ ﻟﻛن ﻟم ﯾﺗم إﺳﻧﺎدھﺎ إﻟﻰ ﻣﺗﺣول ‪ ،variable‬ﻓﯾﻘوم ﻣﺎﺗﻼب ﺑﺈﻧﺷﺎء ﻣﺗﺣول اﻓﺗراﺿﻲ اﺳﻣﮫ ‪ans‬‬
‫‪ans‬‬ ‫وﯾﺳﻧد ﻗﯾﻣﺔ ﻧﺗﯾﺟﺔ‬
‫‪،‬‬ ‫ا‬
‫‪ ، declaration‬ﻓﻣﺛﻼً ﯾﻣﻛن إﺳﻧﺎدء ﺧرج اﻟﻌﻣﻠﯾﺔ اﻟﺳﺎﺑﻘﺔ ﻟﻣﺗﺣول ‪a‬‬
‫‪>>a=ans‬‬
‫‪single‬‬ ‫‪64‬‬ ‫ﻧﻣط اﻟﻣﻌطﯾﺎت اﻻﻓﺗراﺿﻲ ھو ‪) double‬ﻋدد ﺣﻘﯾﻘﻲ دﻗﺔ ﻣﺿﺎﻋﻔﺔ‪float :‬‬
‫‪ 32‬ﺑت(‬
‫ﻟﺗﻐﯾر ﻋدد اﻟﺑﺗﺎت اﻟﺗﻲ ﺗم ﺗﻣﺛﯾل اﻟﻣﺗﺣول ﻋﻠﯾﮭﺎ‪ ،‬ﻧﻘوم ﺑﻌﻠﻣﯾﺔ ﺗﻐﯾر ﻧﻣط ‪casting‬‬
‫‪2‬‬
‫)‪>>a=unit8(a‬‬
‫‪ 0‬و ‪255‬‬ ‫‪ unit8‬ھو ‪ unsigned integer 8 bit‬أي ﻋدد ﺻﺣﯾﺢ ﺑدون إﺷﺎرة ﻋﻠﻰ ‪8‬‬
‫‪string‬‬ ‫ﻋﺑﺎرة ﻋن ﺗرﻣﯾز ﺛﻧﺎﺋﻲ ﻟﻣﺟﺎل ﻣن اﻟﻘﯾم ﻣﻊ ﺗﻌرﯾف ﻟﻌﻣﻠﯾﺎت ‪ operation‬ﻋﻠﻰ ھذه اﻟﻘﯾم )ﻣﺛل ﻋﻣﻠﯾﺔ ‪concatenation‬‬
‫ﺑﯾﻧﻣﺎ ھذه اﻟﻌﻣﻠﯾﺔ ﻻ ﺗﻌرف ﻋﻠﻰ ﻧﻣط ‪.(integer‬‬
‫ﺗﻌرﯾف ﻣﺻﻔوﻓﺔ‬
‫]‪>>a1=[1, 3, 6 ; 2, -5, 190 ; -180, 89.5, 1‬‬
‫اﻟﻨﺘﯿﺠﺔ ﺗﻌﺮﯾﻒ اﻟﻤﺼﻔﻮﻓﺔ‪:‬‬
‫= ‪a1‬‬

‫‪1.0000 3.0000‬‬ ‫‪6.0000‬‬


‫‪2.0000 -5.0000‬‬ ‫‪190.0000‬‬
‫‪-180.0000 89.5000‬‬ ‫‪1.0000‬‬
‫‪ ‬اﻟﻔﺎﺻﻠﺔ )أو ﯾﻤﻜﻦ وﺿﻊ ﻓﺮاغ ﻓﻘﻂ( ﯾﻌﻨﻲ أن اﻟﻌﻨﺎﺻﺮ ﻋﻠﻰ ﻧﻔﺲ اﻟﺴﻄﺮ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ‪.‬‬
‫‪ ‬اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮطﺔ ﺿﻤﻦ ﺗﻌﺮﯾﻒ ﻣﺼﻔﻮﻓﺔ ﺗﻌﻨﻲ اﻟﻘﯿﻢ اﻟﺘﺎﻟﯿﺔ ﻟﻠﻔﺎﺻﻠﺔ ھﻲ ﺳﻄﺮ ﺟﺪﯾﺪ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ‪.‬‬
‫‪ ‬اﻟﻤﺼﻔﻮﻓﺔ اﻟﺴﺎﺑﻘﺔ ﻓﯿﮭﺎ ﺛﻼث أﺳﻄﺮ وﺛﻼث أﻋﻤﺪة‬
‫ﻣﺎ ھﻮ ﻧﻤﻂ اﻟﻤﻌﻄﯿﺎت ﻟﻜﻞ ﺧﺎﻧﺔ ﻓﻲ ھﺬه اﻟﻤﺼﻔﻮﻓﺔ؟ ‪double‬‬
‫ﻋﻠﻰ ﻛﻢ ﺑﯿﺖ ﯾﺘﻢ ﺗﺤﺰﯾﻦ اﻟﻘﯿﻢ ﻣﻦ ﻧﻮع ‪ double‬؟‪ 64‬ﺑﺖ‬
‫ﻧﻼﺣﻆ أن ‪ 64‬ﺑﺖ ھﻲ ﻛﺜﯿﺮة ﻟﺘﺨﺰﯾﻦ ﻣﺠﺎل ﻗﯿﻢ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﻲ ﻟﺪﯾﻨﺎ‪..‬ﻧﺮﯾﺪ أن ﻧﺤﻮل ﻧﻤﻂ اﻟﺘﺨﺰﯾﻦ إﻟﻰ ‪ integer‬ﻋﻠﻰ ‪ 8‬ﺑﯿﺖ‬

‫)‪>>a2=int8(a1‬‬
‫اﻟﻨﺘﯿﺠﺔ‬
‫= ‪a2‬‬

‫‪1 3‬‬ ‫‪6‬‬


‫‪2 0‬‬ ‫‪190‬‬
‫‪0 90 1‬‬
‫ﻣﺎذا ﺣﺼﻞ ﻟﻘﯿﻢ ‪ a1‬ﻓﻲ اﻟﻤﻮاﻗﻊ )‪ (2,3‬واﻟﻤﻮﻗﻊ )‪) (3,1‬ﺣﯿﺚ ‪ 3‬ھﻮ رﻗﻢ اﻟﺴﻄﺮ و‪ 1‬رﻗﻢ اﻟﻌﻤﻮد(‬
‫)‪>>a2(2,3‬‬
‫)‪>>a2(3,1‬‬
‫ﻟﻤﺎذا اﺧﺘﻠﻔﺖ اﻟﻘﯿﻢ ﺑﯿﻦ ‪ a2‬و ‪ a1‬ﻓﻲ ھﺬه اﻟﻤﻮاﻗﻊ ؟ )ﻣﺎ ھﻲ أﻛﺒﺮ ﻗﯿﻤﺔ ﯾﻤﻜﻦ ﺗﻤﺜﻠﯿﮭﺎ ﻋﻠﻰ ‪ 8‬ﺑﯿﺖ ‪ integer‬ﻣﺎ ھﻲ أﺻﻐﺮ ﻗﯿﻤﺔ؟‬
‫ﻣﻼﺣﻈﺔ‪ :‬ﻻﺣﻆ أن ﺗﻐﯿﺮ ﻧﻤﻂ اﻟﺒﯿﻨﺎت ﻗﺪ ﯾﺸﻮه اﻟﺒﯿﺎﻧﺎت‪ .‬ﻟﺬﻟﻚ ﯾﺠﺐ اﻻﻧﺘﺒﺎه ﻋﻨﺪ ﻋﻤﻠﯿﺔ ‪.casting‬‬
‫أي ﻣﺼﻔﻮﻓﺔ ﺛﻨﺎﺋﯿﺔ ﯾﻤﻜﻦ اﻋﺘﺒﺎرھﺎ ﺻﻮرة وﯾﻤﻜﻦ ﻋﺮﺿﮭﺎ ﻋﺒﺮ اﻟﺘﻌﻠﯿﻤﺔ )اﻟﺘﺎﺑﻊ اﻟﺠﺎھﺰ( ‪imshow‬‬
‫)‪>>inshow(a1‬‬
‫ﻗﺮاءة ﻣﻠﻒ ﺻﻮرة‬ ‫‪‬‬
‫اﻟﺘﺎﺑﻊ اﻟﺠﺎھﺰ ‪ imread‬ﯾﻘﻮم ﺑﻘﺮاءة ﻣﻠﻒ ﺻﻮرة وﯾﻌﯿﺪ ﻗﯿﻢ ﺑﻜﺴﻼت اﻟﺼﻮرة ﻓﻲ ﻣﺼﻔﻮﻓﺔ‪:‬‬

‫)’‪>>a3=imread(‘moon.tif‬‬
‫ﯾﺠﺐ أن ﯾﻜﻮن ﻣﻠﻒ اﻟﺼﻮرة ﺿﻤﻦ ﻣﺠﻠﺪات اﻟـ ‪ path‬وإﻻ ﯾﺠﺐ ﺗﻤﺮﯾﺮ اﻟﻤﺴﺎر اﻟﻜﺎﻣﻞ ﻣﻊ اﺳﻢ اﻟﻤﻠﻒ‬
‫‪ ‬ﻋﺮض اﻟﺼﻮرة‪:‬‬
‫)‪>>imshow(a3‬‬

‫ﻛﯿﻒ ﻧﻌﺮف أﺑﻌﺎد اﻟﺼﻮرة )ﻣﺼﻔﻮﻓﺔ(؟‬ ‫‪‬‬


‫ﻣﻦ ‪ workspace‬أو ﺑﻮﺳﺎطﺔ اﻟﺘﺎﺑﻊ ‪size‬‬
‫)‪>>[m,n]=size(a‬‬
‫ﻛﯿﻒ ﻧﻌﺮف ﻧﻮع ‪ data type‬ﻟﻜﻞ ﻗﯿﻤﺔ ﻣﻦ ﻗﯿﻢ اﻟﻤﺼﻔﻮﻓﺔ؟‬ ‫‪‬‬
‫اﻟﺘﺎﺑﻊ ‪class‬‬

‫‪3‬‬
‫)‪>>class(a3‬‬
‫ﻻﺣﻆ أن اﻟﻨﻤﻂ ھﻮ ‪ uint8‬واﻟﺼﻮرة ھﻲ ﺑﺘﺪرﺟﺎت اﻟﺮﻣﺎدي )‪ 0‬ﻻ ﯾﻮﺟﺪ إﺿﺎءة ﻟﻠﺒﻜﺴﻞ ﻓﮭﻮ أﺳﻮد و‪ 255‬اﻟﺒﻜﺴﻞ ﻣﻀﺎء ﺑﺄﺷﺪ درﺟﺔ ﻓﮭﻮ أﺑﯿﺾ وﻣﺎ‬
‫ﺑﯿﻨﮭﻤﺎ ﺗﺪرﺟﺎت ﻓﻲ اﻹﺿﺎءة ﻓﯿﻜﻮن اﻟﻠﻮن رﻣﺎدي(‪.‬‬
‫ﻣﺜﺎل ﻋﻠﻰ ﻣﺼﻔﻮﻓﺔ ﺛﻼﺛﯿﺔ اﻟﺒﻌﺪ‬
‫;)’‪>>a5=imread(‘peppers.png‬‬
‫)‪>>imshow(a5‬‬
‫ﻣﺎ ھﻮ ﺑﻌﺪ ھﺬه اﻟﻤﺼﻔﻮﻓﺔ وﻛﯿﻒ ﻋﺮﻓﻨﺎ ذﻟﻚ؟‬
‫ھﺬه ﺻﻮرة ﻣﻠﻮﻧﺔ ﻛﻞ ﺑﻜﺴﻞ ﻓﯿﮭﺎ ﻓﻲ ﻣﻮﻗﻊ ‪ i,j‬ﯾﻤﺘﻠﻚ ﺛﻼث ﻣﺮﻛﺒﺎت ﻟﻮﻧﯿﺔ )ﻣﺮﻛﺒﺔ ﻟﻠـ ‪ R‬و ‪ G‬و‪ (B‬وﺑﺎﻟﺘﺎﻟﻲ ھﺬه اﻟﻤﺼﻔﻮﻓﺔ ﺛﻼﺛﯿﺔ )اﻟﺒﻌﺪ اﻷول ھﻮ‬
‫رﻗﻢ اﻷﺳﻄﺮ‪ ،‬اﻟﺒﻌﺪ اﻟﺜﺎﻧﻲ ھﻮ رﻗﻢ اﻟﻌﻤﻮد‪ ،‬اﻟﺒﻌﺪ اﻟﺜﺎﻟﺚ ھﻮ رﻗﻢ اﻟﻠﻮن(‪ ،‬ﻧﻔﺲ اﻟﺸﻲء ﯾﻜﻮن ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻔﯿﺪﯾﻮ )ﻏﯿﺮ اﻟﻤﻠﻮن( ﺣﯿﺚ ﯾﻜﻮن اﻟﺒﻌﺪ اﻟﺜﺎﻟﺚ ھﻮ‬
‫رﻗﻢ اﻹطﺎر أو رﻗﻢ اﻟﻠﺤﻈﺔ اﻟﺰﻣﻨﯿﺔ ‪ .‬ﻋﺮﻓﻨﺎ أﺑﻌﺎد اﻟﻤﺼﻔﻮﻓﺔ إﻣﺎ ﻣﻦ ﻓﻀﺎء اﻟﻌﻤﻞ ‪ workspace‬أو ﻋﺒﺮ ﺗﻌﻠﯿﻤﺔ‬
‫)‪>>size(a5‬‬

‫ﻛﯾف ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﺟﻣﯾﻊ ﻣرﻛﺑﺎت اﻟﻠون اﻟﺛﻼﺛﺔ ﻓﻲ اﻟﺑﻛﺳل ﻓﻲ اﻟﺳطر ‪ 3‬واﻟﻌﻣود ‪4‬‬
‫)‪>>a5(3, 4, :‬‬
‫اﻟرﻣز ‪ :‬ﯾﻌﻧﻲ أﯾﺎ ً ﻛﺎﻧت ﻗﯾﻣﺔ اﻟﺧﺎﻧﺔ ﻓﻲ ھذا اﻟﻣوﻗﻊ‬
‫ﻛﯾف ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﺟﻣﯾﻊ درﺟﺎت اﻟﻠون اﻷﺣﻣر ﻓﻘط ﻟﺟﻣﯾﻊ اﻟﺑﻛﺳﻼت‪:‬‬
‫)‪>>a5(: , : , 1‬‬
‫ﻛﯾف ﯾﻣﻛن ﻋرض اﻟﺻورة ﻓﻘط ﺑدرﺟﺎت اﻟﻠون اﻷﺣﻣر ؟ ﯾﺟب ﺟﻌل ﻣرﻛﺑﺎت اﻟﻠون اﻷﺧﺿر واﻷزرق ﺻﻔر‪:‬‬
‫;‪>> a5(: , : , 2)=0‬‬
‫;‪>> a5(: , : , 3)=0‬‬
‫أﻋرض اﻟﺻورة وﺷﺎھد ﻛﯾف ﺗظﮭر‪ .‬ﻣﺎذا ﻓﻌﻠت اﻟﺗﻌﻠﯾﻣﯾﺗن اﻟﺳﺎﺑﻘﺗﯾن؟‬
‫ﻣﺎ ھو ﻋدد اﻷﻟوان اﻷﻋظﻣﻲ اﻟذي ﯾﻣﻛن أن ﺗﺣوﯾﮫ اﻟﺻورة؟ ﺑﻣﺎ أن ﻗﯾﻣﺔ اﻟﺑﻛﺷل ﯾﺗم ﺗﺧزﯾﻧﮭﺎ ﻋﻲ ﺛﻼث ﺑﺎﯾﺗﺎت)‪ 24‬ﺑت( ﺑﺎﯾت ﻟﻠون اﻷﺣﻣر وﺑﺎﯾت‬
‫ﻟﻸﺧﺿر وﺑﺎﯾت ﻟﻸزرق وﺑﺎﻟﺗﺎﻟﻲ ﻋدد اﻟﺗﺷﻛﯾﻼت اﻟﻣﻣﻛﻧﺔ‪:‬‬
‫‪>>2^24‬‬
‫ﻟﻛن اﻟﻣﺷﻛﻠﺔ أن ﺣﺟم اﻟﺻورة ﺗﺿﺎﻋف ﺛﻼث ﻣر‬
‫ﻣﺛﻼً ﻧﺣﺗﺎج ﻓﻘط إﻟﻰ ‪256‬‬
‫وﻋﻌد أﻋﻣدھﺎ ھو ﺛﻼﺛﺔ )ﺛﻼﺛﺔ ﻣرﻛﺑﺎت ﻟوﻧﯾﺔ ﻟﺗﻌ‬
‫ھذه اﻟﺣﺎﻟﺔ ﻣﻠف اﻟﺻورة ﯾﺣﺗوي ﻣﺻﻔوﻓﺗﯾن وﻟﯾﺳت ﻣﺻﻔوﻓﺔ واﺣدة‪:‬‬
‫;)’‪>>[a6,ct]=imread(‘trees.tif‬‬
‫)‪>>imshow(a6,ct‬‬
‫ﻣﺎ ھو ﺣﺟم اﻟﻣﺻﻔوﻓﺔ ‪ct‬؟ ﻣﺎ ھﻲ ﻗﯾﻣﺔ ﺑﻛﺳل اﻟﺻورة ﻓﻲ اﻟﺳطر ‪ 4‬اﻟﻌﻣود ‪ 5‬؟ ﻣﺎ ھﻲ ﻗﯾﻣﺔ ھذا اﻟﻠون؟‬
‫ﯾظﮭر اﻟﺟدول ‪ 1‬ﻛﯾﻔﯾﺔ ﻛﺗﺎﺑﺔ اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻓﻲ ﺑرﻧﺎﻣﺞ ‪: Matlab‬‬
‫اﻟﺟﻣﻊ‬ ‫‪+‬‬
‫اﻟﻘﺳﻣﺔ‬ ‫‪/‬‬
‫اﻟﺿرب )ﺿرب ﻣﺻﻔوﻓﺎت أو ﺿرب ﻗﯾم ﻣﻔردة(‬ ‫*‬
‫اﻟطرح‬ ‫‪-‬‬
‫أﻛﺑر‬ ‫>‬
‫أﺻﻐر‬ ‫<‬

‫‪4‬‬
‫أﺻﻐر أو ﺗﺳﺎوي‬ ‫=<‬
‫أﻛﺑر أو ﺗﺳﺎوي‬ ‫=>‬
‫ﺿرب ﻣﺻﻔوﻓﺔ ﻋﻧﺻر ﺑﻌﻧﺻر‬ ‫*‪.‬‬
‫ﻗﺳﻣﺔ ﻣﺻﻔوﻓﺔ ﻋﻧﺻر ﻋﻠﻰ ﻋﻧﺻر‬ ‫‪./‬‬
‫رﻓﻊ ﻟﻘوة )إذا ﻛﺎﻧت ﻣﺻﻔوﻓﺔ ﺿرﺑﮭﺎ ﺑﻧﻔﺳﮭﺎ ﺿرب ﻣﺻﻔوﻓﺎت ﺑﺣﺳب ﻣرات اﻟﻘوة(‬ ‫^‬
‫رﻓﻊ ﻟﻘوة ﻟﻛل ﻋﻧﺻر ﻣن ﻋﻧﺎﺻر اﻟﻣﺻﻔوﻓﺔ‬ ‫^‪.‬‬
‫ﺟدول ‪ 1‬اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ‬
‫‪ o‬ﻣﺛﺎل ‪:‬‬
‫‪4x  2x  3‬‬
‫‪2‬‬
‫‪ f ( x) ‬ﻋﻧد اﻟﻘﯾﻣﺔ ‪x  2‬‬ ‫اﻟﻣطﻠوب ﺣﺳﺎب اﻟﻛﺳر اﻟﺗﺎﻟﻲ ‪:‬‬
‫‪x3  1‬‬
‫;‪>> x=2‬‬
‫)‪>> f=(4*x^2-2*x+3)/(x^3+1‬‬
‫= ‪f‬‬
‫‪1.6667‬‬

‫‪ ‬ﺗﻌرﯾف ﺷﻌﺎع )‪ (vector‬ﻧﻌرف ﻗﯾﻣﺗﮫ اﻻﺑﺗداﺋﯾﺔ وﻧﻌرف ﻗﯾﻣﺗﮫ اﻟﻧﮭﺎﺋﯾﺔ وﻧﻌرف اﻟﺧطوة‬
‫]‪>> x=[1:1:5‬‬
‫= ‪x‬‬

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

‫]‪>> x=[1:2:10‬‬

‫= ‪x‬‬

‫‪1‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪7‬‬ ‫‪9‬‬

‫']‪>> x=[1:2:10‬‬

‫= ‪x‬‬
‫‪1‬‬
‫‪3‬‬
‫‪5‬‬
‫‪7‬‬
‫‪9‬‬
‫ﻣﻼﺣظﺔ‪ : 1‬اﻟﻔﺗﺣﺔ ھﻲ ﻋﻣﻠﯾﺔ ﻣﻧﻘول ﻣﺻﻔوﻓﺔ )اﺳﺗﺑدال اﻷﺳطر ﺑﺎﻷﻋﻣدة( وھﻲ ﺗﺣول اﻟﺷﻌﺎع اﻟﺳطري إﻟﻰ ﺷﻌﺎع ﻋﻣودي‬
‫ﻣﻼﺣﻈﺔ‪) :2‬إذا ﻛﺎﻧﺖ اﻟﻤﺼﻔﻮﻓﺔ إﺣﺎدﯾﺔ اﻟﺒﻌﺪ أي ﺷﻌﺎع ﻓﺎﻟﻤﻮﻗﻊ ﯾﺘﺤﺪد ﺑﻘﯿﻤﺔ واﺣﺪة ھﻲ رﻗﻢ اﻟﻌﻤﻮد إذا ﻛﺎن اﻟﺸﻌﺎع ﺳﻄﺮي أو رﻗﻢ اﻟﺴﻄﺮ إذا ﻛﺎن‬
‫اﻟﺸﻌﺎع ﻋﻤﻮدي( ﻣﺜﻼً ﻗﯿﻤﺔ اﻟﺸﻌﺎع ‪ x‬ﻓﻲ اﻟﺴﻄﺮ اﻟﺮاﺑﻊ ﻧﺮﯾﺪ أن ﻧﺴﻨﺪھﺎ ﻟﻠﻤﺘﺤﻮل ‪b‬‬
‫)‪>>b=x(4‬‬

‫وﺑﺎﻟﺘﺎﻟﻲ ﻣﺎ ھﻲ ﻗﯿﻤﺔ ‪b‬؟‬

‫‪ ‬ﺗﻌرﯾف ﻣﺻﻔوﻓﺔ واﻟﻌﻣﻠﯾﺎت ﻋﻠﻰ اﻟﻣﺻﻔوﻓﺎت ‪:‬‬


‫ﯾﺗم ﺑﻧﺎء اﻟﻣﺻﻔوﻓﺔ ﺑﺎﺳﺗﺧدام اﻟﻔﺎﺻﻠﺔ اﻟﻣﻧﻘوطﺔ ﻹدﺧﺎل ﺳطر ﺟدﯾد‪ ,‬ﻓﻠﺑﻧﺎء ﻣﺻﻔوﻓﺔ ﻓﯾﮭﺎ ‪ 3‬أﺳطر وﺛﻼث أﻋﻣدة ﻧﻘوم ﺑﻣﺎ ﯾﻠﻲ ‪:‬‬
‫]‪>> M=[1 2 3;2 3 4;5 2 9‬‬
‫‪5‬‬
‫= ‪M‬‬

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


‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬
‫‪5‬‬ ‫‪2‬‬ ‫‪9‬‬
‫‪‬‬
‫ﻟﺿرب اﻟﻣﺻﻔوﻓﺎت‪ ،‬وﯾﺟب أن ﺗﻛون اﻟﻣﺻﻔوﻓﺔ ﻣرﺑﻌﺔ ‪ square‬وﻏﯾر ﺷﺎذة ‪ non-singular‬أي ﻣﺧددھﺎ ﻏﯾر ﺻﻔري(‬
‫)‪>> inv(M‬‬

‫= ‪ans‬‬

‫‪-1.9000‬‬ ‫‪1.2000‬‬ ‫‪0.1000‬‬


‫‪-0.2000‬‬ ‫‪0.6000‬‬ ‫‪-0.2000‬‬
‫‪1.1000‬‬ ‫‪-0.8000‬‬ ‫‪0.1000‬‬

‫ﻣﺗﻰ ﻧﺳﺗﺧدم ﻣﻘﻠوب ﻣﺻﻔوﻓﺔ ؟ ﻓﻲ ﺣل ﺟﻣﻠﺔ ﻣﻌﺎدﻻت ﺧطﯾﺔ‪ .‬ﻣﺛﻼً ﻟدﯾﻧﺎ ‪ 100‬ﻣﻌﺎدﻟﺔ ﺑـ ‪ 100‬ﻣﺟﮭول‪.‬‬
‫ﻣﺣدد اﻟﻣﺻﻔوﻓﺔ ‪:‬‬ ‫‪‬‬
‫)‪>> det(M‬‬

‫= ‪ans‬‬
‫‪-10‬‬
‫ﻣﺎذا ﯾدل أن اﻟﻣﺣدد ﺻﻔر؟ ﯾﻌﻧﻲ أن ﻋﻧﺎﺻر اﻟﻣﺻﻔوﻓﺔ ﻏﯾر ﻣﺳﺗﻘﻠﯾن ﺧطﯾﺎ ً‬
‫إظﮭﺎر اﻟرﻗم اﻷول ﻣن اﻟﻣﺻﻔوﻓﺔ ‪:‬‬ ‫‪‬‬
‫)‪>> M(1,1‬‬

‫= ‪ans‬‬

‫‪1‬‬
‫إظﮭﺎر اﻟﻌﻣود اﻷول ‪:‬‬ ‫‪‬‬
‫)‪>> M(:,1‬‬

‫= ‪ans‬‬

‫‪1‬‬
‫‪2‬‬
‫‪5‬‬

‫إظﮭﺎر اﻟﺳطر اﻟﺛﺎﻧﻲ ‪:‬‬ ‫‪‬‬

‫)‪>> M(2,:‬‬

‫= ‪ans‬‬

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


‫ﺣذف اﻟﺳطر اﻟﺛﺎﻧﻲ ﻣن اﻟﺻﻔوﻓﺔ‬ ‫‪‬‬

‫])‪>>M=[M(1,:); M(3,:‬‬
‫‪6‬‬
‫إﺿﺎﻓﺔ ﺳطر ﺟدﯾد ﻟﻠﻣﺻﻔوﻓﺔ ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﻣﺻﻔوﻓﺔ‬ ‫‪‬‬

‫]]‪>>M=[M ;[3 1 9‬‬


‫ﻣﺎ ھو ﺑﻌد اﻟﺻﻔوﻓﺔ اﻟﺟدﯾدة ﺑﻌد إﺿﺎﻓﺔ اﻟﺳطر؟‬
‫‪ ‬ﺗﻌرﯾف ﻣﺻﻔوﻓﺔ ذات أرﻗﺎم ﻋﺷواﺋﯾﺔ ‪:‬‬
‫ﯾﺗم ﺗﺷﻛﯾل ﻣﺻﻔوﻓﺔ ذات ﻗﯾم ﻋﺷواﺋﯾﺔ ﻗﯾﻣﮭﺎ ﺑﯾن ‪ 0‬و ‪ 1‬وﺗوزع اﻟﻘﯾم ﺗوزع ﻣﻧﺗظم ﺑﺎﺳﺗﺧدام اﻷﻣر ‪rand‬‬
‫)‪>> X1=rand(3‬‬

‫= ‪X1‬‬

‫‪0.4447‬‬ ‫‪0.9218‬‬ ‫‪0.4057‬‬


‫‪0.6154‬‬ ‫‪0.7382‬‬ ‫‪0.9355‬‬
‫‪0.7919‬‬ ‫‪0.1763‬‬ ‫‪0.9169‬‬
‫أﻣﺎ إذا أردﻧﺎ ﻣﺼﻔﻮﻓﺔ ﻋﺸﻮاﺋﯿﺔ ﻓﯿﮭﺎ ‪ 4‬أﺳﻄﺮ وﺛﻼث أﻋﻤﺪة ﻓﯿﺠﺐ‪:‬‬
‫)‪>> m=rand(4,3‬‬
‫اﻷﻣر ‪ help‬ﯾﺳﻣﺢ ﺑﺈﻋطﺎء ﺷرح ﻣﻔﺻل ﻋن اﻷﻣر اﻟﻣﻧﻔذ‪.‬‬ ‫‪-‬‬
‫‪ o‬ﻣﺛﺎل ‪:‬‬
‫‪>> help cos‬‬
‫‪COS‬‬ ‫‪Cosine.‬‬
‫‪COS(X) is the cosine of the elements of X.‬‬
‫اﻷﻣر ‪ : what‬ﯾظﮭر ﻗﺎﺋﻣﺔ اﻟﺑراﻣﺞ اﻟﺗﻲ ﻟﮭﺎ اﻟﻼﺣﻘﺔ ‪ *.m‬و ‪ *.mat‬ﻓﻲ اﻻﺗﺟﺎه اﻟﻣﺳﺗﺧدم ‪.Current Directory‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ : who‬ﯾظﮭر اﻟﻣﺗﻐﯾرات اﻟﻣُﻌرﱠ ﻓﺔ ﻓﻲ ﻓﺿﺎء اﻟﻌﻣل‪.‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ :whos‬ﯾظﮭر اﻟﻣﺗﻐﯾرات اﻟﻣُﻌرﱠ ﻓﺔ وﺣﺟﻣﮭﺎ وﻧﻣطﮭﺎ‪.‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ : clock‬ﯾظﮭر اﻟﺳﻧﺔ واﻟﺷﮭر واﻟﯾوم واﻟﺳﺎﻋﺔ واﻟدﻗﯾﻘﺔ واﻟﺛﺎﻧﯾﺔ‪.‬‬ ‫‪-‬‬
‫‪>> clock‬‬

‫= ‪ans‬‬

‫* ‪1.0e+003‬‬

‫‪2.0080‬‬ ‫‪0.0110‬‬ ‫‪0.0230‬‬ ‫‪0.0180‬‬ ‫‪0.0520‬‬ ‫‪0.0424‬‬


‫ﺳﺆال‪ :‬ﻣﺎذا ﯾﻌﻨﻲ اﻟﺠﻮاب اﻟﺴﺎﺑﻖ )ﻗﻢ ﺑﻌﻤﻞ ‪.(help clock‬‬
‫‪ -‬اﻷﻣر ‪: date‬‬
‫‪>> date‬‬

‫= ‪ans‬‬

‫‪23-Nov-2008‬‬
‫ﺣﯾث أن ‪ ans‬ﺗﻌﺑر ﻋن اﻹﺟﺎﺑﺔ‪.‬‬
‫اﻷﻣر ‪ : clear all‬ﺣذف ﻛل اﻟﻣﺗﻐﯾرات اﻟﻣوﺟودة ﻓﻲ اﻟذاﻛرة‪.‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ : clc‬ﺣذف ﻧﺎﻓذة ‪.Matlab‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ : format‬ﯾﻌﻧﻲ إظﮭﺎر اﻟﻧﺗﺎﺋﺞ ﺑﺄرﺑﻌﺔ أرﻗﺎم ﺑﻌد اﻟﻔﺎﺻﻠﺔ‪.‬‬ ‫‪-‬‬

‫‪7‬‬
‫اﻷﻣر )''(‪ : fprintf‬إظﮭﺎر ﻣﺎﺑﯾن اﻟﻘوﺳﯾن ﻓﻲ ﻧﺎﻓذة اﻷواﻣر‪.‬‬ ‫‪-‬‬
‫اﻷﻣر ‪: input‬‬ ‫‪-‬‬
‫ﯾﺗم إدﺧﺎﻟﮭﺎ ﺑﺎﺳﺗﺧدام اﻷﻗواس ][‬
‫)’‪>>a=input(‘input the value of a‬‬
‫اﻷﻣر ‪ : break‬ﯾوﻗف ﺗﺷﻐﯾل اﻟﺣﻠﻘﺔ‪.‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ :find‬ﯾوﺟد اﻟدﻟﯾل اﻟذي ﺗﺣﻘق ﻋﻧدى ﺷرط ﻣﻧطﻘﻲ ﯾﺗم ﺗﻣرﯾره ﻛدﺧل ‪ ،‬ﻣﺛﻼً إذا ﻛﺎن ‪:‬‬ ‫‪-‬‬
‫‪>>X=1:3:15‬‬
‫=‪X‬‬
‫‪1‬‬ ‫‪4‬‬ ‫‪7 10 13‬‬
‫وأردﻧﺎ إﯾﺟﺎد اﻟﻣواﻗﻊ اﻟﺗﻲ ﺗﻛون ﻓﯾﮭﺎ ﻗﯾم اﻟﺷﻌﺎع أﻛﺑر ﻣن ‪) 7‬وھﻲ اﻟﻣواﻗﻊ ‪ 3‬و‪ 4‬و‪ 5‬ﻷن )‪ X(3‬ﯾﺣﻘق اﻟﺷرط وﻧﻔس اﻟﺷﻲء ﻟﻠﺑﻘﯾﺔ (‬
‫)‪>>pos=find(X>=7‬‬
‫= ‪pos‬‬
‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬
‫اﻷﻣر ‪ : gamma‬ﯾﻌطﻲ ﻗﯾﻣﺔ اﻟﻌﺎﻣﻠﻲ ﻟﻠﻌدد وﯾﻛﺗب ﻛﻣﺎ ﯾﻠﻲ ‪:‬‬ ‫‪-‬‬
‫‪n! (n  1)(n  2) 2 * 1‬‬
‫)‪>> gamma(6+1‬‬

‫= ‪ans‬‬

‫‪720‬‬
‫اﻷﻣر ‪ : size‬ﯾﻌطﻲ أﺑﻌﺎد اﻟﻣﺻﻔوﻓﺔ أو اﻟﻘطﺎع‪.‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ :length‬ﯾﻌطﻲ طول ﺷﻌﺎع أو ﻋدد اﻟﻌﻧﺎﺻر اﻟﻛﻠﻲ ﻟﻣﺻﻔوﻓﺔ‬ ‫‪-‬‬
‫اﻷﻣر ‪ :ones‬ﻣﺻﻔوﻓﺔ ﻛﻠﮭﺎ ﻋﻧﺎﺻرھﺎ واﺣدات )ﯾﺟب ﺗﻣرﯾر أﺑﻌﺎد اﻟﻣﺻﻔوﻓﺔ اﻟﻣراد إﻧﺷﺎؤھﺎ(‬ ‫‪-‬‬
‫)‪>>a5=ones(3 ,4‬‬
‫اﻷﻣر ‪ : zeros‬ﻣﺻﻔوﻓﺔ ﻛﻠﮭﺎ ﻋﻧﺎﺻرھﺎ أﺻﻔﺎر )ﯾﺟب ﺗﻣرﯾر أﺑﻌﺎد اﻟﻣﺻﻔوﻓﺔ اﻟﻣراد إﻧﺷﺎؤھﺎ(‬ ‫‪-‬‬
‫اﻷﻣر ‪ :figure‬ﯾﻔﺗﺢ ﺷﻛل ﻓﺎرغ‪.‬‬ ‫‪-‬‬
‫اﻷﻣر ‪ :edit‬ﯾﻔﺗﺢ اﻟﻛود ﻷي ﺗﺎﺑﻊ ﺟﺎھز‬ ‫‪-‬‬
‫‪>>edit mean‬‬
‫ﻣﻼﺣظﺔ ‪ 3‬ھﺎﻣﺔ ﺟداً‪ :‬اﻟﻔﺎﺻﻠﺔ ا ﻟﻣﻧﻘوطﺔ ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺗﻌﻠﯾﻣﺔ ﺗﻌﻧﻲ ﻓﻘط ﻋدم إظﮭﺎر ﻧﺗﯾﺟﺔ اﻟﺗﻌﻠﯾﻣﺔ ﻋﻠﻰ ﻧﺎﻓذة اﻷواﻣر ﻟﻛن اﻟﺗﻌﻠﯾﻣﺔ ﯾﺗم ﺗﻧﻔﯾذھﺎ‪.‬‬
‫ﻣﻼﺣظﺔ ‪ :4‬ﻣﺎﺗﻼب ﺣﺳﺎس ﻟﺣﺎﻟﺔ اﻷﺣرف ﻓﺎﻟﻣﺗﺣول ‪ M‬ﻏﯾر اﻟﻣﺗﺣول ‪m‬‬

‫‪ ‬ﻛﺗﺎﺑﺔ ﺑرﻧﺎﻣﺞ ‪ script‬ﻓﻲ ‪: Matlab‬‬


‫‪edit‬‬ ‫‪New Script‬‬ ‫‪new m file‬‬ ‫‪file‬‬ ‫‪editor‬‬
‫اﻷواﻣر( ﯾﻛون اﺳم اﻟﻣﻠف ﻟﮫ اﻟﻼﺣﻘﺔ ‪ .m‬ﻋﻧدﻣﺎ ﻧﻘوم ﺑﺗﺷﻐﯾل اﻟﺑرﻧﺎﻣﺞ‬
‫ﻣﻠف( ﻓﻲ ﻧﺎﻓذة اﻷواﻣر ‪ ،‬ﻓﯾﻣﻛن أن ﺗظﮭر ﻋﻠﻰ ﺷﺎﺷﺔ اﻷواﻣر ﻋﺑﺎرة ﺑﺎﻟﻠون اﻷﺣﻣر‬
‫ﺧطﺄ‪.‬‬
‫‪current directory‬‬
‫ﺿﻣن ﻣﺟﻠدات ‪) path‬ﻧﻔذ اﻟﺗﻌﻠﯾﻣﺔ ‪.(>>path‬‬

‫‪8‬‬
‫‪ ‬ﺗﻌرﯾف اﻟﺣﻠﻘﺔ ﺑﺎﺳﺗﺧدام ‪ for‬ﻣﻊ اﻟﺷرط ‪: if‬‬
‫ﻧﺳﺗﺧدم ﻋﺎدة ﻣن اﺟل ﺑﻧﺎء ﺣﻠﻘﺔ ‪ (for + end) :‬أﻣﺎ اﻟﺷرط ﻓﻧﺳﺗﺧدم )‪ (if + end‬ﻛﻣﺎ ھو ﻣوﺿﺢ ﺑﺎﻟﺑرﻧﺎﻣﺞ اﻟﺗﺎﻟﻲ ‪:‬‬
‫ﻣﺛﺎل ﺑرﻧﺎﻣﺞ ﻗﻠب ﺻورة ‪ 180‬درﺟﺔ‪ :‬اﻟﺧوارزﻣﯾﺔ )‪(pseudo code‬‬
‫‪ ‬ﻗراءة ﺑﻛﺳﻼت اﻟﺻورة ﻣن ﻣﻠف اﻟﺻورة ووﺿﻌﮭﺎ ﻓﻲ ﻣﺻﻔوﻓﺔ ‪a‬‬
‫‪ ‬اﻟﺣﺻول ﻋﻠﻰ ﻋدد اﻷﺳطر وﻋدد اﻷﻋﻣدة‬
‫‪ ‬ﻋﻣل ﺣﻠﻘﺔ ‪ i‬ﻋﻠﻰ اﻷﻋﻣدة‬
‫‪ o‬ﺗﻌﺑﺋﺔ اﻟﻌﻣود رﻗم ‪ i‬ﻣن اﻟﻣﺻﻔوﻓﺔ ‪ a2‬ﺑﺎﻟﻌﻣود رﻗم ‪ m-i+1‬ﻣن اﻟﻣﺻﻔوﻓﺔ اﻷﺻﻠﯾﺔ ‪) a‬ﻣﻧﺎظره أﻓﻘﯾﺎ ً(‬
‫‪ ‬إﻏﻼق اﻟﺣﻠﻘﺔ‬
‫ﻗم ﺑﻛﺗﺎﺑﺔ اﻟﺗﻌﻠﯾﻣﺎت اﻟﺗﺎﻟﯾﺔ وﺧزﻧﮭﺎ ﻓﻲ ﻣﻠف ‪ .ex1.m‬ﯾﺳﻣﻰ ھذا اﻟﻣﻠف ﺑـ ‪script‬‬

‫‪clear‬‬
‫;)'‪a=imread('moon.tif‬‬
‫;)‪[n,m]=size(a‬‬
‫‪for i=1:m‬‬
‫;)‪a2(:,i)=a(:,m-i+1‬‬
‫‪end‬‬
‫)‪imshow(a2‬‬
‫‪figure‬‬
‫)‪imshow(a‬‬

‫ﻧﻔﺬ اﻟﻤﻠﻒ اﻟﺴﺎﺑﻖ ﺑﻜﺘﺎﺑﺔ اﺳﻤﮫ ﻓﻲ ﻧﺎﻓﺬة اﻷواﻣﺮ )أو ﺑﺎﻟﺘﻌﻠﯿﻢ ﺑﺎﻟﻔﺄرة ﻋﻠﻰ‬
‫اﻷﺳﻄﺮ اﻟﻤﺮاد ﺗﻨﻔﯿﺬھﺎ ﻣﻦ اﻟﻜﻮد اﻟﺴﺎﺑﻖ وﻋﻤﻞ ‪ F9‬أو ﺑﺎﻟﻨﻘﺮة اﻟﯿﻤﻨﯿﺔ اﺧﺘﯿﺎر‬
‫‪(evaluate selection‬‬
‫‪>>ex1‬‬

‫ﺗﻤﺮﯾﻦ‪ :‬ﻟﺪﯾﻨﺎ اﻟﻤﻠﻒ ‪ ex2.m‬وﯾﺤﺘﻮي اﻟﻜﻮد اﻟﺘﺎﻟﻲ‪ :‬ﻣﺎذا ﯾﻔﻌﻞ ھﺬا اﻟﻤﻠﻒ؟‬

‫;‪clear all‬‬
‫;][=‪a‬‬
‫;‪for i=1:1:4‬‬
‫;‪for j=1:1:4‬‬
‫;‪if i==j‬‬
‫;‪a(i,j)=i*j‬‬
‫‪else‬‬
‫;‪a(i,j)=0‬‬
‫‪end‬‬
‫‪end‬‬
‫‪end‬‬
‫)'‪fprintf('matrix‬‬
‫‪a,‬‬

‫ﻣﻼﺣظﺔ ‪ : 5‬اﻟرﻣز ‪ %‬ھﻲ ﻟﻛﺗﺎﺑﺔ اﻟﺗﻌﻠﯾﻘﺎت ﺑﻌده‬


‫ﻣﺎ ھﻲ ﻧﺗﯾﺟﺔ ﺗﻧﻔﯾذ ھذا اﻟﺑرﻧﺎﻣﺞ؟ )ﻛﯾف ﯾﻣﻛﻧﻧﺎ ﺗﻧﻔﯾذه؟(‬

‫‪ ‬اﻟﺗواﺑﻊ اﻟرﯾﺎﺿﯾﺔ اﻟﻣوﺟودة ﻓﻲ ‪: Matlab‬‬

‫‪9‬‬
‫ﯾﻣﻛن أن ﻧذﻛر ﺑﻌض اﻟﺗواﺑﻊ اﻟرﯾﺎﺿﯾﺔ اﻟﻣﺳﺗﺧدﻣﺔ ﻓﻲ ‪ Matlab‬ﻓﻲ اﻟﺟدول ‪.2‬‬
‫)‪sin(x‬‬ ‫ﺟﯾب‬ ‫)‪abs(x‬‬ ‫اﻟﻘﯾﻣﺔ اﻟﻣطﻠﻘﺔ‬
‫)‪cos(x‬‬ ‫ﺗﺟﯾب‬ ‫)‪sqrt(x‬‬ ‫ﺟذر ﺗرﺑﯾﻌﻲ‬
‫)‪tan(x‬‬ ‫ظل‬ ‫)‪real(x‬‬ ‫اﻟﺟزء اﻟﺣﻘﯾﻘﻲ ﻟﻠﻌدد اﻟﻣﻌﻘد‬
‫)‪asin(x‬‬ ‫ﻣﻘﻠوب ﺟﯾب‬ ‫)‪image(x‬‬ ‫اﻟﺟزء اﻟﺗﺧﯾﻠﻲ ﻟﻠﻌدد اﻟﻣﻌﻘد‬
‫)‪acos(x‬‬ ‫ﻣﻘﻠوب ﺗﺟﯾب‬ ‫)‪round(x‬‬ ‫ﺗﻘرﯾب ﻟﻠﻌدد اﻟﺻﺣﯾﺢ‬
‫)‪atan(x‬‬ ‫ﻣﻘﻠوب ظل‬ ‫)‪fix(x‬‬ ‫ﺗﻘرﯾب ﻟﻠﻌدد اﻟﺣﻘﯾﻘﻲ‬
‫)‪sinh(x‬‬ ‫ﺟﯾب ‪hyperbolic‬‬ ‫)‪floor(x‬‬ ‫ﺗﻘرﯾب ﻟﻠﻌدد اﻟﺣﻘﯾﻘﻲ ﺑﺎﺗﺟﺎه ∞‪-‬‬
‫)‪cosh(x‬‬ ‫ﺗﺟﯾب ‪hyperbolic‬‬ ‫)‪ceil(x‬‬ ‫ﺗﻘرﯾب ﻟﻠﻌدد اﻟﺣﻘﯾﻘﻲ ﺑﺎﺗﺟﺎه ∞ ‪+‬‬
‫)‪tanh(x‬‬ ‫ظل ‪hyperbolic‬‬ ‫)‪sign(x‬‬ ‫= ‪ 1‬إذا ‪ x>0‬أو =‪ 1 -‬إذا ‪x<0‬‬
‫)‪asinh(x‬‬ ‫ﻣﻘﻠوب ﺟﯾب ‪hyperbolic‬‬ ‫)‪exp(x‬‬ ‫اﻟﻌدد اﻵﺳﻲ‬
‫)‪acosh(x‬‬ ‫ﻣﻘﻠوب ﺗﺟﯾب ‪hyperbolic‬‬ ‫)‪log(x‬‬ ‫ﺗﺎﺑﻊ ﻟوﻏﺎرﯾﺗﻣﻲ‬
‫)‪atanh(x‬‬ ‫ﻣﻘﻠوب ظل ‪hyperbolic‬‬ ‫)‪log10(x‬‬ ‫ﺗﺎﺑﻊ ﻟوﻏﺎرﯾﺗﻣﻲ ﻋﺷري‬
‫ﺟدول ‪ 2.1‬اﻟﺗواﺑﻊ اﻟرﯾﺎﺿﯾﺔ‬
‫ﻣﻼﺣظﺔ ‪ 6‬ھﺎﻣﺔ ‪ :‬ﺟﻣﯾﻊ اﻟﺗواﺑﻊ اﻟﺳﺎﺑق ﯾﻣﻛن ﺗطﺑﯾﻘﮭﺎ ﻋﻠﻰ ﻣﺗﺣوﻻت ذات ﻗﯾﻣﺔ وﺣﯾدة أو ﻋﻠﻰ ﺷﻌﺎع )أو ﻣﺻﻔوﻓﺔ ( ﻓﺗﻌﯾد ﻗﯾﻣﺔ ﺷﻌﺎع ﻓﯾﮫ ﻗﯾم اﻟﺗﺎﺑﻊ‬
‫ﻣن أﺟل ﻗﯾﻣﺔ ﻣن ﺷﻌﺎع اﻟدﺧل ) إذا ﻛﺎن ‪x‬ﺷﻌﺎع ﻓﺈن )‪ cos(x‬ﯾﻌﯾد ﺷﻌﺎع ﻓﯾﮫ ﻗﯾم ﺗﺟﯾب اﻟزواﯾﺎ اﻟﻣوﺟودة ﻓﻲ اﻟﺷﻌﺎع ‪.(x‬‬
‫‪ ‬ﻧذﻛر ﺑﻌض اﻟﺗواﺑﻊ اﻷﺧرى اﻟﻣﺳﺗﺧدﻣﺔ ﻓﻲ ‪: Matlab‬‬
‫ﺗرﺗﯾب اﻷرﻗﺎم ﺑﺷﻛل ﻣﺗزاﯾد ‪:‬‬ ‫‪‬‬
‫‪ o‬ﻣﺛﺎل ‪:‬‬
‫]‪>> x=[2 5 9 0 4 5‬‬
‫= ‪x‬‬
‫‪2‬‬ ‫‪5‬‬ ‫‪9‬‬ ‫‪0‬‬ ‫‪4‬‬ ‫‪5‬‬
‫ﺗرﺗﯾب ﻋﻧﺎﺻر ﺷﻌﺎع‬ ‫‪‬‬

‫)‪>> sort(x‬‬
‫= ‪ans‬‬
‫‪0‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪5‬‬ ‫‪9‬‬
‫ﺟﻣﻊ ﻋﻧﺎﺻر ﺷﻌﺎع ‪: x‬‬ ‫‪‬‬
‫)‪>> sum(x‬‬
‫= ‪ans‬‬
‫‪25‬‬

‫إﯾﺟﺎد اﻟرﻗم اﻷﻛﺑر ﻓﻲ ﺷﻌﺎع ‪: x‬‬ ‫‪‬‬


‫)‪>> max(x‬‬
‫= ‪ans‬‬
‫‪9‬‬

‫إﯾﺟﺎد اﻟرﻗم اﻷﺻﻐر ﻓﻲ ﺷﻌﺎع ‪: x‬‬ ‫‪‬‬


‫)‪>> min(x‬‬
‫= ‪ans‬‬
‫‪0‬‬
‫إﯾﺟﺎد اﻟﻘﯾﻣﺔ اﻟوﺳطﻰ ﻟﻌﻧﺎﺻر اﻟﻘطﺎع ‪: x‬‬ ‫‪‬‬
‫)‪>> mean(x‬‬
‫= ‪ans‬‬
‫‪4.1667‬‬

‫‪10‬‬
‫إﯾﺠﺎد ﻗﯿﻤﺔ ﺟﯿﺐ زاوﯾﺔ‬
‫)‪>>sin(pi/2‬‬
‫= ‪ans‬‬
‫‪1‬‬
‫ﺛواﺑت ﻣﻌرﻓﺔ ﺳﺎﺑﻘﺎ ً ﻣﺛﺎل ‪:π‬‬
‫‪>> pi‬‬
‫= ‪ans‬‬
‫‪3.1416‬‬
‫‪ ‬ﺑﻧﺎء ﺗﺎﺑﻊ ﺧﺎص ‪ :‬اﻟﺗﺎﺑﻊ اﻟﺧﺎص ﻣﺛل ‪ script‬ﻟﻛﻧﮫ ﯾﺄﺧذ ﻣﺗﺣوﻻت دﺧل وﯾﻌﯾد ﻣﺗﺣوﻻت ﺧرج‬
‫ﯾﺗم ﺣﻔظ اﻟﺑراﻣﺞ ﻓﻲ ‪ Matlab‬ﺿﻣن ﻣﻠﻔﺎت ذات ﻻﺣﻘﺔ ‪ .m‬ﺣﯾث ﯾﺗم ﺗﺷﻛﯾل ﺗواﺑﻊ وإﺿﺎﻓﺗﮭﺎ إﻟﻰ ‪Matlab‬‬
‫اﻟﺗﺎﺑﻊ ﻓﻲ ‪ file.m‬ﺣﯾث ﯾﻛون اﺳم اﻟﻣﻠف ﻣن ﻧﻔس اﺳم اﻟﺗﺎﺑﻊ‪.‬‬
‫ﻗم ﺑﺎﻟﻧﻘر ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ ‪ file‬واﺧﺗر ‪ new‬ﺗﺟد ﻋدد ﺧﯾﺎرات اﺧﺗر ﻣﻧﮭﺎ‪M- file :‬‬
‫ﻟﺑﻧﺎء أي ﺗﺎﺑﻊ ﯾﺟب ﻣﻌرﻓﺔ ﻣﺎ ھﻲ ﻣﺗﺣوﻻت اﻟدﺧل وﻣﺎ ھﻲ ﻣﺗﺣوﻻت اﻟﺧرج ﻟﮭذا اﻟﺗﺎﺑﻊ‬
‫ﻣﺛﺎل ‪ : 1‬ﻟﻧﻛﺗب ﺗﺎﺑﻊ اﺳﻣﮫ ‪ test2‬ﯾﺄﺧذ ﻣﺗﻐﯾر دﺧل واﺣد ‪ x‬وﯾﻘوم ﺑﺣﺳﺎب ﻣرﺑﻊ ‪ x‬وﯾﻌﯾد اﻟﻘﯾﻣﺔ ‪x1‬‬

‫;)‪function [x1]=test2(x‬‬
‫;‪x1=x^2‬‬
‫)'‪fprintf(‘the value of x1 is‬‬

‫‪test2.m‬‬ ‫ﯾﺟب‬
‫اﻹﺳﻧﺎد(‪:‬‬
‫)‪>>test2(12‬‬
‫‪value of x1 is‬‬
‫= ‪ans‬‬
‫‪144‬‬
‫ﻣﻼﺣظﺔ‪ : 7‬اﻟﻣﺗﺣوﻻت اﻟداﺧﻠﯾﺔ )ﻟﯾﺳت دﺧل وﻻ ﺧرج( ﺿﻣن ﺗﺎﺑﻊ ھﻲ ﻣﺗﺣوﻻت ﻣﺣﻠﯾﺔ وﺗﺧﺗﻔﻲ ﺑﻌد ﺗﻧﻔﯾذ اﻟﺗﺎﺑﻊ ﻋﻠﻰ ﻋﻛس اﻟﻣﺗﺣوﻻت اﻟﻣﻌرﻓﺔ‬
‫ﻗم ﺑﺗﺣوﯾل اﻟﻣﻠف ‪ ex1.m : script‬إﻟﻰ ﺗﺎﺑﻊ ﯾﺄﺧذ أﺑﻌﺎد اﻟﺻﻔوﻓﺔ ﻛدﺧل ﺑدل اﻟﻘﯾﻣﺔ ‪4‬‬
‫‪ o‬ﻣﺛﺎل ‪ : 2‬ﻧرﯾد ﺣﺳﺎب اﻟﻘﯾﻣﺔ اﻟوﺳطﻰ ‪ expected value‬واﻻﻧﺣراف اﻟﻣﻌﯾﺎري ﻟﺑﻌض اﻟﻣﻌطﯾﺎت اﻟﺗﺟرﯾﺑﯾﺔ اﻟﻣوﺟودة ﻓﻲ ﺷﻌﺎع دﺧل‪.‬‬
‫)‪function [m,stdv]=mean_std(x‬‬
‫;)‪n=length(x‬‬
‫;‪m=sum(x)/n‬‬
‫;)‪stdv=sqrt(sum((x-m).^2)/n‬‬
‫ﻧﺗﯾﺟﺔ اﻟﺑرﻧﺎﻣﺞ ‪:‬‬
‫;]‪>> x=[1 3 2.5 2 5 7 6 3.5‬‬
‫)‪>>[m,sv]=mean_std(x‬‬
‫ﻧﻔذ اﻟﺑرﻧﺎﻣﺞ اﻟﺳﺎﺑق واﻛﺗب اﻟﻧﺎﺗﺞ‬
‫ﻣﻼﺣظﺔ ‪ : 8‬اﻻﻧﺣراف اﻟﻣﻌﯾﺎري ‪ standard deviation‬ﺟذر اﻟﺗﻐﺎﯾر ‪ variance‬اﻟذي ھو ﻣﺗوﺳط ﻣرﺑﻊ اﻧﺣراف اﻟﻌﯾﻧﺎت ﻋن اﻟﻣﺗوﺳط‬

‫) ‪ std   ( x(i)  ‬ﺣﯾث ‪ μ‬ھو اﻟﻣﺗوﺳط‬


‫‪2‬‬
‫ﯾﻌطﻰ ﺑﺎﻟﻌﻼﻗﺔ اﻟﺗﺎﻟﯾﺔ‬
‫‪n‬‬

‫ﺣﺳﺎب ورﺳم ﺗﺎﺑﻊ رﯾﺎﺿﻲ‪ y=f(x) :‬ﻟرﺳم أي ﺗﺎﺑﻊ رﯾﺎﺿﻲ ﯾﺟب‪:‬‬


‫‪ .1‬ﺗﻌرﯾف ﻣﺟﺎل ﺗﻐﯾرات ‪ x‬ووﺿﻊ ﻗﯾﻣﮭﺎ ﻓﻲ ﺷﻌﺎع ‪ .‬ﻣﺛﻼً ‪ x‬ھﻲ ﻓﻲ اﻟﻣﺟﺎل ‪ 0‬إﻟﻰ ‪ 10‬ﺑﺧطوة ‪0.1‬‬
‫‪ .2‬ﺗﻌﺑﺋﺔ ﻗﯾم اﻟﺗﺎﺑﻊ ‪ f‬ﻓﻲ ﺷﻌﺎع ﻣﻘﺎﺑل ﻗﯾم اﻟﺷﻌﺎع ‪ x‬ﺑﺣﺳب ﻣﻌﺎدﻟﺔ اﻟﺗﺎﺑﻊ اﻟرﯾﺎﺿﯾﺔ‪ ،‬أو ﺑﺣﺳب ﻗﯾم ﻣﻘروؤة ﻣن ﺣﺳﺎس أو ﻗﺎﻋدة ﺑﯾﺎﻧﺎت‬
‫‪ .3‬ﺗﻌﻠﯾﻣﺔ ارﺳم اﻟﺷﻌﺎع ‪ f‬ﺑدﻻﻟﺔ اﻟﺷﻌﺎع ‪x‬‬

‫‪11‬‬
‫‪y‬ﻟ‬ ‫‪،x‬و‬ ‫‪x‬ﻟ‬ ‫‪ x‬و ‪.y‬‬ ‫)‪) Plot(x,f‬ﯾرﺳم ﻧﻘط‪ ،‬ﻛل ﻧﻘطﺔ ﺗﺣﺗﺎج إ‬
‫ﻧﻘطﺔ ھﻲ ﻣن اﻟﺷﻌﺎع ‪ .f‬ﻟذﻟك ﯾﺟب أن ﯾﻛون اﻟﺷﻌﺎﻋﯾن ﻣن ﻧﻔس اﻟطول( ﺛم ﯾﺻل ﺑﻣﺳﺗﻘﯾﻣﺎت ﺑﯾن اﻟﻧﻘط‪.‬‬
‫ﻣﺛﺎل رﺳم ﻛﺛﯾر ﺣدود ‪f(x)=x2+3x+1‬‬
‫;‪>>x=0:0.1:10‬‬ ‫;‪>>f=x.^2+3*x+1‬‬ ‫)‪>>plot(x,f‬‬
‫ﻣﻼﺣﻈﺔ ﯾﻤﻜﻦ رﺳﻢ اﻟﻨﻘﻂ ﻣﻨﻔﺼﻠﺔ ﻓﻘﻂ ﺑﺪون اﻟﻮﺻﻞ ﺑﯿﻨﮭﺎ ﻋﺒﺮ ﺗﻌﻠﯿﻤﺔ )’*‪ plot(x,f,’r‬ﺑﺪل اﻟﺘﻌﻠﯿﻤﺔ اﻟﺴﺎﺑﻘﺔ ﺣﯿﺚ ﯾﺸﯿﺮ اﻟﺤﺮف ‪ r‬إﻟﻰ ﻟﻮن ﺧﻂ‬
‫اﻟﺮﺳﻢ واﻟﺮﻣﺰ * إﻟﻰ اﻟﺮﻣﺰ اﻟﺬي ﯾﻮﺿﻊ ﻋﻨﺪ اﻟﻨﻘﺎط )ﯾﻤﻜﻦ اﺗﺴﺨﺪام ‪ o‬أو أي رﻣﺰ أﺧﺮ(‪.‬‬
‫ﯾﻤﻜﻦ رﺳﻢ ﺷﺒﻜﺔ ﻋﻠﻰ اﻟﺸﻜﻞ ‪grid on‬‬
‫ﺳﺆال‪ :‬ﻣﺎ ھﻲ ﻗﯿﻢ اﻟﺸﻌﺎع ‪ ،x‬وﻣﺎ ھﻲ ﻗﯿﻢ اﻟﺸﻌﺎع ‪f‬؟‬
‫ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺴﺎﺑﻘﺔ ﻓﻲ ﻣﻠﻒ ‪ m‬وﺗﺨﺰﯾﻨﮫ ﺑﺎﺳﻢ ﻣﺜﻼً ‪ example1.m‬وﺗﻨﻔﯿﺬ ھﺬا اﻟﻤﻠﻒ ﺑﻜﺘﺎﺑﺔ اﺳﻤﮫ ﻋﻠﻰ ‪ ،command line‬ﯾﺴﻤﻰ ھﻜﺬا‬
‫ﻣﻠﻒ ﺑـ ‪ script‬ﺣﯿﺚ أﻧﮫ ﻟﯿﺲ ﺗﺎﺑﻊ ﻟﮫ ﻣﺘﺤﻮﻻت دﺧﻞ وﺧﺮج ﻟﻜﻨﮫ ﻣﺠﺮد ﺳﻠﺴﻠﺔ ﻣﻦ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺘﻲ ﯾﻨﻔﺬھﺎ ﻣﺎﺗﻼب ﺑﺸﻜﻞ ﺗﺴﻠﺴﻠﻲ ﻣﺒﺎﺷﺮة‪.‬‬
‫وظﯿﻔﺔ‪:‬‬
‫‪ .1‬اﺣﺳب ﻓﻌﺎﻟﯾﺔ ﺗرﻣﯾز ‪) R3‬ﺗﻛرار أي رﺳﺎﻟﺔ ‪ 3‬ﻣرات(‪ ،‬اﻛﺗب اﻟﺗﻌﻠﯾﻣﺔ واﻟﻧﺗﯾﺟﺔ‬
‫‪256‬‬ ‫‪ADSL‬‬ ‫‪1Mbyte‬‬ ‫‪ .2‬اﺣﺳب‬
‫اﻟﻣﻠف؟ اﻛﺗب اﻟﺗﻌﻠﯾﻣﺔ واﻟﻧﺗﯾﺟﺔ‪ .‬إذا ﻧﻘص ﺣﺟﻣﮫ ﻟﻠرﺑﻊ ﻧﺗﯾﺟﺔ اﻟﺿﻐط‪ ،‬ﻣﺎذا ﯾﺻﺑﺢ اﻟزﻣن اﻟﻼزم ﻟﻺرﺳﺎل )ﻣﻼﺣظﺔ‪:‬‬

‫ﻟﻠرﺳﺎﻟﺔ(‬
‫‪ .3‬اﺣﺳب ﺣﺟم ﺻورة ‪ trees.tif‬وﻗﺎرن ﻣﻊ ﺣﺟﻣﮭﺎ ﻟو ﻛﻧﺎ ﻟوﻧﮭﺎ ﺑطرﯾﻘﺔ ‪24‬ﺑت ﻟﻠﺑﻛﺳل اﻟواﺣد‬
‫‪ .4‬ﻋدﱠل اﻟﻣﻠف ‪ ex1‬اﻟذي ﻧوﻋﮫ ‪ script‬إﻟﻰ ﺗﺎﺑﻊ ‪ function‬ﻧﻣرر ﻟﮫ اﺳم ﻣﻠف اﻟﺻورة اﻟﺗﻲ ﻧرﯾد ﺗدوﯾرھﺎ ‪ 180‬درﺟﺔ وﯾﻌﯾد ﻣﺻﻔوﻓﺔ‬
‫اﻟﺻورة اﻟﻣدورة‪ ،‬وﯾظﮭرھﺎ‬
‫‪ .5‬ﻋ ّدل اﻟﺗﺎﺑﻊ اﻟﺳﺎﺑق ﺑﺣﯾث ﯾﻘوم ﺑﺗدوﯾر اﻟﺻورة ﻋﻣودﯾﺎ ً )ﯾﻘﻠﺑﮭﺎ ‪.( upside down‬‬
‫‪ .6‬اﻛﺗب ﺗﺎﺑﻊ ﯾﻘوم ﺑرﺳم داﺋرة ﯾﺣدد ﻧﺻف ﻗطرھﺎ وﻣرﻛزھﺎ اﻟﻣﺳﺗﺧدم‬
‫‪ .7‬ﻟﻐﺔ ﻣﺎﺗﻼب ھل ھﻲ ﻣﻔﺳرة أم ﻣﺗرﺟﻣﺔ؟ وﻟﻣﺎذا؟ أﻋطﻲ ﻣﺛﺎﻻً ﻋﻠﻰ ﻛل ﻧوع ﻣن اﻟﻠﻐﺎت وﻣﺎ ھﻲ ﻣزاﯾﺎ وﻣﺳﺎوئ ﻛل ﻧوع‬
‫‪ .8‬ارﺳم اﻟﺗﺎﺑﻊ )‪ f(x)=2x+log(x‬ﻋﻠﻰ اﻟﻣﺟﺎل ‪ 2 -‬إﻟﻰ ‪ 15‬ﺑﺎﻟﺧطوة اﻟﺗﻲ ﺗرﯾدھﺎ‬
‫‪ .9‬ﻣﺎ ھو ﺗﺄﺛﯾر ﺧطوة اﻟﺷﻌﺎع ‪x‬ﻋﻠﻰ اﻟرﺳم‬
‫‪ .10‬ﻟدﯾﻧﺎ ﻗﯾم ﺣرارة اﻟطﻘس ﻓﻲ اﻷﯾﺎم اﻟﺧﻣﺳﺔ اﻷوﻟﻰ ﻣن اﻟﺷﮭر ﻛﺎﻷﺗﻲ‬
‫اﻟﯾوم‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬
‫اﻟﺣرارة‬ ‫‪33‬‬ ‫‪35‬‬ ‫‪32‬‬ ‫‪36‬‬ ‫‪37‬‬ ‫‪37‬‬ ‫‪40‬‬
‫اﻟرطوﺑﺔ‬ ‫‪%60‬‬ ‫‪%70‬‬ ‫‪%70‬‬ ‫‪%80‬‬ ‫‪%70‬‬ ‫‪%50‬‬ ‫‪%60‬‬
‫‪ .a‬ارﺳم ﺗﻐﯾرات اﻟﺣرارة ﻣﻊ اﻷﯾﺎم )ﻛﻣﻧﺣﻧﻲ وﻛﻧﻘط(‪ b .‬ارﺳم ﺗﻐﯾرات اﻟرطوﺑﺔ ﻣﻊ اﻷﯾﺎم )ﻛﻣﻧﺣﻧﻲ وﻛﻧﻘط(‪ .c .‬ارﺳم ﺗﻐﯾرات اﻟرطوﺑﺔ‬
‫ﻣﻊ اﻟﺣرارة )ﻛﻣﻧﺣﻧﻲ وﻛﻧﻘط(‪ .‬ﻣﺎذا ﺗﻼﺣظ‪ ،‬ﻓﺳر ذﻟك‬

‫‪12‬‬

You might also like