Professional Documents
Culture Documents
ﻣﺎ ھو ﻣﺎﺗﻼب
ـ ) ( MATrix LABoratory ) ( MATLAB
أﺳﺎس أﻧﮭﺎ ﻣﺻﻔوﻓﺔ )ﺣﺗﻰ اﻟﻘﯾﻣﺔ اﻷﺣﺎدﯾﺔ ھﻲ ﻣﺻﻔوﻓﺔ ﻣن ﺳطر واﺣد وﻋﻣود واﺣد( ،وﯾﺣﺗوي ﺗواﺑﻊ ﺟﺎھز
ﯾﻣﻛﻧﻧﺎ ﻛﺗﺎﺑﺔ ﺑراﻣﺞ ﺑﮭﺎ ﺑﻣﺳﺗوﯾﺎت ﻣﺧﺗﻠﻔﺔ :ﻣﻧﺧﻔﺿﺔ اﻟﻣﺳﺗوى و ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى ،و ذﻟك ﻛﻠﮫ ﻓﻲ ﺑﯾﺋﺔ ﺳﮭﻠﺔ اﻻﺳﺗﺧدام.
ﯾﺳﺗﺧدم ﺑرﻧﺎﻣﺞ ﻣﺎﺗﻼب ﻓﻲ:
.1إﻧﺠﺎز اﻟﺤﺴﺎﺑﺎت ) ( Math and Computation
.3ﺗﺤﺼﯿﻞ اﻟﻤﻌﻄﯿﺎت ) ( Data Acquisitionوھﻮ ﻣﺎ ﯾﺘﻀﻤﻦ ﻗﺮاءة اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺑﻄﺎﻗﺎت اﻟﺘﺤﺼﯿﻞ acquisition cardاﻟﺘﻲ ﺗﻮﺻﻞ
إﻟﯿﮭﺎ ﺣﺴﺎﺳﺎت ) sensorﻣﺜﻞ ﺣﺴﺎﺳﺎت اﻟﺤﺮارة أو اﻟﺮطﻮﺑﺔ( ﺛﻢ إﯾﺠﺎد ﺗﻮاﺑﻊ ﺗﻤﺜﻞ ﺗﻌﻄﻲ ﻗﯿﻢ ھﺬه اﻟﺒﯿﺎﻧﺎت اﻟﻤﺤﺼﻠﺔ )ﻋﺒﺮ ﻋﻤﻠﯿﺔ اﻻﺳﺘﯿﻔﺎء
اﻟﺮﯾﺎﺿﻲ .(interpolation
.4اﻟﻨﻤﺬﺟﺔ و اﻟﻤﺤﺎﻛﺎة و إﻋﺎدة ﻧﻤﺬﺟﺔ اﻟﻨﻈﺎم ( Modeling , Simulink , and Prototyping ).
.5ﺗﺤﻠﯿﻞ اﻟﻤﻌﻄﯿﺎت و ﻣﻌﺎﻟﺠﺘﮭﺎ و إظﮭﺎر اﻟﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺷﻜﻞ رﺳﻮﻣﺎت ) ( Data Analysis , Exploration , and Visualization
.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
)>>a2=int8(a1
اﻟﻨﺘﯿﺠﺔ
= a2
)’>>a3=imread(‘moon.tif
ﯾﺠﺐ أن ﯾﻜﻮن ﻣﻠﻒ اﻟﺼﻮرة ﺿﻤﻦ ﻣﺠﻠﺪات اﻟـ pathوإﻻ ﯾﺠﺐ ﺗﻤﺮﯾﺮ اﻟﻤﺴﺎر اﻟﻜﺎﻣﻞ ﻣﻊ اﺳﻢ اﻟﻤﻠﻒ
ﻋﺮض اﻟﺼﻮرة:
)>>imshow(a3
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
]>> x=[1:2:10
= x
']>> x=[1:2:10
= x
1
3
5
7
9
ﻣﻼﺣظﺔ : 1اﻟﻔﺗﺣﺔ ھﻲ ﻋﻣﻠﯾﺔ ﻣﻧﻘول ﻣﺻﻔوﻓﺔ )اﺳﺗﺑدال اﻷﺳطر ﺑﺎﻷﻋﻣدة( وھﻲ ﺗﺣول اﻟﺷﻌﺎع اﻟﺳطري إﻟﻰ ﺷﻌﺎع ﻋﻣودي
ﻣﻼﺣﻈﺔ) :2إذا ﻛﺎﻧﺖ اﻟﻤﺼﻔﻮﻓﺔ إﺣﺎدﯾﺔ اﻟﺒﻌﺪ أي ﺷﻌﺎع ﻓﺎﻟﻤﻮﻗﻊ ﯾﺘﺤﺪد ﺑﻘﯿﻤﺔ واﺣﺪة ھﻲ رﻗﻢ اﻟﻌﻤﻮد إذا ﻛﺎن اﻟﺸﻌﺎع ﺳﻄﺮي أو رﻗﻢ اﻟﺴﻄﺮ إذا ﻛﺎن
اﻟﺸﻌﺎع ﻋﻤﻮدي( ﻣﺜﻼً ﻗﯿﻤﺔ اﻟﺸﻌﺎع xﻓﻲ اﻟﺴﻄﺮ اﻟﺮاﺑﻊ ﻧﺮﯾﺪ أن ﻧﺴﻨﺪھﺎ ﻟﻠﻤﺘﺤﻮل b
)>>b=x(4
= ans
ﻣﺗﻰ ﻧﺳﺗﺧدم ﻣﻘﻠوب ﻣﺻﻔوﻓﺔ ؟ ﻓﻲ ﺣل ﺟﻣﻠﺔ ﻣﻌﺎدﻻت ﺧطﯾﺔ .ﻣﺛﻼً ﻟدﯾﻧﺎ 100ﻣﻌﺎدﻟﺔ ﺑـ 100ﻣﺟﮭول.
ﻣﺣدد اﻟﻣﺻﻔوﻓﺔ :
)>> det(M
= ans
-10
ﻣﺎذا ﯾدل أن اﻟﻣﺣدد ﺻﻔر؟ ﯾﻌﻧﻲ أن ﻋﻧﺎﺻر اﻟﻣﺻﻔوﻓﺔ ﻏﯾر ﻣﺳﺗﻘﻠﯾن ﺧطﯾﺎ ً
إظﮭﺎر اﻟرﻗم اﻷول ﻣن اﻟﻣﺻﻔوﻓﺔ :
)>> M(1,1
= ans
1
إظﮭﺎر اﻟﻌﻣود اﻷول :
)>> M(:,1
= ans
1
2
5
)>> M(2,:
= ans
])>>M=[M(1,:); M(3,:
6
إﺿﺎﻓﺔ ﺳطر ﺟدﯾد ﻟﻠﻣﺻﻔوﻓﺔ ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﻣﺻﻔوﻓﺔ
= X1
= ans
* 1.0e+003
= 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
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,
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
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اﻟذي ھو ﻣﺗوﺳط ﻣرﺑﻊ اﻧﺣراف اﻟﻌﯾﻧﺎت ﻋن اﻟﻣﺗوﺳط
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