BARBAMESAZI COM - ‫ﻛﻠﻴﺎت و اﺻﻮل‬ ‫1...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ‫ﻛﻠﻴﺎت و اﺻﻮل‬ ‫1 ﻓﺼﻞ ﻳﻚ‬ ‫1.1.1 ﻣﻘﺪﻣﻪ‬ ‫2.1.1 واژه ‪MATLAB‬‬ ‫ﻛﻠﻤﻪ ﻓﻮق، ﺳﺮ- واژهي ﻋﺒﺎرت ‪ MATrix LABoratory‬اﺳﺖ، ﻛﻪ در اﻳﻦ ﻣﺘﻦ ﺑﻪﺷﻜﻞ ‪ MATLAB‬ﻳﺎ ﻣﺘﻠﺐ ﻣﻲآﻳﺪ.‬ ‫ﺑﺮاي اﺟﺮاي ﻣﺜﺎلﻫﺎ و ﺗﻤﺮﻳﻦﻫﺎي اﻳﻦ ﻣﺘﻦ از 31 ‪ MATLAB 6.5, Release‬اﺳﺘﻔﺎده ﺷﺪه، و اﺳﺘﻔﺎده از آن )ﻳﺎ‬ ‫وﻳﺮاﺳﺖﻫﺎي ﺑﺎﻻﺗﺮ ﻣﺜﻞ 7 ‪ Ver‬ﻳﺎ 7002 ‪ (Ver‬ﺑﻪ داﻧﺸﺠﻮﻳﺎن ﺗﻮﺻﻴﻪ ﻣﻲﺷﻮد.‬ ‫3.1.1 ﺳﻴﻤﺎي ‪MATLAB‬‬ ‫‪ MATLAB‬زﺑﺎﻧﻲ اﺳﺖ ﻛﻪ ﻛﺎرﺑﺮد ﻛﺎﻣﭙﻴﻮﺗﺮ در ﻣﻬﻨﺪﺳﻲ را ﺑﺎ ﻛﺎراﺋﻲ ﺑﺎﻻ ﺗﻀﻤﻴﻦ ﻛﺮده و اﻣﻜﺎﻧﺎت ﻣﺤﺎﺳﺒﺎﺗﻲ، ﺗﺼﻮﻳﺮي، و‬ ‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ را در ﻣﺤﻴﻄﻲ آﺳﺎن و آﺷﻨﺎ ﻓﺮاﻫﻢ ﻣﻲﻛﻨﺪ. ﻛﺎراﺋﻲ ‪ MATLAB‬در ﻣﻘﻮﻟﻪﻫﺎﺋﻲ ﻧﻈﻴﺮ: ﻣﺤﺎﺳﺒﺎت رﻳﺎﺿﻲ، دﺳﺘﺮﺳﻲ‬ ‫ﺑﻪ/ و آﻧﺎﻟﻴﺰ دادهﻫﺎ، ﻣ‪‬ﺪلﺳﺎزي و ﺷﺒﻴﻪﺳﺎزي، ﮔﺮاﻓﻴﻚ، و ﺗﻮﻟﻴﺪ ﻧﺮماﻓﺰار )ﺣﺘﻲ ﺑﺮاي ﻣﺤﻴﻂ وﻳﻨﺪوز( ﺑﻪ اﺛﺒﺎت رﺳﻴﺪه اﺳﺖ.‬ ‫اﻳﻦ زﺑﺎن ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻧﻈﺮات ﻛﺎرﺑﺮان داﻧﺸﮕﺎﻫﻲ و ﺻﻨﻌﺘﻲ دﺳﺖﺧﻮش ﺑﺎزﻧﮕﺮيﻫﺎي زﻳﺎدي ﺷﺪه و اﻛﻨﻮن ﺑﻪ زﺑﺎن اﺳﺘﺎﻧﺪارد‬ ‫ﺟﻬﺖ آﻣﻮزشﻫﺎي ﻣﻘﺪﻣﺎﺗﻲ و ﻋﺎﻟﻲ و اﺑﺰار ﭘﮋوﻫﺶ و ﺗﻮﺳﻌﻪ در ﺻﻨﺎﻳﻊ ﺗﺒﺪﻳﻞ ﺷﺪه اﺳﺖ.‬ ‫‪ MATLAB‬ﺟﻌﺒﻪاﺑﺰارﻫﺎﺋﻲ ﺑﺮاي ﻛﺎرﺑﺮدﻫﺎي ﺧﺎص در اﺧﺘﻴﺎر ﻗﺮار ﻣﻲدﻫﺪ، ﻛﻪ از ﺟﻤﻠﻪ آنﻫﺎ ﺟﻌﺒﻪاﺑﺰار رﻳﺎﺿﻴﺎت، ﻛﻨﺘﺮل،‬ ‫ﺷﺒﻜﻪﻫﺎي ﻋﺼﺒﻲ، ﺑﺎزرﮔﺎﻧﻲ، . . . ﻣﻲﺑﺎﺷﻨﺪ. ﺟﻌﺒﻪ اﺑﺰارﻫﺎ ﺑﺎ زﺑﺎن ﻣﺘﻠﺐ و ﺑﻪ ﺻﻮرت ﻣﺠﻤﻮﻋﻪاي از ام- ﻓﺎﻳﻞﻫﺎ ﮔﺴﺘﺮش‬ ‫ﻳﺎﻓﺘﻪاﻧﺪ و ﺑﺮاي ﻫﺮ ﻛﺎرﺑﺮ در زﻣﻴﻨﻪ ﺗﺨﺼﺼﻲاش ﻛﺎرﺑﺮد و اﻫﻤﻴﺖ زﻳﺎد دارﻧﺪ. اﻣﻜﺎن ﺳﺎﺧﺖ ﺟﻌﺒﻪاﺑﺰارﻫﺎي ﺟﺪﻳﺪ و ﺷﺨﺼﻲ‬ ‫ﻧﻴﺰ ﺑﺮاي ﻛﺎرﺑﺮان ﭘﻴﺸﺮﻓﺘﻪ ﻓﺮاﻫﻢ اﺳﺖ.‬ ‫در اﻳﻦ ﻧﺮماﻓﺰار ﻫﺮ ﻣﺘﻐﻴﺮ ﺑﻪ ﻋﻨﻮان ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﻳﺎ ﻳﻚ ﺑﺮدار )ﺑﺮدار ﻣﺎﺗﺮﻳﺲ ﺗﻚ ﺳﻄﺮي ﻳﺎ ﺗﻚ ﺳﺘﻮﻧﻲ اﺳﺖ( ﺷﻨﺎﺧﺘﻪ ﻣﻲ-‬ ‫ﺷﻮد. ﻟﺬا ﺗﻌﺪادي ﻣﻘﺪار را ﻳﻚ ﺟﺎ ﻣﻲﺗﻮان ﺑﻪ ﻳﻚ ﻣﺘﻐﻴﺮِ ﺗﻚ- ﻧﺎم )ﺑﺪون ﻧﻴﺎز ﺑﻪ اﻋﻼم ﻗﺒﻠﻲ ﺗﻌﺪاد اﻋﻀﺎء( ﻧﺴﺒﺖ داد. اﻳﻦ‬ ‫اﺑﺘﻜﺎر ﻣﺎ را از ﻣﻘﺪار دﻫﻲ ﺑﻪ و ﻧﻤﺎﻳﺶ ﺗﻚ ﺗﻚ ﻋﻨﺎﺻﺮ آراﻳﻪ ﻛﻪ در زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ اﻧﺠﺎم ﻣﻲﺷﻮد ﺑﻲﻧﻴﺎز ﻣﻲﻛﻨﺪ.‬ ‫ﻣﺘﻠﺐ داراي ﭘﻨﺞ وﻳﮋﮔﻲ ﺷﺎﻳﺎن ذﻛﺮ اﺳﺖ:‬ ‫1- ﭘﻨﺠﺮهي واﺳﻂ ﻛﺎرﺑﺮ ‪ (IDE) Integrated Development Environment‬ﺑﺴﻴﺎر دلﭘﺬﻳﺮ و‬ ‫ﺷﺎﻣﻞ ﭘﻨﺠﺮه-‬ ‫دﺳﺖﻳﺎﻓﺘﻨﻲ ﻛﻪ از اﻣﺘﻴﺎزات ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻣﺘﻨﻲ و ﮔﺮاﻓﻴﻜﻲ ﻫﺮ دو اﺳﺘﻔﺎده ﻣﻲﻛﻨﺪ. اﻳﻦ واﺳﻂ ﻛﺎرﺑﺮ‬ ‫ﻫﺎي: ﻓﺮﻣﺎن، دﻳﺮﻛﺘﻮري ﺟﺎري، ﺗﺎرﻳﺨﭽﻪ ﻓﺮﻣﺎن، ﻓﻀﺎي ﻛﺎر، . . . اﺳﺖ. ﭘﻨﺠﺮهي ﻓﺮﻣﺎن دﺳﺘﻮرات را ﺑﻪ ﺻﻮرت ﻛﻨﺴﻮل ﻳﺎ‬ ‫ﺧﻂ ﻓﺮﻣﺎن، ﻣﺸﺎﺑﻪ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ‪ ،DOS‬درﻳﺎﻓﺖ و اﺟﺮا ﻣﻲﻛﻨﺪ. ﭘﻨﺠﺮه ﻓﻀﺎي ﻛﺎر ﻛﻠﻴﻪ ﻣﺘﻐﻴﺮﻫﺎي ﻓﻀﺎي ﻛﺎر را ﺑﺎ ﻣﺸﺨﺼﺎت‬ ‫آنﻫﺎ ﻧﻤﺎﻳﺶ ﻣﻲدﻫﺪ. ﭘﻨﺠﺮهﻫﺎي واﺳﻂ ﻛﺎرﺑﺮ دﻳﻨﺎﻣﻴﻚ ﺑﻮده و ﻣﻤﻜﻦ اﺳﺖ ﺧﻮد ﺷﺎﻣﻞ ﭘﻨﺠﺮهﻫﺎي ﻓﺮﻋﻲ ﺑﺎﺷﻨﺪ. ﻫﻤﻴﺸﻪ ﺑﺎ‬ ‫اﺟﺮاي زﻳﺮﻣﻨﻴﻮي ‪ Default‬از ﻣﻨﻴﻮي اﺻﻠﻲ ﻣﻲﺗﻮان ﭼﻬﺎر ﭘﻨﺠﺮهي: ,‪Command, Command History‬‬ ‫‪ Workspace, Current Directory‬را ﻛﻪ ﻛﺎرﺑﺮديﺗﺮ ﻫﺴﺘﻨﺪ، ﻇﺎﻫﺮ ﻛﺮد و در دﺳﺘﺮس داﺷﺖ.‬ ‫2- ﻛﺘﺎبﺧﺎﻧﻪي ﻋﻈﻴﻤﻲ از ﺗﻮاﺑﻊ ﻣﻘﺪﻣﺎﺗﻲ و ﭘﻴﺸﺮﻓﺘﻪ.‬ ‫3- زﺑﺎن ﻗﻮي ﻫﻢ ﺑﺮاي ﻓﺮاﻣﻴﻦ ﻛﻮﺗﺎه و ﻳﻚﺑﺎر ﻣﺼﺮف و ﻫﻢ ﺑﺮاي ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﺑﺰرگ و ﻛﺎرﺑﺮدي.‬ ‫4- روشﻫﺎي ﻣﺘﻌﺪد ﺗﺮﺳﻴﻤﺎت دوﺑﻌﺪي و ﺳﻪﺑﻌﺪي.‬ ‫5- واﺳﻂ ﻣﻴﺎنﺑﺮﻧﺎﻣﻪاي )‪ Application Program Interface (API‬ﻛﻪ اﻣﻜﺎن ﻓﺮاﺧﻮاﻧﻲ ﺑﺮﻧﺎﻣﻪﻫﺎي‬ ‫ﻣﺘﻠﺐ از زﺑﺎنﻫﺎي ‪ C‬و ‪ ، Fortran‬ﺗﺒﺪﻳﻞ ﻓﺎﻳﻞﻫﺎي ﻣﺘﻠﺐ )ام- ﻓﺎﻳﻞﻫﺎ( ﺑﻪ زﺑﺎن ‪ ، C‬و اﺳﺘﻔﺎده از ﻣﻮﺗﻮر ﻣﺤﺎﺳﺒﺎﺗﻲ ﻣﺘﻠﺐ‬ ‫در اﻳﻦ زﺑﺎنﻫﺎ را ﻓﺮاﻫﻢ ﻣﻲﻛﻨﺪ. ﺑﺎ اﺳﻔﺎده از ﺗﺒﺪﻳﻼت ﻓﻮق ﻣﻲﺗﻮان ﺑﺮﻧﺎﻣﻪﻫﺎي ﻧﻮﺷﺘﻪ ﺷﺪه در ﻣﺤﻴﻂ ﻣﺘﻠﺐ را ﺑﻪ ﺻﻮرت‬ ‫1‬ ‫اﺟﺮاﺋﻲِ ﻛﻨﺴﻮﻟﻲ )ﻗﺎﺑﻞ اﺟﺮا از ﺧﻂ ﻓﺮﻣﺎن ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ( درآورد. ﻫﻢﭼﻨﻴﻦ اﻣﻜﺎن ﺗﻬﻴﻪ ﻓﺎﻳﻞﻫﺎي اﺟﺮاﺋﻲ ﺑﺎ واﺳﻂ ﮔﺮاﻓﻴﻜﻲ‬ ‫ﺑﺮاي وﻳﻨﺪوز وﺟﻮد دارد.‬ ‫6- دارا ﺑﻮدن راﻫﻨﻤﺎي ﺟﺎﻣﻊ و ﻛﺎﻣﻞِ ﻛﻨﺎرِ دﺳﺖ و وﺟﻮد ﻣﺪارك راﻫﻨﻤﺎي ﻗﺎﺑﻞ ﭼﺎپ ﺑﻪ ﺻﻮرت ‪ PDF‬ﻛﻪ ﺗﻮﺳﻂ ﺷﺮﻛﺖ‬ ‫‪) Mathworks‬ﺳﺎزﻧﺪه ﻣﺘﻠﺐ( اراﺋﻪ ﺷﺪهاﻧﺪ.‬ ‫4.1.1 روش آﻣﻮزش‬ ‫روش ﻛﺎر ﻣﺎ در اﻳﻦ درس ﻳﺎدﮔﻴﺮي- ﺑﺎ- ﻣﺜﺎل ‪ Learn by Examples‬اﺳﺖ. ازاﻳﻦرو اﺟﺮاي ﻣﺘﻠﺐ، ﻫﻢزﻣﺎن ﺑﺎ‬ ‫ﻣﻄﺎﻟﻌﻪ ﻣﺘﻦ اﻛﻴﺪاٌ ﺗﻮﺻﻴﻪ ﻣﻲﺷﻮد. در ﻣﺜﺎلﻫﺎي ﻛﺎرﺑﺮدي ﻧﻮع ﻛﺎرﺑﺮد ﻣﺸﺨﺺ اﺳﺖ.‬ ‫ در ﻛﻠﻴﻪ ﻣﺜﺎلﻫﺎ، دﺳﺘﻮرات ﻓﻮري ﻛﻪ روي ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ، ﺑﻌﺪاز ﻋﻼﻣﺖ >> )ﻧﺸﺎﻧﻪ ﺳﻄﺮ ﻓﺮﻣﺎن‬‫‪ (Command Prompt‬آﻣﺪهاﻧﺪ. در اﻧﺘﻬﺎي ﻫﺮ دﺳﺘﻮر ﻓﻮري ﺑﺎﻳﺴﺘﻲ ﻛﻠﻴﺪ >‪ <Enter‬زده ﺷﻮد.‬ ‫ ﺳﻄﺮﻫﺎﺋﻲ ﻛﻪ در ادﻳﺘﻮر ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﺑﻪ ﺻﻮرت ام- ﻓﺎﻳﻞ ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ ﺑﺪون ﻋﻼﻣﺖ >> آﻣﺪهاﻧﺪ. ﺑﺮاي اﺟﺮاي آنﻫﺎ‬‫ﺑﺎﻳﺪ از داﺧﻞ ادﻳﺘﻮر دﻛﻤﻪ ‪ Run‬ﻳﺎ ﻛﻠﻴﺪ 5‪ F‬را زد.‬ ‫ ﻧﺘﺎﻳﺠﻲ ﻛﻪ روي ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻳﺎ ﭘﻨﺠﺮهﻫﺎي دﻳﮕﺮ ﻇﺎﻫﺮ ﻣﻲﺷﻮﻧﺪ )ﺗﺤﺖ ﻧﺎم ﺧﺮوﺟﻲ( داﺧﻞ ﻛﺎدرِ ﺧﭼﻴﻦ آﻣﺪهاﻧﺪ.‬‫- اﮔﺮ در ﭘﺎﻳﺎن ﺑﻌﻀﻲ از دﺳﺘﻮرﻫﺎ ﻋﻼﻣﺖ ﺳﻤﻲﻛﺎﻟﻦ )ﻧﻘﻄﻪ- وﻳﺮﮔﻮل( ﻗﺮار دﻫﻴﻢ ﻧﺘﻴﺠﻪ اﺟﺮا ﭘﺲ از زدن ﻛﻠﻴﺪ >‪<Enter‬‬ ‫در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻇﺎﻫﺮ ﻧﻤﻲﺷﻮد. اﻳﻦ ﻣﻮﺿﻮع در ﻣﻮرد دﺳﺘﻮراﺗﻲ ﻧﻈﻴﺮ ...,)(‪ disp(), input‬و دﺳﺘﻮرات‬ ‫ﻧﻤﺎﻳﺶ ﮔﺮاف ﺻﺪق ﻧﻤﻲﻛﻨﺪ.‬ ‫ ﻋﻼﻣﺖ % ﺑﺮاي ﺗﻮﺿﻴﺤﺎت ‪ Comments‬ﻣﻲآﻳﺪ و آنﭼﻪ ﺑﻌﺪاز آن ﻧﻮﺷﺘﻪ ﺷﻮد ﺟﺰو دﺳﺘﻮرات ﻣﻨﻈﻮر ﻧﻤﻲﺷﻮد.‬‫ ﺧﺮوﺟﻲﻫﺎي ﮔﺮاﻓﻴﻜﻲ در ﭘﻨﺠﺮه ﮔﺮاﻓﻴﻚ ﻇﺎﻫﺮ ﻣﻲﺷﻮﻧﺪ.‬‫- ﺗﻤﺮﻳﻦﻫﺎي ﭘﺎﻳﺎن درس از ﻧﻜﺎت ﺑﺮﺟﺴﺘﻪ ﻣﺘﻦ ﮔﻞﭼﻴﻦ ﺷﺪه، ﻧﻘﺶ ﺧﻮدآزﻣﺎ را دارﻧﺪ. اﻧﺠﺎم آنﻫﺎ ﺿﺮوري اﺳﺖ.‬ ‫5.1.1 ﻋﻼﺋﻢ و دورﭼﻴﻦ ﻫﺎي اﺳﺘﻔﺎده ﺷﺪه در ﻣﺘﻦ‬ ‫در ﻣﺜﺎلﻫﺎي اﻳﻦ ﻛﺘﺎب ﺑﺮاي ﺗﻔﻜﻴﻚ ﻗﺴﻤﺖﻫﺎ و اﻳﺠﺎد ﺧﻮاﻧﺎﺋﻲ ﺑﻴﺸﺘﺮ:‬ ‫اﻟﻒ- در ﻣﻘﺎﺑﻞ دﺳﺘﻮرات ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻋﻼﻣﺖ >> آﻣﺪه اﺳﺖ.‬ ‫ب- اﮔﺮ ﻋﻼﻣﺖ ﻓﻮق در ﻣﻘﺎﺑﻞ دﺳﺘﻮراﺗﻲ ﻧﺒﺎﺷﺪ ﺑﻪ اﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ دﺳﺘﻮران ﺑﻪ ﺻﻮرت ﺑﺮﻧﺎﻣﻪ در ام- ﻓﺎﻳﻞ ﻧﻮﺷﺘﻪ و‬ ‫اﺟﺮا ﺷﺪهاﻧﺪ.‬ ‫ج- ﻫﻢﭼﻨﻴﻦ از دورﭼﻴﻦﻫﺎي زﻳﺮ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ.‬ ‫ﺧﺮوﺟﻲ: ﻧﺘﻴﺠﻪي ﻋﻤﻠﻴﺎت در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻳﺎ ﺧﺮوﺟﻲِ ﺗﺼﻮﻳﺮي ﻳﻚ ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻜﺎت آﻣﻮزﺷﻲ داﺧﻞ ﻣﺜﺎلﻫﺎ ﻳﺎ ﺟﺰﺋﻴﺎﺗﻲ ﻛﻪ در ﻣﺘﻦ ذﻛﺮ ﻧﺸﺪهاﻧﺪ‬ ‫راﻫﻨﻤﺎ:‬ ‫دﻗﺖ ﻛﻨﻴﺪ: ﻣﻮاردي ﻛﻪ ﻧﻴﺎز ﺑﻪ ﺗﺄﻛﻴﺪ ﺑﻴﺸﺘﺮ دارﻧﺪ و ﺟﻠﺐ ﺗﻮﺟﻪ ﺑﻪ ﻣﻮارد ﻣﻬﻢ‬ ‫2.1 ﻣﺤﻴﻂ ﻛﺎر ﻣﺘﻠﺐ‬ ‫ﭘﺲ از ورود ﺑﻪ ﻣﺤﻴﻂ ﻛﺎر ﻣﺘﻠﺐ، ﻫﺮ زﻣﺎن ﻛﻪ ﮔﺰﻳﻨﻪ ‪) View_Default‬وﻳﺮاﻳﺶ 5.6( ﻳﺎ ‪Window_Default‬‬ ‫)وﻳﺮاﻳﺶ ﺑﺎﻻﺗﺮاز 5.6( را ﻛﻠﻴﻚ ﻛﻨﻴﻢ، ﺳﻪ ﭘﻨﺠﺮه ﺑﺎز ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﺑﻴﺸﺘﺮﻳﻦ ﻣﻮرد اﺳﺘﻔﺎده را دارﻧﺪ:‬ ‫2‬ ‫1- ‪ Command Window‬ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻛﻪ ﻣﺤﻞ اﺟﺮاي ﻛﻠﻴﻪ ﻓﺮﻣﺎنﻫﺎ و ﻣﻘﺪار دﻫﻲﻫﺎي ﻓﻮري ﺑﻪ ﻣﺜﻐﻴﺮﻫﺎ، و ﻧﻤﺎﻳﺶ‬ ‫ﻧﺘﺎﻳﺞ اﺟﺮا اﺳﺖ.‬ ‫2- ‪ Workspace‬ﭘﻨﺠﺮه ﻓﻀﺎي ﻛﺎر ﻛﻪ ﻧﻤﺎﻳﺶ دﻫﻨﺪه ﻛﻠﻴﻪ ﻣﺘﻐﻴﺮﻫﺎي ﺗﻌﺮﻳﻒ ﺷﺪه از داﺧﻞ ﭘﻨﺠﺮه ﻓﺮﻣﺎن )ﻳﺎ ﺑﻪ ﻃﺮق‬ ‫دﻳﮕﺮ( و ﻣﺸﺨﺼﻪﻫﺎي آنﻫﺎ اﺳﺖ.‬ ‫ﻣﻲﺗﻮان ﺑﻪ ﺟﺎي ﭘﻨﺠﺮه ﻓﻀﺎي ﻛﺎر، ﭘﻨﺠﺮه دﻳﺮﻛﺘﻮري ﺟﺎري ‪ Current Durectory‬را ﻓﻌﺎل ﻛﺮد ﻛﻪ ﻛﻠﻴﻪ ﻓﺎﻳﻞﻫﺎي‬ ‫ﻣﻮﺟﻮد در دﻳﺮﻛﺘﻮري ﻣﻮرد رﺟﻮع ﻣﺘﻠﺐ را ﻧﺸﺎن ﻣﻲدﻫﺪ.‬ ‫3- ‪ Command History‬ﭘﻨﺠﺮه ﻳﺎدداﺷﺖ ﻓﺮﻣﺎن ﻛﻪ ﻣﺤﻞ ﻧﮕﻪداري آنﭼﻪ ﺗﺎﻛﻨﻮن در ﭘﻨﺠﺮه ﻓﺮﻣﺎن آﻣﺪه ﻣﻲﺑﺎﺷﺪ.‬ ‫ﭘﻨﺠﺮهﻫﺎي ﻣﺘﻠﺐ را ﻣﻲﺗﻮان ﺑﻪ اﻧﻮاع ﺷﻜﻞﻫﺎي دلﺧﻮاه درآورد، ﻣﺜﻼً ﺑﺎ ﻛﻠﻴﻚ ﭘﻴﻜﺎن ﻣﻮرب در ﮔﻮﺷﻪ راﺖ ﻫﺮ ﭘﻨﺠﺮه ﻣﻲ-‬ ‫ﺗﻮان آن را ﺑﻪ ﺗﻨﻬﺎ ﭘﻨﺠﺮه ﻣﻮرد ﻣﺸﺎﻫﺪه ﺗﺒﺪﻳﻞ ﻛﺮد.ﻟﻴﻜﻦ ﻣﺎ ﻣﻌﻤﻮﻻً در ﺣﺎﻟﺖ ‪ Default‬ﻛﺎر ﻣﻲﻛﻨﻴﻢ.‬ ‫3.1 آﻏﺎز ﻛﺎر ﺑﺎ ﻣﺘﻠﺐ‬ ‫1.3.1 ﻣﺎﺗﺮﻳﺲ ‪Matrix‬‬ ‫ﻣﺘﻠﺐ ﺑﺎ ﻣﺎﺗﺮﻳﺲ ﻳﺎ ﺑﺮدار ﻛﺎر ﻣﻲﻛﻨﺪ.اﻏﻠﺐ ﻣﺘﻐﻴﺮﻫﺎ )و ﻣﻘﺎدﻳﺮ آنﻫﺎ( در ﻣﺘﻠﺐ ﻓﺮم ﻣﺎﺗﺮﻳﺲ دو ﺑﻌﺪي ﺑﺎ ‪ m‬ردﻳﻒ )ﺳﻄﺮ( و‬ ‫‪ n‬ﺳﺘﻮن دارﻧﺪ، ﻛﻪ ﺑﻪ آن ﻣﺎﺗﺮﻳﺲ ‪ m × n‬ﮔﻔﺘﻪ ﻣﻲﺷﻮد )ﻛﻪ در ﻧﺎمﮔﺬاري اﻳﻦ ﻧﺮماﻓﺰار‪MATrix LABoratory‬‬ ‫ﻣﺴﺘﺘﺮ اﺳﺖ(. ﻫﺮ ﻋﻀﻮ ﻣﺎﺗﺮﻳﺲ)‪ (Matrix Member‬را ﻋﻨﺼﺮ ﻣﺎﺗﺮﻳﺲ ﻳﺎ دراﻳﻪ ﻣﻲﮔﻮﻳﻴﻢ. ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺑﺎ ﺗﻌﺪادي‬ ‫ﺳﻄﺮ )ردﻳﻒ(، ﺗﻌﺪادي ﺳﺘﻮن، و ﺗﻌﺪادي ﻋﻀﻮ )ﻣﺎ ﺑﻴﺸﺘﺮ ﺑﺎ اﻋﻀﺎء ﻋﺪدي ﺳﺮوﻛﺎر دارﻳﻢ(، ﺗﺤﺖ ﻳﻚ ﻧﺎم واﺣﺪ ﺷﻨﺎﺧﺘﻪ ﻣﻲ-‬ ‫ﺷﻮد. ﻧﺎم ﻣﺎﺗﺮﻳﺲ و ﻣﻘﺪار آن ﻫﻢزﻣﺎن در ﺧﻂ ﻓﺮﻣﺎن ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ و ﺑﺮﺧﻼف زﺑﺎنﻫﺎي دﻳﮕﺮ ﻧﻴﺎز ﺑﻪ اﻋﻼم ﻗﺒﻠﻲ ﻧﺎم و‬ ‫ﺗﻌﺪاد اﻋﻀﺎء وﺟﻮد ﻧﺪارد. ﻣﻔﻬﻮم ﻣﺎﺗﺮﻳﺲ و ﺑﺮدار ﻛﻪ ﻣﻌﺎدل ﻣﻔﻬﻮم آراﻳﻪ ﻫﺴﺘﻨﺪ، ﻣﺎ را از ﻣﻘﺪار دﻫﻲ ﺑﻪ ﺗﻚ ﺗﻚ ﻋﻨﺎﺻﺮ‬ ‫آراﻳﻪ و ﻧﻤﺎﻳﺶ ﺗﻚ ﺑﻪ ﺗﻚ آنﻫﺎ ﻛﻪ در زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻣﻌﻤﻮﻻٌ از ﻃﺮﻗﻲ ﻣﺎﻧﻨﺪ اﺳﺘﻔﺎده از ﺣﻠﻘﻪﻫﺎي ﺗﻜﺮار اﻧﺠﺎم ﻣﻲ-‬ ‫ﺷﻮد ﺑﻲﻧﻴﺎز ﻣﻲﻛﻨﺪ. ﻫﺮ ﻣﺎﺗﺮﻳﺲ ﻛﺎﻣﻼً دﻳﻨﺎﻣﻴﻚ اﺳﺖ و ﭘﺲاز ﺗﻌﺮﻳﻒ ﻣﻲﺗﻮان ﻣﻘﺪار و ﺗﻌﺪاد ﺳﻄﺮ و ﺳﺘﻮن آنرا ﺗﻐﻴﻴﺮ داد.‬ ‫ﻣﺎﺗﺮﻳﺲ ﺳﻪ ﺑﻌﺪي ﺑﺎ ‪ m‬ردﻳﻒ )ﺳﻄﺮ( و ‪ n‬ﺳﺘﻮن و ‪ p‬ﺻﻔﺤﻪ ﻧﻴﺰ وﺟﻮد دارد ﻛﻪ ﺑﻌﺪاً ﺑﻪ آن اﺷﺎره ﺧﻮاﻫﺪ ﺷﺪ.‬ ‫در ﻣﺘﻠﺐ اﻧﻮاع ﻣﺎﺗﺮﻳﺲ ﻧﻈﻴﺮ ﺑﺮدار، ﻣﺎﺗﺮﻳﺲ ﻋﺪدي ﺑﺎ اﻋﺪاد ﻣﺨﺘﻠﻂ، ﻣﺎﺗﺮﻳﺲ ﻛﺎراﻛﺘﺮي، ﻣﺎﺗﺮﻳﺲ ﻧﻤﺎدﻳﻦ، ﻣﺎﺗﺮﻳﺲ ﺳﺎﺧﺘﺎري،‬ ‫ﻣﺎﺗﺮﻳﺲ ﺳﻠﻮﻟﻲ، . . . ﻧﻴﺰ وﺟﻮد دارﻧﺪ.‬ ‫2.3.1 ﺑﺮدار ‪Vector‬‬ ‫ﺑﺮدار، ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺗﻚ ﺳﻄﺮي )ردﻳﻔﻲ( ﻳﺎ ﺗﻚ ﺳﺘﻮﻧﻲ اﺳﺖ ﻛﻪ داراي ﺗﻌﺪادي ﻋﻀﻮ )ﻣﻌﻤﻮﻻٌ ﻣﻘﺎدﻳﺮ ﻋﺪدي( ﺑﻮده و ﺗﺤﺖ‬ ‫ﻳﻚ ﻧﺎم واﺣﺪ ﺷﻨﺎﺧﺘﻪ ﻣﻲﺷﻮد. ﻣﻌﻤﻮﻻٌ ﻛﻠﻤﻪ ﺑﺮدار ﺑﻪ ﺗﻨﻬﺎﺋﻲ ﺑﺮاي ﺑﺮدار ردﻳﻔﻲ ﺑﻪ ﻛﺎر ﻣﻲرود. در ﻣﺘﻠﺐ ﺑﺮدارﻫﺎ ﻛﺎرﺑﺮد‬ ‫زﻳﺎدي دارﻧﺪ. ﻧﺎم ﺑﺮدار و ﻣﻘﺪار آن ﻫﻢزﻣﺎن در ﺧﻂ ﻓﺮﻣﺎن ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ و ﺑﺮﺧﻼف زﺑﺎنﻫﺎي دﻳﮕﺮ ﻧﻴﺎز ﺑﻪ اﻋﻼم ﻧﻮع )و/ﻳﺎ‬ ‫ﺗﻌﺪاد اﻋﻀﺎء( وﺟﻮد ﻧﺪارد. ﻣﻔﻬﻮم ﺑﺮدار در ﻣﺘﻠﺐ ﻣﺎ را از ﻣﻘﺪار دﻫﻲ ﺑﻪ ﺗﻚ ﺗﻚ ﻋﻨﺎﺻﺮ آراﻳﻪ ﻛﻪ در زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﻳﺴﻲ ﻣﻌﻤﻮل اﺳﺖ ﺑﻲﻧﻴﺎز ﻣﻲﻛﻨﺪ. از ﻃﺮف دﻳﮕﺮ ﺑﺮاي رﺳﻢ ﺗﺮﺳﻴﻤﺎت، ﻳﻚ ﻣﺘﻐﻴﺮ ﺑﺮداري ﻣﻲﺗﻮاﻧﺪ ﺑﻪ ﺗﻨﻬﺎﺋﻲ ﻣﻘﺎدﻳﺮ روي‬ ‫ﻳﻚ ﻣﺤﻮر را ﭘﻮﺷﺶ دﻫﺪ.‬ ‫ﻫﺮ ﺑﺮدار ردﻳﻔﻲ ﻳﻚ ﻣﺎﺗﺮﻳﺲ دو ﺑﻌﺪي ‪) 1×n‬ﺗﻚردﻳﻔﻲ( و ﻫﺮ ﺑﺮدار ﺳﺘﻮﻧﻲ ﻳﻚ ﻣﺎﺗﺮﻳﺲ دو ﺑﻌﺪي 1×‪) m‬ﺗﻚﺳﺘﻮﻧﻲ(‬ ‫اﺳﺖ. ﭘﺲ ﻳﻜﻲ از اﺑﻌﺎد ﻫﺮ ﻧﻮع ﺑﺮدار ﻳﻚ اﺳﺖ. ﻋﺪد ﺗﻜﻲ ﻳﺎ اﺳﻜﺎﻟﺮ ﻳﻚ ﻣﺎﺗﺮﻳﺲ 1×1 اﺳﺖ.‬ ‫3‬ ‫3.3.1 آراﻳﻪ ‪ ، Array‬ﻣﺘﻐﻴﺮ ‪، Variable‬‬ ‫ﻋﻤﻠﻴﺎت آراﻳﻪ اي ‪Array Operations‬‬ ‫ﻫﻤﺎنﮔﻮﻧﻪ ﻛﻪ در ﺳﺎﻳﺮ زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮد، آراﻳﻪ ﻳﻚ ﻧﺎم ﻛﻠﻲ ﺑﺮاي اﻧﻮاع ﻣﺎﺗﺮﻳﺲ، ﺑﺮدار و ﻛﻼٌ‬ ‫ﻣﺠﻤﻮﻋﻪﻫﺎي ﻳﻚ ﺗﺎ ﭼﻨﺪﻳﻦ ﻋﻨﺼﺮي اﺳﺖ. اﻳﻦ ﻋﻨﺎﺻﺮ در ﺗﻌﺪادي ردﻳﻒ، ﺳﺘﻮن، و ﺻﻔﺤﻪ ﻗﺮار ﮔﺮﻓﺘﻪاﻧﺪ. در اﻳﻦ ﻣﺘﻦ ﻛﻠﻤﻪ‬ ‫آراﻳﻪ اﻋﻢ از ﻛﻠﻤﺎت ﻣﺎﺗﺮﻳﺲ، ﺑﺮدار، و ﻣﺘﻐﻴﺮ ﺑﻪ ﻛﺎر ﻣﻲرود، و ﻛﻠﻤﺎت ﻣﺘﻐﻴﺮ و آراﻳﻪ ﻧﻴﺰ ﺑﻪ ﺟﺎي ﻫﻢ ﺑﻪ ﻛﺎر ﻣﻲروﻧﺪ.‬ ‫در ﻣﺘﻠﺐ، ﻣﺘﻐﻴﺮِ ﺗﻚﻣﻘﺪاري )اﺳﻜﺎﻟﺮ( ﻳﻚ آراﻳﻪي ﺗﻚ ﻋﻨﺼﺮي اﺳﺖ. ﻫﻢﭼﻨﻴﻦ ﻋﻤﻠﻴﺎﺗﻲ ﻛﻪ ﺑﺮروي ﺗﻚﺗﻚ ﻋﻨﺎﺻﺮ آراﻳﻪ‬ ‫اﻧﺠﺎم ﺷﻮد، ﻋﻤﻠﻴﺎت آراﻳﻪاي ﻧﺎم دارد ﻛﻪ در ﻣﻘﺎﺑﻞ ﻋﻤﻠﻴﺎت ﻣﺎﺗﺮﻳﺴﻲ ﻗﺮار ﻣﻲﮔﻴﺮد )ﺷﺮح ﺑﻴﺸﺘﺮ ﺑﻌﺪاٌ ﻣﻲآﻳﺪ(.‬ ‫4.3.1 ﺗﻌﺮﻳﻒ و ﻣﻘﺪار دﻫﻲ ﺑﻪ ﻳﻚ ﻣﺘﻐﻴﺮ‬ ‫‪ A‬را ﻛﻪ ﻳﻚ ﻣﺎﺗﺮﻳﺲ 3×2)3 = ‪ (m = 2, n‬ﻋﺪدي اﺳﺖ، در ﺟﺒﺮ اﻳﻦﮔﻮﻧﻪ ﻣﻲﻧﻮﻳﺴﻴﻢ:‬ ‫321‬ ‫654 = ‪A‬‬ ‫987‬ ‫ﻣﺜﺎل: ﺗﻌﺮﻳﻒ ﻣﺎﺗﺮﻳﺲ ﻓﻮق در ﻣﺘﻠﺐ و ﺗﻌﻴﻴﻦ ُﺑﻌﺪ آن‬ ‫]9 8 7 ;6 5 4 ;3 2 1[ = ‪>> A‬‬ ‫1=‪A‬‬ ‫4‬ ‫7‬ ‫= ‪>> n‬‬ ‫=‪n‬‬ ‫32‬ ‫65‬ ‫98‬ ‫)‪ndims(A‬‬ ‫2‬ ‫•‬ ‫•‬ ‫•‬ ‫•‬ ‫ﻣﻌﺮﻓﻲ و ﻣﻘﺪار دﻫﻲ ﻫﻢزﻣﺎن ﻳﻚ ﻣﺘﻐﻴﺮ )در اﻳﻦ ﺟﺎ ﻣﺎﺗﺮﻳﺲ( ﺗﻌﺮﻳﻒ ﻳﺎ ‪ initialization‬ﻧﺎم دارد.‬ ‫ﭘﺲ از وارد ﻛﺮدن )ﻓﺸﺮدن >‪ ( <Enter‬در ﭘﺎﻳﺎن ﺗﻌﺮﻳﻒ، ﻣﺘﻐﻴﺮ و ﻣﻘﺪار آن در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻧﻤﺎﻳﺶ داده ﺷﺪه، و‬ ‫در ﺣﺎﻓﻈﻪ ﺛﺒﺖ ﻣﻲﺷﻮﻧﺪ.‬ ‫اﮔﺮ در ﭘﺎﻳﺎن ﺳﻄﺮِ ﺗﻌﺮﻳﻒ ﻋﻼﻣﺖ ﺳﻤﻲﻛﺎﻟﻦ )ﻧﻘﻄﻪ- وﻳﺮﮔﻮل( ﻗﺮار دﻫﻴﻢ ﻣﺘﻐﻴﺮ و ﻣﻘﺪار آن در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻧﻤﺎﻳﺶ‬ ‫داده ﻧﻤﻲﺷﻮﻧﺪ. اﻣﺎ ﻫﻢ ﭼﻨﺎن در ﺣﺎﻓﻈﻪ ﺛﺒﺖ ﻣﻲﺷﻮﻧﺪ.‬ ‫دﺳﺘﻮر )‪ ndims(var‬ﺑ‪‬ﻌﺪ ﻣﺘﻐﻴﺮ ‪ var‬را ﺗﻌﻴﻴﻦ ﻣﻲ ﻛﻨﺪ، ﻣﺎﺗﺮﻳﺲ ﻓﻮق دو ﺑ‪‬ﻌﺪي اﺳﺖ.‬ ‫5.3.1 ﻣﺸﺎﻫﺪه ﻳﻚ ﻣﺘﻐﻴﺮ از ﻃﺮﻳﻖ ﺧﻂ ﻓﺮﻣﺎن‬ ‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﻣﻘﺪار ﻫﺮ ﻣﺘﻐﻴﺮ در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻛﺎﻓﻲ اﺳﺖ ﻧﺎم آنرا وارد ﻛﻨﻴﻢ.‬ ‫اﮔﺮ در ﭘﺎﻳﺎن ﻳﻚ ﺳﻄﺮ ﻋﻼﻣﺖ ﺳﻤﻲﻛﺎﻟﻦ )ﻧﻘﻄﻪ- وﻳﺮﮔﻮل( ﻗﺮار دﻫﻴﻢ ﻧﺘﻴﺠﻪ اﺟﺮا در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻇﺎﻫﺮ ﻧﻤﻲﺷﻮد. اﻣﺎ ﻣﻘﺪار‬ در ﺣﺎﻓﻈﻪ ﻣﻲﻣﺎﻧﺪ.‬ ‫ﻣﺜﺎل 1: وارد ﻛﺮدن ﻧﺎم ﻣﺎﺗﺮﻳﺴﻲ ﻛﻪ ﻗﺒﻼً ﺗﻌﺮﻳﻒ ﺷﺪه‬ ‫‪>> A‬‬ ‫1 =‪A‬‬ ‫4‬ ‫2‬ ‫5‬ ‫3‬ ‫6‬ ‫ﻣﺜﺎل 2: ﺗﻌﺮﻳﻒ ﺑﺮدار ﺑﺎ ﻧﻘﻄﻪوﻳﺮﮔﻮل‬ ‫;]6.5 4.3 2.01[ = ‪>> M‬‬ ‫اﻳﻦ ﻣﺘﻐﻴﺮ در ﺣﺎﻓﻈﻪ ﻧﮕﻪداري ﻣﻲﺷﻮد، اﻣﺎ در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻧﻤﺎﻳﺶ داده ﻧﻤﻲﺷﻮد.‬ ‫4‬ ‫6.3.1 ﻣﺸﺎﻫﺪه ﻣﺸﺨﺼﺎت ﻳﻚ ﻣﺘﻐﻴﺮ در ﻓﻀﺎي ﻛﺎر‬ ‫ﻣﺸﺨﺼﻪﻫﺎي ﻧﺎم، ﻧﻮع )ﻋﺪدي، ﻣﻨﻄﻘﻲ، ﻧﻤﺎدﻳﻦ، رﺷﺘﻪاي، ...(، اﻧﺪازه )ﺗﻌﺪاد ردﻳﻒ و ﺳﺘﻮن(، و ﺗﻌﺪاد ﺑﺎﻳﺖ‪ ‬ﻣﺘﻐﻴﺮ)آراﻳﻪ(ﻫﺎي‬ ‫ﺗﻌﺮﻳﻒ ﺷﺪه، در ﭘﻨﺠﺮه ﻓﻀﺎي ﻛﺎر )ﻓﻀﺎي ﺣﺎﻓﻈﻪ( ‪ Workspace‬ﻧﻤﺎﻳﺶ داده ﻣﻲﺷﻮﻧﺪ.‬ ‫ﻣﺜﺎل:‬ ‫ﻣﺸﺨﺼﺎت ﻣﺘﻐﻴﺮ ﺗﻌﺮﻳﻒ ﺷﺪه در ﻣﺜﺎل ﻓﻮق روي ﭘﻨﺠﺮه ﻓﻀﺎي ﻛﺎر ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪه اﺳﺖ.‬ ‫7.3.1 ﻧﻮﺷﺘﻦ ﺗﻮﺿﻴﺢ ﺑﺮاي ﻳﻚ دﺳﺘﻮر‬ ‫ﺗﻮﺿﻴﺢ ﻳﺎ راﻫﻨﻤﺎ ﻣﻘﺎﺑﻞ ﻋﻼﻣﺖ درﺻﺪ % ﻛﻪ ﺑﻌﺪ از دﺳﺘﻮر ﻣﻲ آﻳﺪ، ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮد.‬ ‫ﻣﺜﺎل: ﻧﻮﺷﺘﻦ ﺗﻮﺿﻴﺢ‬ ‫‪>> M = [10.2 3.4 5.6]; % Written in the memory, shown in the‬‬ ‫‪% workspace, but not shown n the command‬‬ ‫‪% window‬‬ ‫8.3.1 ﺑﺮدار- ﻫﻨﺪﺳﻲ‬ ‫ﺑﺮدارﻫﺎي ﻫﻨﺪﺳﻲ ﻳﺎ ﻓﻴﺰﻳﻜﻲ، درون ﻣﺨﺘﺼﺎت ﻗﻄﺒﻲ )ﻣﺪور( داراي دو ﻣﺨﺘﺼﻪ ﺑﺰرﮔﻲ‪ ، Magnitude‬و زاوﻳﻪ ﻫﺴﺘﻨﺪ، و‬ ‫درون ﻣﺨﺘﺼﺎت ﻗﺎﺋﻢ داراي دو ﻣﺨﺘﺼﻪ ﻃﻮل ‪ X‬و ﻋﺮض ‪ Y‬ﻣﻲﺑﺎﺷﻨﺪ. اﻳﻦ ﺑﺮدارﻫﺎ را دراﻳﻦ ﻣﺘﻦ ﺑﺮدار- ﻫﻨﺪﺳﻲ ﻧﺎﻣﻴﺪهاﻳﻢ.‬ ‫اﻳﻦ ﻧﺎمﮔﺬاري ﺑﺮاي اﻳﺠﺎد ﺗﻤﺎﻳﺰ ﻣﺎﺑﻴﻦ ﻣﻔﻬﻮم ﺑﺮدار در ﻣﺘﻠﺐ ﺑﺎ ﺑﺮدارِ ﻓﻴﺰﻳﻜﻲ ﻳﺎ ﻫﻨﺪﺳﻲ اﺳﺖ. ﮔﺎﻫﻲ از اوﻗﺎت ﻧﻴﺰ ﺑﺎ وام از‬ ‫ﻣﻌﺎدل اﻟﻜﺘﺮﻳﻜﻲ آن را ﻓﺎزور ﻧﺎم دادهاﻳﻢ.‬ ‫9.3.1 ﺑﺮدار ﻣﻨﻄﻘﻲ‬ ‫ﻋﻨﺎﺻﺮ ﺑﺮدار ﻣﻨﻄﻘﻲ، ﻣﺠﻤﻮﻋﻪاي از ﺻﻔﺮ و ﻳﻚﻫﺎي ﻣﻨﻄﻘﻲ ﻫﺴﺘﻨﺪ. ﺻﻔﺮ و ﻳﻚ ﻣﻨﻄﻘﻲ از ﻟﺤﺎظ ﻧﻮع ﺑﺎ ﺻﻔﺮ و ﻳﻚ ﻋﺪدي‬ ‫ﻓﺮق دارﻧﺪ. اﻳﺠﺎد ﺑﺮدار ﻣﻨﻄﻘﻲ ﺑﺎ دﺳﺘﻮر )(‪ logical‬اﻧﺠﺎم ﻣﻲ ﺷﻮد.‬ ‫اﮔﺮ ﺑﺮدار ﻣﻨﻄﻘﻲ در ﺑﺮدار ﻋﺪدي ﺿﺮب ﺷﻮد ﻋﻨﺎﺻﺮ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻳﻚ ﺑﺮدار ﻋﺪدي ﺑﺪون ﺗﻐﻴﻴﺮ ﻣﺎﻧﺪه، و ﻋﻨﺎﺻﺮ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺻﻔﺮ‬ ‫ﺑﺮدار ﻋﺪدي ﺻﻔﺮ ﻣﻲ ﺷﻮﻧﺪ.‬ ‫اﮔﺮ ﺑﺮدار ﻣﻨﻄﻘﻲ اﻧﺪﻳﺲ ﺑﺮدار ﻋﺪدي ﻗﺮار ﮔﻴﺮد ﻋﻨﺎﺻﺮ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻳﻚ ﺑﺮدار ﻋﺪدي ﺑﺪون ﺗﻐﻴﻴﺮ ﻣﺎﻧﺪه، و ﻋﻨﺎﺻﺮ ﻣﺘﻨﺎﻇﺮ ﺑﺎ‬ ‫ﺻﻔﺮ ﺑﺮدار ﻋﺪدي ﺣﺬف ﻣﻲ ﺷﻮﻧﺪ.‬ ‫>>‬ ‫‪rL‬‬ ‫>>‬ ‫>>‬ ‫1‪r‬‬ ‫>>‬ ‫2‪r‬‬ ‫‪rL = logical([1 1 1 0 0]) % Creating a logical vector‬‬ ‫1=‬ ‫1‬ ‫1‬ ‫0‬ ‫0‬ ‫‪r = [1 2 3 4 5]; % Creating a numeric vector‬‬ ‫‪r1 = r .* rL % Product of numeric and logical vectors‬‬ ‫1=‬ ‫2‬ ‫3‬ ‫0‬ ‫0‬ ‫‪r2 = r(rL) % Logical indexing of a numeric vector‬‬ ‫1=‬ ‫2‬ ‫3‬ ‫01.3.1 آراﻳﻪ ﺳﻠﻮﻟﻲ ‪Cell Array‬‬ ‫آراﻳﻪاي ﻛﻪ ﻫﺮ دراﻳﻪ آن ﻳﻚ آراﻳﻪ دﻳﮕﺮ ﺑﺎﺷﺪ، آراﻳﻪ ﺳﻠﻮﻟﻲ ‪ Cell Array‬ﻧﺎم دارد. ﺑﺮاي اﻃﻼع ﺑﻴﺸﺘﺮ ﺑﻪ ﻣﺪارك ﻣﺘﻠﺐ‬ ‫ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ.‬ ‫ﻣﺜﺎل: ﺗﻌﺮﻳﻒ ﻳﻚ آراﻳﻪ ﺳﻠﻮﻟﻲ داراي ﺳﻪ ﻧﻮع آراﻳﻪ در ﻫﺮ ﺳﻠﻮل‬ ‫}]4 3;2 1[ '‪C = {logical([1 0 1 1 0]) 'Array‬‬ ‫]‪C = [1x5 logical‬‬ ‫'‪'Array‬‬ ‫]‪[2x2 double‬‬ ‫5‬ ‫11.3.1 ﺗﻮاﺑﻊ اﻧﺪازه ﮔﻴﺮ‬ ‫ﺗﻮاﺑﻊ )(‪ ndims(), size(), length‬و ﻧﻈﺎﺋﺮﺷﺎن را ﻛﻪ در ﺳﻨﺠﺶ ﻛﻤﻴﺖ ﻣﺎﺗﺮﻳﺲﻫﺎ ﺑﻪ ﻛﺎر ﻣﻲروﻧﺪ، در‬ ‫اﻳﻦ ﻣﺘﻦ ﺗﻮاﺑﻊ اﻧﺪازهﮔﻴﺮ ﻧﺎﻣﻴﺪهاﻳﻢ.‬ ‫ﺗﺎﺑﻊ )(‪ size‬ﺗﻌﺪاد ﺳﻄﺮ و ﺳﺘﻮن )و ﺗﻌﺪاد ﺻﻔﺤﻪ در ﻣﻮرد ﻣﺎﺗﺮﻳﺴﻬﺎي ﺳﻪﺑ‪‬ﻌﺪي( را ﻣﻲدﻫﺪ. ﺗﺎﺑﻊ )(‪length‬‬ ‫ﻣﻌﺎدل))(‪ max(size‬اﺳﺖ ﻛﻪ در ﻣﻮرد ﺑﺮدارﻫﺎ ﺗﻌﺪاد ﻋﻨﺎﺻﺮ را ﻛﻪ ﻫﻤﺎن ﺗﻌﺪاد ﺳﺘﻮنﻫﺎ اﺳﺖ ﻣﻲدﻫﺪ. ﺗﺎﺑﻊ‬ ‫)(‪ ndims‬ﻣﻌﺎدل ))(‪ length(size‬اﺳﺖ ﻛﻪ ﺑﺮاي اﺳﻜﺎﻟﺮ و ﺑﺮدار و ﻣﺎﺗﺮﻳﺲ دو ﺑﻌﺪي داراي ﻣﻘﺪار 2 و ﺑﺮاي‬ ‫ﻣﺎﺗﺮﻳﺲﻫﺎي ﺳﻪ ﺑﻌﺪي داراي ﻣﻘﺪار 3 اﺳﺖ.‬ ‫ﺑﺎﻳﺪ ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ اﻧﺪازه ‪ size‬و ﻧﻮع ‪ type‬ﻫﺮ آراﻳﻪ در ﭘﻨﺠﺮه ‪ Workspace‬ﻧﺸﺎن داده ﻣﻲﺷﻮد.‬ ‫ﻣﺜﺎل: ﺗﻌﻴﻴﻦ اﻧﺪازه، ﻃﻮل و ﺑ‪‬ﻌﺪ ﻳﻚ ﺑﺮدار ردﻳﻔﻲ 4 ﻋﻀﻮي‬ ‫;]6.7 61 5- 2[ = ‪>> rv‬‬ ‫)‪>> size(rv‬‬ ‫1 = ‪ans‬‬ ‫4‬ ‫)‪>> L = length(rv‬‬ ‫4=‪L‬‬ ‫)‪>> m = ndims(rv‬‬ ‫2=‪m‬‬ ‫21.3.1 ﻣﺘﻐﻴﺮ داﺧﻠﻲ ‪ans‬‬ ‫اﮔﺮ ﺑﻪ آﺧﺮﻳﻦ ﻣﻘﺪار ﺣﺴﺎب ﺷﺪه ﻧﺎﻣﻲ ﻧﺪاده ﺑﺎﺷﻴﻢ، در ﻣﺘﻐﻴﺮ داﺧﻠﻲ ‪ ans‬ﻗﺮار ﻣﻲﮔﻴﺮد..‬ ‫ﻣﺜﺎل 1: ﺑﺮدار ﺑﺪون ﻧﺎم‬ ‫]65 4.3 2-[ >>‬ ‫0000.2- = ‪ans‬‬ ‫0004.3‬ ‫0000.65‬ ‫ﻣﺜﺎل 2: دراﻳﻪ واﻗﻊ در ردﻳﻒ2 ﺳﺘﻮن3 ﻣﺎﺗﺮﻳﺲ ‪A‬‬ ‫;]6 5 4 ;3 2 1[ = ‪>> A‬‬ ‫)3,2(‪>> A‬‬ ‫6 = ‪ans‬‬ ‫31.3.1 ﻧﻮع ﻣﺘﻐﻴﺮ ﻋﺪدي‬ ‫ﻫﻤﺎنﻃﻮر ﻛﻪ ﮔﻔﺘﻪ ﺷﺪ در ﻣﺘﻠﺐ ﻧﻴﺎزي ﺑﻪ اﻋﻼم ﻳﺎ ﻣﻌﺮﻓﻲِ ‪ declaration‬ﻣﺘﻐﻴﺮﻫﺎ ﻗﺒﻞ از ﻛﺎرﺑﺮد آنﻫﺎ ﻧﻴﺴﺖ )ﺑﺮ‬ ‫ﺧﻼف ++‪ ،(C‬ﺑﻠﻜﻪ ﺑﻪ ﻫﻨﮕﺎم ﻣﻘﺪار دﻫﻲ ﺑﻪ ﻳﻚ ﻣﺘﻐﻴﺮ، ﻧﻮع آن ﺧﻮدﺑﻪﺧﻮد ﺗﻌﻴﻴﻦ ﻣﻲﺷﻮد. ﭘﻴﺶ ﻓﺮض ﻧﻮع آراﻳﻪ ﻫﺎي‬ ‫ﻋﺪدي دﻗﺖ ﻣﻀﺎﻋﻒ ﻳﺎ ‪ double‬اﺳﺖ. ﻛﻪ ﺑﺎزه ي ﮔﺴﺘﺮده و دﻗﺖ ﺑﻌﺪاز ﻣﻤﻴﺰ ﺑﺎﻻ دارد. ﺗﻔﺼﻴﻞ ﺑﻴﺸﺘﺮ ﺑﻌﺪاً ﻣﻲ آﻳﺪ.‬ ‫4.1 ﻧﻮﺷﺘﻦ دﺳﺘﻮرات و ﻣﺸﺎﻫﺪه ﻧﺘﺎﻳﺞ‬ ‫1.4.1 ﺷﻜﺴﺘﻦ ﻳﻚ دﺳﺘﻮر در ﭼﻨﺪ ﺳﻄﺮ‬ ‫ﻣﺘﻐﻴﺮ ‪ A‬ﻣﺜﺎل ﻗﺒﻞ را ﻣﻲﺗﻮان ﺑﺎ ﺷﻜﺴﺘﻦ ﺳﻄﺮ ﺑﻪ اﻳﻦ ﺻﻮرت:‬ ‫;3 2 1[ = ‪>> A‬‬ ‫]6 5 4‬ ‫1 =‪A‬‬ ‫2‬ ‫4‬ ‫5‬ ‫3‬ ‫6‬ ‫ﻳﺎ ﺑﻪ اﻳﻦ ﺻﻮرت ﻣﻘﺪار دﻫﻲ ﻛﺮد:‬ ‫6‬ ‫3 2 1[ = ‪>> A‬‬ ‫]6 5 4‬ ‫1 =‪A‬‬ ‫2‬ ‫4‬ ‫5‬ ‫3‬ ‫6‬ ‫ﻧﻮﺷﺘ ﻛﻠﻴﻪ ﻓﺮﻣﺎنﻫﺎ و ﻣﺘﻐﻴﺮﻫﺎ را ﻣﻲ ﺗﻮان ﺑﺎ ﮔﺬاﺷﺘﻦ ...)ﺳﻪ ﻧﻘﻄﻪ( در ﭘﺎﻳﺎن ﺳﻄﺮ، در ﺳﻄﺮ ﺑﻌﺪ اداﻣﻪ داد. اﻣﺎ دﻗﺖ ﻛﻨﻴﺪ‬ ‫ﻛﻪ ﮔﺬاﺷﺘﻦ ﺳﻪ ﻧﻘﻄﻪ دﻧﺒﺎلﻫﻢ ﻗﺮار ﻣﻲدﻫﺪ، ﻟﺬا ‪ B‬ﻣﺜﺎل زﻳﺮ ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺗﻚﺳﻄﺮي )ﺑﺮدار ردﻳﻔﻲ( ﺧﻮاﻫﺪ ﺑﻮد و ﻧﻪ‬ ‫ﻣﺎﺗﺮﻳﺲ 3×2 .‬ ‫ﻣﺜﺎل:‬ ‫... 03 02 01[ = ‪>> B‬‬ ‫]06 05 04‬ ‫01 = ‪B‬‬ ‫02‬ ‫03‬ ‫04‬ ‫05‬ ‫06‬ ‫2.4.1 ﻧﻮﺷﺘﻦ ﭼﻨﺪ دﺳﺘﻮر در ﻳﻚ ﺳﻄﺮ‬ ‫اﮔﺮ ﺑﻌﺪاز ﻫﺮ دﺳﺘﻮر ﻛﺎﻣﺎ ﺑﮕﺬارﻳﻢ ﻣﻲﺗﻮاﻧﻴﻢ دﺳﺘﻮر ﺑﻌﺪي را در اداﻣﻪ ﺑﻨﻮﻳﺴﻴﻢ، اﻣﺎ ﻧﺘﻴﺠﻪ اﺟﺮا در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻧﻤﺎﻳﺶ داده‬ ‫ﺧﻮاﻫﺪ ﺷﺪ. آوردن ﺳﻤﻲﻛﺎﻟﻦ ﺑﻪ ﺟﺎي ﻛﺎﻣﺎ )وﻳﺮﮔﻮل( ﺑﺎﻋﺚ ﻣﻲﺷﻮد ﻧﺘﻴﺠﻪ اﺟﺮا ﻧﺸﺎن داده ﻧﺸﻮد.‬ ‫ﻣﺜﺎل:‬ ‫‪>> x = 3, y = 34; z = y ^ x‬‬ ‫3=‪x‬‬ ‫40393 = ‪z‬‬ ‫3.4.1 ﺗﻔﺎوت‪ ‬ﺣﺮوف ﺑﺰرگ و ﻛﻮﭼﻚ‬ ‫ﻣﺘﻠﺐ ﻣﺎﺑﻴﻦ ﺣﺮوف ﺑﺰرگ و ﻛﻮﭼﻚ اﻧﮕﻠﻴﺴﻲ ﻓﺮق ﻣﻲﮔﺬارد )‪ Case Sensitive‬اﺳﺖ(.‬ ‫ﻣﺜﺎل:‬ ‫;3 = ‪>> New‬‬ ‫‪>> new‬‬ ‫.'‪??? Undefined function or variable 'new‬‬ ‫4.4.1 ﻗﻄﻊ اﺟﺮا‬ ‫ﻫﺮﮔﺎه اﺟﺮاي دﺳﺘﻮرات در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻃﻮﻻﻧﻲ ﺷﺪ، در ﺻﻮرت ﺗﻤﺎﻳﻞ ﺑﺮاي ﻗﻄﻊ اﺟﺮا >‪ <Ctrl+C‬را ﺑﺰﻧﻴﺪ.‬ ‫5.4.1 دﺳﺘﻮر ‪more‬‬ ‫اﻳﻦ دﺳﺘﻮر ﺧﺮوﺟﻲﻫﺎي ﻃﻮﻻﻧﻲ را ﺻﻔﺤﻪ ﺑﻪ ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ ﻣﻴﺪﻫﺪ. اﮔﺮ زﻣﺎن ﻧﻤﺎﻳﺶ ﺧﺮوﺟﻲ ﻃﻮﻻﻧﻲ ﺷﺪ، ﺑﺮاي ﻗﻄﻊ‬ ‫ﻧﻤﺎﻳﺶ و ﺑﺮﮔﺸﺖ ﺑﻪ ﺧﻂ ﻓﺮﻣﺎن ‪ Ctrl+C‬را ﺑﺰﻧﻴﺪ.‬ ‫ﻣﺜﺎل:‬ ‫)1,00001(‪>> more on, rand‬‬ ‫‪>> more off‬‬ ‫6.4.1 اﺟﺮا و ﺿﺒﻂ دﺳﺘﻮرات ﻗﺒﻠﻲ‬ ‫ﺗﻜﺮار دﺳﺘﻮرات ﻗﺒﻠﻲ ﻛﻪ در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻧﻮﺷﺘﻪ ﺷﺪهاﻧﺪ، ﺑﺎ ﻛﻠﻴﺪﻫﺎي ↑ و ↓ اﻧﺠﺎم ﻣﻴﺸﻮد. ﺑﺮاي اﺟﺮاي ﻳﻚ ﺳﻄﺮ ﻛﻠﻴﺪ‬ ‫>‪ <Enter‬و ﺑﺮاي ﺣﺬف ﻳﻚ ﺳﻄﺮ ﺗﻜﺮاري ﻧﺎدلﺧﻮاه ﻛﻠﻴﺪ >‪ <Esc‬ﻳﺎ در اﺑﺘﺪاي ﺳﻄﺮ ﻛﻠﻴﺪ >‪ <Ctrl+K‬را ﺑﺰﻧﻴﺪ.‬ ‫دﺳﺘﻮرات وارد ﺷﺪه در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﺧﻮد ﺑﻪ ﺧﻮد ﻧﮕﻪداري ﻣﻲﺷﻮﻧﺪ و ﺑﺮاي اﺟﺮاﻫﺎي ﺑﻌﺪي ﻣﺘﻠﺐ ﻫﻢ ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﻫﺴﺘﻨﺪ.‬ ‫ﭘﻨﺠﺮه ‪ Command History‬ﻫﻢ ﻓﺮﻣﺎنﻫﺎي ﻗﺒﻠﻲ را ﻧﮕﻪ ﻣﻲدارد.‬ ‫اﮔﺮ ﺳﻄﺮ ﻓﺮﻣﺎﻧﻲ در ﻫﺮﻳﻚ از ﭘﻨﺠﺮهﻫﺎي ﻓﺮﻣﺎن ﻳﺎ ﺗﺎرﻳﺨﭽﻪ ﻓﺮﻣﺎن ﻳﺎ ادﻳﺘﻮر ام- ﻓﺎﻳﻞ ﻣﺎرك ﺷﻮد، ﺑﺎ راﺳﺖ ﻛﻠﻴﻚ و اﻧﺘﺨﺎب‬ ‫‪ Evaluate Selection‬آن دﺳﺘﻮر اﺟﺮا ﺧﻮاﻫﺪ ﺷﺪ.‬ ‫7‬ ‫ﻣﻲﺗﻮان ﺑﺎ اﺟﺮاي ‪ notebook‬از درون ﻣﺘﻠﺐ و ﺗﻤﻬﻴﺪات ﻣﺮﺑﻮط ﺑﻪ آن دﺳﺘﻮرات ﻣﺘﻠﺐ را ﺑﻪ داﺧﻞ ‪Microsoft‬‬ ‫‪ Word‬ﺑﺮد.‬ ‫دﺳﺘﻮر زﻳﺮ ﺳﻄﻮر ‪ command window‬را در ﻓﺎﻳﻞ ‪ filename‬ﻧﮕﺎﻫﺪاري ﻣﻲﻛﻨﺪ:‬ ‫‪>> diary filename‬‬ ‫ﻓﺮﻣﺎن زﻳﺮ‬ ‫‪>> diary off‬‬ ‫ﺿﺒﻂ‪ ‬ﻨﺠﺮه ﻓﺮﻣﺎن را ﻣﺘﻮﻗﻒ ﻣﻲﻛﻨﺪ. اﺟﺮاي ﻣﺠﺪد ‪ diary‬ﺳﻄﻮر را ﺑﻪ اﻧﺘﻬﺎي ﻓﺎﻳﻞ ﺿﺒﻂ ﺷﺪه ﻗﺒﻠﻲ اﺿﺎﻓﻪ ﻣﻲﻛﻨﺪ.‬ ‫7.4.1 اﺟﺮاي دﺳﺘﻮرات ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ‬ ‫دﺳﺘﻮرات ﺳﻴﺴﺘﻤﻲ ﻧﻈﻴﺮ ‪ dir, time, date‬را ﺑﺎ ﮔﺬاﺷﺘﻦ ﻋﻼﻣﺖ ! در ﻣﻘﺎﺑﻞ آنﻫﺎ از داﺧﻞ ﭘﻨﺠﺮه ﻓﺮﻣﺎن اﺟﺮا‬ ‫ﻛﻨﻴﺪ.‬ ‫8.4.1 دﺳﺘﻮر )(‪disp‬‬ ‫)‪ disp(ar‬آراﻳﻪ ‪ ar‬ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﺪ. در ﻣﺜﺎل زﻳﺮ ﻳﻚ آراﻳﻪ ﻛﺎراﻛﺘﺮي ﻳﺎ رﺷﺘﻪ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.‬ ‫ﻣﺜﺎل:‬ ‫;'‪>> mv = 'MATLAB Course‬‬ ‫;)‪>> disp(mv‬‬ ‫‪MATLAB Course‬‬ ‫9.4.1 ﺗﺎﺑﻊ )(‪eval‬‬ ‫اﮔﺮ ﻳﻚ ﻋﺒﺎرت ﻗﺎﻧﻮﻧﻲِ ﻣﺘﻠﺐ را ﺑﻪ ﺻﻮرت رﺷﺘﻪ در داﺧﻞ دو آﭘﻮﺳﺘﺮوف ﺑﻨﻮﻳﺴﻴﻢ ‪ text macro‬ﻧﺎم ﻣﻲﮔﻴﺮد.‬ ‫ﺗﺎﺑﻊ )(‪ eval‬ﺻﺤﺖ و ﺳ‪‬ﻘﻢ ﭼﻨﻴﻦ ﻋﺒﺎرﺗﻲ را ﺗﻌﻴﻴﻦ ﻣﻲﻛﻨﺪ. در ﺻﻮرت ﺻﺤﺖ، ﺗﺎﺑﻊ )(‪ eval‬ﻣﻘﺪارِ ﻋﺒﺎرت ﻣﻮرد‬ ‫ﺗﺴﺖ را ﺑﺮﻣﻲﮔﺮداﻧﺪ، وﮔﺮﻧﻪ ﭘﻴﻐﺎم ﺧﻄﺎي ﻣﺮﺑﻮﻃﻪ را ﭼﺎپ ﻣﻲﻛﻨﺪ. ﻣﻲﺗﻮان آرﮔﻮﻣﺎن دوﻣﻲ ﺑﺮاي)(‪ eval‬ﻗﺮار داد ﻛﻪ ﺑﻪ‬ ‫ﺟﺎي ﭘﻴﻐﺎم ﺧﻄﺎ ﭼﺎپ ﺷﻮد. ﻫﺮ دو آرﮔﻮﻣﺎن )(‪ eval‬ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت رﺷﺘﻪ ﺑﺎﺷﻨﺪ.‬ ‫ﻣﺜﺎل 1: ﻋﺒﺎرت ﺻﺤﻴﺢ‬ ‫;6/‪>> x = pi‬‬ ‫;'3^)‪>> sx = 'sin(x)^3 + cos(x‬‬ ‫)‪>> eval(sx‬‬ ‫5477.0 = ‪ans‬‬ ‫ﻣﺜﺎل 2: ﻋﺒﺎرت ﻧﺎﺻﺤﻴﺢ ﺑﺎ ﭘﻴﻐﺎم ﻣﺘﻠﺐ‬ ‫; ')‪>> sx1 = 'sin^2(x) + cos^2(x‬‬ ‫)1‪>> eval(sx‬‬ ‫.‪Error: Missing operator, comma, or semicolon‬‬ ‫ﻣﺜﺎل 3: ﻋﺒﺎرت ﻧﺎﺻﺤﻴﺢ ﺑﺎ ﭘﻴﻐﺎم ﻛﺎرﺑﺮ‬ ‫)')''‪>> eval(sx1,'disp(''wrong‬‬ ‫‪wrong‬‬ ‫ﺳﺆال: در ﻣﺜﺎل ﻓﻮق اﮔﺮ ﻣﻘﺪار ‪ x‬را از ‪ workspace‬ﭘﺎك و ‪ eval‬را اﺟﺮا ﻛﻨﻴﻢ ﻧﺘﻴﺠﻪ ﭼﻴﺴﺖ؟ اﻣﺘﺤﺎن ﻛﻨﻴﺪ.‬ ‫01.4.1 دﺳﺘﻮر ‪lasterr‬‬ ‫دﺳﺘﻮر ‪ lasterr‬آﺧﺮﻳﻦ ﭘﻴﻐﺎم ﺧﻄﺎي داﺧﻠﻲ را ﻧﺸﺎن ﻣﻲدﻫﺪ.‬ ‫ﻣﺜﺎل:‬ ‫‪>> lasterr‬‬ ‫.‪ans = Error: Missing operator, comma, or semicolon‬‬ ‫8‬ ‫11.4.1 ﺑﻠﻮك ‪try...catch‬‬ ‫ﺑﻠﻮك ‪ try...catch...end‬ﺑﺮاي ﺑﻪ دام اﻧﺪاﺧﺘﻦ ﺧﻄﺎ ‪ error trapping‬ﺑﻪ ﻛﺎر ﻣﻲرود.‬ ‫در زﻳﺮِ ‪ try‬دﺳﺘﻮراﺗﻲ ﻣﻲآﻳﻨﺪ ﻛﻪ در ﺻﻮرت ﻋﺪم وﻗﻮع ﺧﻄﺎ ﺑﺎﻳﺪ اﺟﺮا ﺷﻮﻧﺪ، و در زﻳﺮِ ‪ catch‬دﺳﺘﻮراﺗﻲ ﻣﻲآﻳﻨﺪ ﻛﻪ‬ ‫در ﺻﻮرت وﻗﻮع ﺧﻄﺎ ﺑﺎﻳﺪ اﺟﺮا ﺷﻮﻧﺪ. ﺗﻔﺼﻴﻞ ﺑﻴﺸﺘﺮ ﺑﻌﺪاً ﻣﻲ آﻳﺪ.‬ ‫21.4.1 ﺗﻔﺎوت دﺳﺘﻮرات ﭘﻨﺠﺮه ﻓﺮﻣﺎن و ﺑﺮﻧﺎﻣﻪ‬ ‫دﺳﺘﻮرات ﻣﺘﻠﺐ ﺑﻪ ﺻﻮرت اﺟﺮاي ﻓﻮري ‪ Immediate‬در ﭘﻨﺠﺮه ﻓﺮﻣﺎن، ﻳﺎ ﺑﻪ ﺻﻮرت ﺑﺮﻧﺎﻣﻪ در ﭘﻨﺠﺮه ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‬ ‫ﻣﻲآﻳﻨﺪ. ﻋﻼﻣﺖ >> ﻧﺸﺎﻧﻪ ﻓﺮﻣﺎن‪ Command Prompt‬اﺳﺖ. ﻫﺮ دﺳﺘﻮر در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﺑﺎ ﻓﺸﺮدن ﻛﻠﻴﺪ >‪<Enter‬‬ ‫اﻧﺠﺎم ﻣﻲﺷﻮد. در ﭘﻨﺠﺮه ﻓﺮﻣﺎن دﺳﺘﻮرات ﺗﻚ ﺳﻄﺮي و ﭼﻨﺪ ﺳﻄﺮي ﻓﻮراً اﺟﺮا ﻣﻲﺷﻮﻧﺪ، ﺜﻼً دﺳﺘﻮرات ﺣﻠﻘﻪ، ﻳﺎ ﺷﺮط از‬ ‫درون ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻗﺎﺑﻞ اﺟﺮا ﻫﺴﺘﻨﺪ.‬ ‫ﺑﺮﻧﺎﻣﻪﻫﺎ در ﻓﺎﻳﻞﻫﺎﺋﻲ ﺑﻪ ﻧﺎم ‪ M-File‬ﺿﺒﻂ ﻣﻲﺷﻮﻧﺪ. ﺑﺮﻧﺎﻣﻪﻫﺎﺋﻲ ﻛﻪ در آنﻫﺎ ﺗﻌﺪادي ﻓﺮﻣﺎن ﻳﻚﺟﺎ اﺟﺮا ﻣﻲﺷﻮﻧﺪ‬ ‫‪ Script M-File‬و ﺑﺮﻧﺎﻣﻪﻫﺎﺋﻲ ﻛﻪ ﻳﻚ ﺗﺎﺑﻊ را ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﻨﺪ ‪ Function M-File‬ﻧﺎم دارﻧﺪ.‬ ‫ﻗﻮاﻋﺪ ﻧﻮﺷﺘﺎري و اﺟﺮاﺋﻲ ﻛﻪ در ﺑﺎﻻ آﻣﺪ در ﻣﻮرد ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻧﻴﺰ ﺻﺪق ﻣﻲﻛﻨﻨﺪ. ﺷﺮح ﺑﻴﺸﺘﺮ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺑﻌﺪاٌ ﻣﻲآﻳﺪ.‬ ‫31.4.1 دﺳﺘﻮرﻫﺎﺋﻲ در ﻣﻮرد ﻣﺘﻐﻴﺮﻫﺎ‬ ‫ﻧﺘﻴﺠﻪ اﺟﺮا‬ ‫ﻧﺎم دﺳﺘﻮر‬ ‫‪ who‬ﻧﺎم ﻣﺘﻐﻴﺮﻫﺎ را ﻣﻲدﻫﺪ‬ ‫‪ whos‬ﻧﺎم و اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮي از ﻣﺸﺨﺼﻪﻫﺎي ﻣﺘﻐﻴﺮﻫﺎ ﻣﻲدﻫﺪ‬ ‫‪ clear var‬ﻳﻚ ﻣﺘﻐﻴﺮ را ﭘﺎك ﻣﻲﻛﻨﺪ‬ ‫‪ clear‬ﻛﻠﻴﻪ ﻣﺘﻐﻴﺮﻫﺎي ﺗﻌﺮﻳﻒ ﺷﺪه را ﭘﺎك ﻣﻲﻛﻨﺪ‬ ‫‪ clear all‬ﺣﺎﻓﻈﻪ را ﻛﻼٌ ﭘﺎك ﻣﻲﻛﻨﺪ‬ ‫‪ pack‬ﺣﺎﻓﻈﻪ را ﻣﻨﻈﻢ و ﺟﻤﻊ و ﺟﻮر ﻣﻲﻛﻨﺪ‬ ‫5.1 درﻳﺎﻓﺖ اﻃﻼع و راﻫﻨﻤﺎﺋﻲ از ﻣﺪارك راﻫﻨﻤﺎي ﻣﺘﻠﺐ‬ ‫دﺳﺘﻮرات زﻳﺮ ﺷﺎﻣﻞ ﺑﺮﺧﻲ از روشﻫﺎي اﺳﺘﻔﺎده از ﻣﺪارك ﻏﻨﻲ ﻣﺘﻠﺐ اﺳﺖ. اﺳﺘﻔﺎده ﻣﺮﺗﺐ از ﻣﺪارك راﻫﻨﻤﺎي ﻣﺘﻠﺐ ﺑﻪ‬ ‫ﻛﺎرﺑﺮان و داﻧﺸﺠﻮﻳﺎن ﺗﻮﺻﻴﻪ ﻣﻲﺷﻮد. اﻏﻠﺐ ﻣﺪارك راﻫﻨﻤﺎ ﺑﺎ ﻓﺮﻣﺖ ‪ PDF‬ﻧﻴﺰ ﻗﺎﺑﻞ دﺳﺘﺮﺳﻲ ﻫﺴﺘﻨﺪ.‬ ‫ﻧﺘﻴﺠﻪ اﺟﺮا‬ ‫راﻫﻨﻤﺎﺋﻲ ﻳﻚ ﻋﺒﺎرت ﻳﺎ دﺳﺘﻮر ﻣﺎﻧﻨﺪ ‪rand‬‬ ‫ﻣﺜﺎلِ دﺳﺘﻮر‬ ‫‪help rand‬‬ ‫‪ lookfor word‬ﺟﺴﺘﺠﻮ ﺑﺮاي ﻳﻚ ﻛﻠﻤﻪ داﺧﻞ ﻣﺘﻮن ﻣﺘﻠﺐ‬ ‫‪ type realmin‬ﻧﻤﺎﻳﺶ ﻣﺤﺘﻮاي ﻳﻚ ﺗﺎﺑﻊ ﻛﺘﺎبﺧﺎﻧﻪاي ﻳﺎ ﺗﺎﺑﻊ ﻛﺎرﺑﺮ- ﺗﻌﺮﻳﻒ در دﻳﺮﻛﺘﻮري ﺟﺎري‬ ‫‪ info‬اﻃﻼﻋﺎت راﺟﻊ ﺑﻪ ﻣﺘﻠﺐ‬ ‫‪ [st,n]=computer‬اﻃﻼع راﺟﻊ ﺑﻪ ﻛﺎﻣﭙﻴﻮﺗﺮ و ﺗﻌﺪاد ﻋﻨﺎﺻﺮ ﻣﺠﺎز ﻳﻚ ﻣﺎﺗﺮﻳﺲ‬ ‫‪ version, ver‬وﻳﺮاﻳﺶِ ﻣﺘﻠﺐ‬ ‫درﻳﺎﻓﺖ راﻫﻨﻤﺎ از ﭘﻨﺠﺮه ‪MATLAB Help‬‬ ‫‪doc sin‬‬ ‫‪ help‬ﻧﻤﺎﻳﺶ راﻫﻨﻤﺎي ﻣﺘﻠﺐ‬ ‫ﻧﻤﺎﻳﺶ راﻫﻨﻤﺎي ﻣﺘﻠﺐ در ﭘﻨﺠﺮه ‪MATLAB Help‬‬ ‫‪helpwin‬‬ ‫9‬ ‫6.1 ﺗﻤﺮﻳﻦ‬ ‫1- ﻳﻚ ﻣﺎﺗﺮﻳﺲ 3×4 ﻋﺪدي ﺗﻌﺮﻳﻒ و ﺑ‪‬ﻌﺪ آن را ﺗﻌﻴﻴﻦ ﻛﻨﻴﺪ.‬ ‫2- ﻳﻚ ﺑﺮدار ردﻳﻔﻲ ﻋﺪدي 6 ﻋﻀﻮي ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ.‬ ‫3- ﻳﻚ آراﻳﻪ ﺳﻠﻮﻟﻲ ﻛﻪ داراي اﻧﻮاع ﻣﻨﻄﻘﻲ، رﺷﺘﻪاي، و ﻋﺪدي، ﺑﺎﺷﺪ اﻳﺠﺎد ﻛﻨﻴﺪ. اﻧﺪازه، ﻃﻮل و ﺑ‪‬ﻌﺪ آنرا ﭼﺎپ‬ ‫ﻛﻨﻴﺪ.‬ ‫4- دو ﺑﺮدار ﻋﺪدي و ﺣﺎﺻﻞﺟﻤﻊ آن دو را در ﻳﻚ ﺳﻄﺮ اﻳﺠﺎد ﻛﻨﻴﺪ.‬ ‫5- دﺳﺘﻮرات ‪ dir, time, date‬را ﺑﺎ ﮔﺬاﺷﺘﻦ ﻋﻼﻣﺖ ! در ﻣﻘﺎﺑﻞ آنﻫﺎ از داﺧﻞ ﭘﻨﺠﺮه ﻓﺮﻣﺎن اﺟﺮا ﻛﻨﻴﺪ.‬ ‫6- دﺳﺘﻮرات ‪ clear var ، whos ، who‬را در ﻣﻮرد ﻣﺘﻐﻴﺮﻫﺎﺋﻲ ﻛﻪ ﺑﻪ وﺟﻮد آوردهاﻳﺪ، اﺟﺮا ﻛﻨﻴﺪ.‬ ‫7- دﺳﺘﻮر ‪ lookfor‬را ﺑﺮاي ‪ exp‬اﺟﺮا ﻛﻨﻴﺪ )اﮔﺮ ﻃﻮﻻﻧﻲ ﺷﺪ از ‪ Ctrl-C‬ﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ(.‬ ‫8- دﺳﺘﻮر ‪ help‬را ﺑﺮاي ﭼﻨﺪ ﺗﺎﺑﻊ ﻣﺜﻠﺜﺎﺗﻲ اﺟﺮا ﻛﻨﻴﺪ.‬ ‫9- دﺳﺘﻮر ‪ type‬را ﺑﺮاي ‪ realmax, realmin‬اﺟﺮا ﻛﻨﻴﺪ.‬ ‫01- دﺳﺘﻮر ‪ doc tan‬و ‪ doc randn‬و ‪ helpwin‬را اﺟﺮا ﻛﻨﻴﺪ.‬ ‫11- دﺳﺘﻮرات ‪ info, [st,n]=computer, version, ver‬را اﺟﺮا ﻛﻨﻴﺪ.‬ ‫21- ﻳﻚ دﺳﺘﻮر ﻏﻠﻂ را ﺑﺎ ‪ eval‬و ‪ lasterr‬اﻣﺘﺤﺎن ﻛﻨﻴﺪ.‬ ‫01‬ ‫آﺷﻨﺎﺋﻲ ﺑﺎ ﻣﺘﻐﻴﺮﻫﺎ، ﺗﻮاﺑﻊ، ﺑﺮﻧﺎﻣﻪ‬ ‫2 ﻓﺼﻞ دو‬ ‫1.1.2 اﻧﻮاع داده‬ ‫1.2 آﺷﻨﺎﺋﻲ ﺑﺎ اﻧﻮاع ﻣﺘﻐﻴﺮ و داده‬ ‫در ﻣﺘﻠﺐ دادهﻫﺎي ﻣﺨﺘﻠﻔﻲ وﺟﻮد دارﻧﺪ از ﺟﻤﻠﻪ: دادهﻫﺎي ﻋﺪدي ﻛﻪ ﺑﻴﺸﺘﺮ ﺑﻪ آنﻫﺎ ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ، دادهﻫﺎي ﻛﺎراﻛﺘﺮي و‬ ‫ﻣﻨﻄﻘﻲ ﻛﻪ در واﻗﻊ ﻧﻮﻋﻲ داده ﻋﺪدي ﻫﺴﺘﻨﺪ. ﻣﺎﺗﺮﻳﺲ ﺳﻠﻮﻟﻲ ‪ cell matrix‬ﻛﻪ دادهﻫﺎﺋﻲ از اﻧﻮاع ﻣﺨﺘﻠﻒ را ﻧﮕﻪ-‬ ‫داري ﻣﻲﻛﻨﺪ، ﻣﺎﺗﺮﻳﺲ ﺳﺎﺧﺘﺎري ﻛﻪ ﻣﺎﺗﺮﻳﺲﻫﺎﺋﻲ از اﻧﻮاع ﻣﺨﺘﻠﻒ را ﻧﮕﻪداري ﻣﻲﻛﻨﺪ، ‪، inline‬‬ ‫‪ ... ، function_handle‬و ﻏﻴﺮه اﺳﺖ. ﺑﺮاي اﻃﻼع ﺑﻴﺸﺘﺮ ‪ help datatypes‬را اﺟﺮا ﻛﻨﻴﺪ.‬ ‫2.1.2 دادهﻫﺎي ﻋﺪدي، و دﺳﺘﻮر )(‪isa‬‬ ‫ﺑﻪ ﻋﻠﺖ اﻳﻦﻛﻪ ﻣﺘﻠﺐ ﻳﻚ ﻧﺮماﻓﺰار ﻣﻬﻨﺪﺳﻲ اﺳﺖ، دادهﻫﺎي ﻋﺪدي در آن اﻫﻤﻴﺖ ﺧﺎﺻﻲ دارﻧﺪ. ﭘﻴﺶﻓﺮض ﻣﺘﻠﺐ اﻳﻦ ﮔﻮﻧﻪ‬ ‫اﺳﺖ ﻛﻪ ﻫﺮ ﻣﺘﻐﻴﺮ ﻋﺪدي را ﺑﻪ ﻫﻨﮕﺎم ورود ﻳﻌﻨﻲ ﻣﻌﺮﻓﻲ، ﻳﺎ اﻋﻼم ﻧﺎم و ﻣﻘﺪار ﻫﻢزﻣﺎن، ﺑﺎ دﻗﺖ اﻓﺰوده )ﻣﻀﺎﻋﻒ(‬ ‫‪ double‬ﻧﮕﻪداري ﻣﻲﻛﻨﺪ. دﺳﺘﻮر )(‪ isa‬ﻧﻮع ﻣﺘﻐﻴﺮ ﻳﺎ داده را اﻣﺘﺤﺎن ﻣﻲﻛﻨﺪ ﺑﺮاي اﻃﻼع ﺑﻴﺸﺘﺮ از اﻧﻮاع داده در‬ ‫ﻣﺘﻠﺐ ‪ help datatypes‬را اﺟﺮا ﻛﻨﻴﺪ. ﻣﺸﺨﺼﻪﻫﺎي ﺑﻌﻀﻲ از اﻧﻮاع ﻋﺪدي در ﺟﺪول زﻳﺮ آﻣﺪه اﺳﺖ.‬ ‫رﻗﻢ ﺑﻌﺪاز ﻣﻤﻴﺰ‬ ‫51‬ ‫2‬ ‫25-‬ ‫دﻗﺖ‬ ‫01×2≈‬ ‫‪N/A‬‬ ‫‪N/A‬‬ ‫0‬ ‫61-‬ ‫2201-‬ ‫ﺑﺎزه‬ ‫803-‬ ‫ﺑﺎﻳﺖ‬ ‫ﻧﺎم‬ ‫دﻗﺖ ﻣﻀﺎﻋﻒ ‪double‬‬ ‫2‬ ‫01×2≈‬ ‫0‬ ‫1‬ ‫≥‬ ‫8‬ ‫2<‬ ‫‪N/A‬‬ ‫‪N/A‬‬ ‫4201‬ ‫01×2≈‬ ‫803‬ ‫1‬ ‫2‬ ‫ﻣﻨﻄﻘﻲ ‪logical‬‬ ‫ﻛﺎراﻛﺘﺮي ‪char‬‬ ‫53556‬ ‫3.1.2 ﻧﻜﺎﺗﻲ ﭘﻴﺮاﻣﻮن ﺗﺮﻛﻴﺐ اﻧﻮاع‬ ‫در ﺗﺮﻛﻴﺐ ﻛﺎراﻛﺘﺮ، ﻣﻨﻄﻖ، و ﻋﺪد، ﺑﺮﺗﺮي ﺑﺎ ﻋﺪد ﺑﻮده و ﺣﺎﺻﻞ از ﻧﻮع ﻋﺪدي ﺧﻮاﻫﺪ ﺑﻮد. در ﺗﺮﻛﻴﺐ ﻫﺮ داده ﻛﺎراﻛﺘﺮي ﺑﺎ‬ ‫اﻋﺪاد ﻣﻘﺪار ﻋﺪدي آن وارد ﻋﻤﻠﻴﺎت ﺧﻮاﻫﺪ ﺷﺪ.‬ ‫ﻣﺜﺎل: ﺗﺮﻛﻴﺐ ﻛﺎراﻛﺘﺮ، ﻣﻨﻄﻖ، و ﻋﺪد‬ ‫‪>> D = 2.35 ; % double‬‬ ‫‪>> L = logical(1) ; % logical‬‬ ‫‪>> CH = 'A'; % character‬‬ ‫‪>> M = D + L + CH % double‬‬ ‫0053.86 = ‪M‬‬ ‫4.1.2 ﻣﺘﻐﻴﺮﻫﺎ و ﺛﻮاﺑﺖ داﺧﻠﻲ ﻳﺎ ﺗﻮﻛﺎر ﻣﺘﻠﺐ‬ ‫ﺑﻌﻀﻲ از ﻣﺘﻐﻴﺮﻫﺎ و ﺛﻮاﺑﺖ ﻛﻪ در داﺧﻞ ﻣﺘﻠﺐ ﭘﻴﺶ- ﺗﻌﺮﻳﻒ ﺷﺪهاﻧﺪ‬ ‫ﻣﻘﺪار )ﺑﺮ روي ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﻦ(‬ ‫آﺧﺮﻳﻦ ﻣﻘﺪار ﺣﺴﺎب ﺷﺪه‬ ‫2=)25-,1(2‪pow‬‬ ‫25-‬ ‫ﺗﻌﺮﻳﻒ‬ ‫‪ ans‬آﺧﺮﻳﻦ ﻣﻘﺪار ﺣﺴﺎب ﺷﺪه را ﻧﮕﻪ ﻣﻲدارد‬ ‫‪ eps‬ﻛﻮﭼﻚﺗﺮﻳﻦ ﻋﺪد ﻗﺎﺑﻞ اﻓﺰاﻳﺶ و ﻛﺎﻫﺶ،‬ ‫ﻛﻪ ﻣﻌﺎدل اﺳﺖ ﺑﺎ ﮔﺎم ﻳﺎ ‪ step‬ﻧﻮع ‪double‬‬ ‫ﻧﺎم‬ ‫01×2≈‬ ‫61-‬ ‫610-‪2.220446049250313e‬‬ ‫11‬ ‫ﺑﻌﻀﻲ از ﻣﺘﻐﻴﺮﻫﺎ و ﺛﻮاﺑﺖ ﻛﻪ در داﺧﻞ ﻣﺘﻠﺐ ﭘﻴﺶ- ﺗﻌﺮﻳﻒ ﺷﺪهاﻧﺪ )اداﻣﻪ...(‬ ‫ﻣﻘﺪار )ﺑﺮ روي ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﻦ(‬ ‫2<‬ ‫4201‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻧﺎم‬ ‫01×2<‬ ‫803‬ ‫803‬ ‫‪ realmax‬ﺑﺰرگﺗﺮﻳﻦ ﻋﺪد اﺳﺘﺎﻧﺪارد از ﻧﻮع ‪double‬‬ ‫01×613268431396797.1=‬ ‫01=‬ ‫2201-‬ ‫2=‬ ‫7452.803‬ ‫01×2>‬ ‫803-‬ ‫803‬ ‫‪ realmin‬ﻛﻮﭼﻚﺗﺮﻳﻦ ﻋﺪد اﺳﺘﺎﻧﺪارد از ﻧﻮع‬ ‫‪double‬‬ ‫01×102705858370522.2=‬ ‫8885865556256.703-‬ ‫01=‬ ‫))1-(‪=4*atan(1)=imag(log‬‬ ‫397985356295141.3=‬ ‫)ﻏﻴﺮ ﺻﻔﺮ(‬ ‫‪ pi‬ﻋﺪد ﭘﻲ‬ ‫‪Inf, inf‬‬ ‫‪ Infinity‬ﻧﺘﻴﺠﻪ ﺗﻘﺴﻴﻢ ﻋﺪد ﺑﺮ ﺻﻔﺮ‬ ‫‪NaN,nan‬‬ ‫‪ Not a Number‬ﺗﻘﺴﻴﻢ ‪ inf‬ﺑﺮ ‪ inf‬و ﺻﻔﺮ ﺑﺮ ﺻﻔﺮ‬ ‫‪n‬‬ ‫* ﺗﺎﺑﻊ )‪ pow2(m,n‬ﻣﻌﺎدل اﺳﺖ ﺑﺎ 2 × ‪. m‬‬ ‫5.1.2 دﺳﺘﻮر ﻓﺮﻣﺖ ‪format‬‬ ‫دﺳﺘﻮر ‪ format‬ﻓﻘﻂ روش ﻧﻤﺎﻳﺶ اﻋﺪاد در ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ را ﺗﻌﻴﻴﻦ ﻣﻲﻛﻨﺪ، و ﺗﺄﺛﻴﺮي در دﻗﺖ ﻧﮕﻪداري اﻋﺪاد در‬ ‫ﺣﺎﻓﻈﻪ ﻧﺪارد. ﻓﻘﻂ اﻋﺪاد ﺻﺤﻴﺢ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ در ﻣﺒﻨﺎي ﺷﺎﻧﺰده ﻫﺴﺘﻨﺪ، ﻟﺬا ﻫﺮ ﻋﺪد را ﺑﺎﻳﺪ اﺑﺘﺪا ﺑﻪ ﻋﺪد ﺻﺤﻴﺢ ﺗﺒﺪﻳﻞ و‬ ‫ﺳﭙﺲ آنرا ﺑﺎ ﻓﺮﻣﺖ ﻫﮕﺰ ﻧﻤﺎﻳﺶ داد. ﺑﺮاي اﻃﻼع ﺑﻴﺸﺘﺮ ‪ help format‬را اﺟﺮا ﻛﻨﻴﺪ.‬ ‫ﭼﻨﺪ ﻧﻮع روش ﻧﻤﺎﻳﺶ اﻋﺪاد ﺑﺎ دﺳﺘﻮر ‪format‬‬ ‫ارﻗﺎم ﺑﻌﺪ از ﻧﻘﻄﻪ- اﻋﺸﺎر‬ ‫2‬ ‫4‬ ‫41‬ ‫51‬ ‫‪N/A‬‬ ‫‪N/A‬‬ ‫دﺳﺘﻮر‬ ‫‪format bank‬‬ ‫‪format‬‬ ‫‪format short‬‬ ‫‪format long‬‬ ‫‪format long e‬‬ ‫‪format hex‬‬ ‫‪format rational‬‬ ‫ﻧﺎم‬ ‫ﻓﺮﻣﺖ ﺑﺎﻧﻜﻲ )ﻓﻘﻂ ﺑﺮاي اﻋﺪاد ﺣﻘﻴﻘﻲ(‬ ‫ﻓﺮﻣﺖ ﻛﻮﺗﺎه‬ ‫ﻓﺮﻣﺖ ﺑﻠﻨﺪ‬ ‫ﻓﺮﻣﺖ ﺑﻠﻨﺪ‪ ‬ﻧﻤﺎﺋﻲ‬ ‫ﻓﺮﻣﺖ ﻣﺒﻨﺎي ﺷﺎﻧﺰده )ﻓﻘﻂ ﺑﺮاي اﻋﺪاد ﺻﺤﻴﺢ(‬ ‫ﻧﻤﺎﻳﺶ ﺑﻪ ﺻﻮرت ﻛﺴﺮ ﻣﺘﻌﺎرﻓﻲ‬ ‫ﻣﺜﺎل 1: ﻋﺪد اﻋﺸﺎري ‪) double‬ﻋﺪد ﻧﭙﺮي و ﻋﺪد ﭘﻲ(‬ ‫;)1(‪>> E = exp‬‬ ‫))1-(‪>> P = pi; % equivalent to P = 4*atan(1) or P = imag(log‬‬ ‫ﺑﺮاي ﻧﻤﺎﻳﺶ ارﻗﺎم ﺑﻴﺸﺘﺮي از ﻳﻚ ﻋﺪد % ‪>> format long e‬‬ ‫ﻳﻚ ﺑﺮدار دو ﻋﻀﻮي از ﻧﻮع دﻗﺖ ﻣﻀﺎﻋﻒ % ]‪>> EP = [E P‬‬ ‫000+‪EP = 2.718281828459046e‬‬ ‫)'‪>> isa(EP,'double‬‬ ‫1 = ‪ans‬‬ ‫000+‪3.141592653589793e‬‬ ‫ﻋﺪد ﻧﭙﺮي ﺟﺰو ﺛﻮاﺑﺖ داﺧﻠﻲ ﻧﻴﺴﺖ ﻟﺬا ﺑﺮاي ﺑﻪ دﺳﺖ آوردن از ﺗﺎﺑﻊ ﻛﺘﺎﺑﺨﺎﻪاي )(‪ exp‬اﺳﺘﻔﺎده ﻛﺮدهاﻳﻢ. اﻣﺎ ﻋﺪد ﭘﻲ‬ ‫‪ pi‬ﺟﺰو ﺛﻮاﺑﺖ داﺧﻠﻲ ﭘﻴﺶ ﺗﻌﺮﻳﻒ ﻣﺘﻠﺐ اﺳﺖ.‬ ‫21‬ ‫ﻣﺜﺎل 2: ﺗﺮﻛﻴﺐ اﻧﻮاع‬ ‫3.1 + )1(‪>> var = 'A' + logical‬‬ ‫0003.76 = ‪var‬‬ ‫‪>> isa(var,'double') % test the type of var‬‬ ‫1 = ‪ans‬‬ ‫ﻣﺜﺎل 3: ارزش ﻣﺤﺎﺳﺒﺎﺗﻲ ‪ eps‬در اﻓﺰاﻳﺶ و ﻛﺎﻫﺶ‬ ‫‪>> format long e‬‬ ‫‪>> a = 1 - eps‬‬ ‫100-‪a = 9.999999999999998e‬‬ ‫‪>> b = 1 + eps‬‬ ‫000+‪b = 1.000000000000000e‬‬ ‫ﻣﺜﺎل 4: ‪ realmin‬و ‪realmax‬‬ ‫‪>> eps, realmin + eps‬‬ ‫610-‪ans = 2.220446049250313e‬‬ ‫610-‪ans = 2.220446049250313e‬‬ ‫ﻛﻮﭼﻚﺗﺮﻳﻦ ﻋﺪد ﻗﺎﺑﻞ اﻓﺰاﻳﺶ و ﻛﺎﻫﺶ ‪ eps‬اﺳﺖ، ﻟﺬا ﻫﺮ دو ﻣﻘﺪار ﻣﺴﺎوي ﻫﺴﺘﻨﺪ.‬ ‫)2201-^2(*)4201^2( ‪>> realmax*realmin % approximately‬‬ ‫4 = ‪ans‬‬ ‫ﻣﺜﺎل 5: ﻧﻤﺎﻳﺶ ﻋﺪد ﺻﺤﻴﺢ در ﻣﺒﻨﺎي ﺷﺎﻧﺰده‬ ‫>>‬ ‫>>‬ ‫>>‬ ‫>>‬ ‫‪ix‬‬ ‫‪format hex‬‬ ‫‪ix = int8(125); % convert into one byte integer‬‬ ‫‪ix1 = int16(1250); % convert into two byte integer‬‬ ‫1‪ix, ix‬‬ ‫‪= 7d‬‬ ‫2‪ix1 = 04e‬‬ ‫ﺑﺮاي ﻧﻤﺎﻳﺶ ﻳﻚ ﻋﺪد ﺑﻪ ﻓﺮﻣﺖ ﻫﮕﺰ اﺑﺘﺪا ﺑﺎﻳﺪ آن را ﺑﻪ ﻋﺪد ﺻﺤﻴﺢ ﺗﺒﺪﻳﻞ ﻛﺮد.‬ ‫ﻣﺜﺎل 6: ﻓﺮﻣﺖ ﻛﺴﺮ ﻣﺘﻌﺎرﻓﻲ‬ ‫‪>> format rational‬‬ ‫‪>> pi‬‬ ‫311/553 = ‪ans‬‬ ‫‪>> format % return to default format‬‬ ‫6.1.2 ﻣﺸﺎﻫﺪه در ﭘﻨﺠﺮه ﻓﻀﺎي ﻛﺎر‬ ‫ﺗﻮﺻﻴﻪ ﻣﻲﺷﻮد ﻫﻤﻮاره ار اﻧﺘﺨﺎب ‪ View‬از ﻣﻨﻴﻮي اﺻﻠﻲ، ﭘﻨﺠﺮه ‪ Workspace‬را ﺗﻴﻚ ﺑﺰﻧﻴﺪ ﺗﺎ ﺑﺘﻮاﻧﻴﺪ ﻣﺸﺨﺼﻪﻫﺎي‬ ‫ﻣﺘﻐﻴﺮﻫﺎي ﺧﻮد را در ﻓﻀﺎي ﺣﺎﻓﻈﻪ ﻣﺸﺎﻫﺪه ﻧﻤﺎﺋﻴﺪ. اﮔﺮ ﺑﻪ روي ﻳﻚ ﻣﺘﻐﻴﺮ در ﭘﻨﺠﺮه ‪ Workspace‬ﻛﻠﻴﻚ-ﻛﻠﻴﻚ ﻛﻨﻴﺪ،‬ ‫دﺳﺖرﺳﻲ ﺑﻴﺶﺗﺮي ﺑﻪآن ﭘﻴﺪا ﻛﺮده، ﺣﺘﻲ ﻣﻲﺗﻮاﻧﻴﺪ آن را ادﻳﺖ ﻛﻨﻴﺪ )اﻣﺘﺤﺎن ﻛﻨﻴﺪ(.‬ ‫ﻣﺜﺎل:‬ ‫;221 = 1‪>> x‬‬ ‫;)1‪>> ix1 = int8(x‬‬ ‫;)1‪>> ix2 = int16(x‬‬ ‫2.2 ﻋﻤﻠﮕﺮﻫﺎ‬ ‫1.2.2 ﻋﻤﻠﮕﺮﻫﺎي آراﻳﻪ اي‬ ‫اﻳﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺑﺮ روي آراﻳﻪﻫﺎي ﻣﻮرد ﻋﻤﻞ ﺑﻪ ﺻﻮرت ﻋﻨﺼﺮ ﺑﻪ ﻋﻨﺼﺮ )ﺑﺮ روي آراﻳﻪ ﻫﺎي ﻫﻢ ﺳﺎن ﻳﺎ اﺳﻜﺎﻟﺮ و آراﻳﻪ( ﻋﻤﻞ‬ ‫31‬ ‫ﻣﻲﻛﻨﻨﺪ و در ﻣﻘﺎﺑﻞ ﻋﻤﻠﮕﺮﻫﺎي ﻣﺎﺗﺮﻳﺴﻲ ﻗﺮار دارﻧﺪ ﻛﻪ ﺗﻌﺎرﻳﻒ ﺧﺎص ﺧﻮد را دارﻧﺪ.‬ ‫ﻋﻤﻠﮕﺮﻫﺎي آراﻳﻪ اي‬ ‫ﺗﺮاﻧﻬﺎد‬ ‫)ﺑﺪون ﻣﺰدوج ﻛﺮدن‬ ‫اﻋﺪاد ﻣﺨﺘﻠﻂ(‬ ‫'.‬ ‫ﺗﺮاﻧﻬﺎد ‪Transpose‬‬ ‫ﺗﻘﺴﻴﻢ‬ ‫ﺗﻘﺴﻴﻢ‬ ‫ﺟﻤﻊ ﺗﻔﺮﻳﻖ ﺗﻮان ﺿﺮب‬ ‫)اﻋﺪاد ﻣﺨﺘﻠﻂ را ﻣﺰدوج‬ ‫ﻣﻲ ﻛﻨﺪ(‬ ‫'‬ ‫)ﻣﻌﻤﻮﻟﻲ( )راﺳﺖ ﺑﻪ ﭼﭗ(‬ ‫\.‬ ‫/.‬ ‫*.‬ ‫^.‬ ‫‬‫+‬ ‫ ﺟﻤﻊ و ﺗﻔﺮﻳﻖ آراﻳﻪاي و ﻣﺎﺗﺮﻳﺴﻲ ﻳﻚﺳﺎن ﻫﺴﺘﻨﺪ. ﻣﺎﺗﺮﻳﺲﻫﺎ ﻳﺎ ﺑﺮدارﻫﺎﺋﻲ ﻛﻪ در ﻋﻤﻞ آراﻳﻪاي ﻣﺸﺎرﻛﺖ دارﻧﺪ ﺑﺎﻳﺪ‬‫ﻫﻤﺴﺎن ﺑﺎﺷﻨﺪ، اﻣﺎ ﻋﻤﻞ آراﻳﻪاي ﻣﺎﺑﻴﻦ ﻋﺪد )اﺳﻜﺎﻟﺮ( و آراﻳﻪ ﻣﺠﺎز اﺳﺖ.‬ ‫ ﻋﻤﻠﮕﺮ ﺗﺮﻧﻬﺎد ‪ Transpose‬ﺑﺎ ﻋﻼﻣﺖ آﭘﻮﺳﺘﺮوف، ﺟﺎي ﺳﺘﻮن و ردﻳﻒ ﻣﺎﺗﺮﻳﺲ را ﻋﻮض ﻣﻲﻛﻨﺪ، و در ﻣﻮرد‬‫ﺑﺮدارﻫﺎ ﺑﺮدار ردﻳﻔﻲ را ﺑﻪ ﺑﺮدار ﺳﺘﻮﻧﻲ )و ﺑﺎﻟﻌﻜﺲ( ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ.در ﻣﻮرد اﻋﺪاد ﻣﺨﺘﻠﻂ ﻋﻤﻞ ﻣﺰدوج ﻛﺮدن ﻧﻴﺮ ﺻﻮرت‬ ‫ﻣﻲﮔﻴﺮد، ﻋﻼﻣﺖ '. )ﻧﻘﻄﻪ آﭘﻮﺳﺘﺮوف( ﺗﺮاﻧﻬﺎد ﻛﺮدن اﻋﺪاد ﻣﺨﺘﻠﻂ را ﺑﺪون ﻣﺰدوج ﻛﺮدن اﻧﺠﺎم ﻣﻲدﻫﺪ.‬ ‫ﻣﺜﺎل 1: ﺟﻤﻊ و ﺗﻔﺮﻳﻖ ﭼﻨﺪ ﺑﺮدار‬ ‫;]8 4 2[ = ‪>> a‬‬ ‫;]7 5 3[ = ‪>> b‬‬ ‫;]3 2- 5-[ = ‪>> c‬‬ ‫‪>> a + b - c‬‬ ‫01 = ‪ans‬‬ ‫11‬ ‫21‬ ‫ﻣﺜﺎل 2: ﺿﺮب و ﺗﻘﺴﻴﻢ آراﻳﻪاي‬ ‫;]8 4 2[ = ‪>> a‬‬ ‫;]2 2 3[ = ‪>> b‬‬ ‫‪>> a .* b‬‬ ‫6 = ‪ans‬‬ ‫8‬ ‫61‬ ‫‪>> a ./ b‬‬ ‫7666.0 = ‪ans‬‬ ‫0000.2‬ ‫‪>> ar = a .\ b‬‬ ‫0005.1 = ‪ar‬‬ ‫0005.0‬ ‫0000.4‬ ‫0052.0‬ ‫2.2.2 اوﻟﻮﻳﺖ ﻋﻤﻠﮕﺮﻫﺎي آراﻳﻪ اي‬ ‫ﻛﺎﻟﻦ‬ ‫ﺗﻮان ﺿﺮب و ﺗﻘﺴﻴﻢ ﺟﻤﻊ و ﺗﻔﺮﻳﻖ‬ ‫ﭼﭗ ﺑﻪ راﺳﺖ‬ ‫ﭼﭗ ﺑﻪ راﺳﺖ‬ ‫ﺗﺮاﻧﻬﺎد ﭘﺮاﻧﺘﺰ‬ ‫اوﻟﻮﻳﺖ‬ ‫اوﻟﻮﻳﺖ در ﺻﻮرت ﻫﻢراﻫﻲ‬ ‫3.2.2 ﻋﻤﻠﮕﺮﻫﺎي ﻧﺴﺒﺘﻲ )راﺑﻄﻪ اي( ‪Relational Operators‬‬ ‫ﺟﺪول زﻳﺮ ﻋﻤﻠﮕﺮﻫﺎي راﻳﻄﻪاي را ﻧﺸﺎن ﻣﻴﺪﻫﺪ. اﻳﻦ ﻋﻤﻞﮔﺮﻫﺎﻣﻘﺎﻳﺴﻪ ﻣﺎﺑﻴﻦ دو آراﻳﻪ را اﻧﺠﺎم ﻣﻲدﻫﻨﺪ. ﻧﺘﻴﺠﻪ ﻫﺮ ﻣﻘﺎﻳﺴﻪ 0‬ ‫ﻳﺎ 1 ﻣﻨﻄﻘﻲ اﺳﺖ. اﻳﻦﮔﻮﻧﻪ ﻋﻤﻠﻴﺎت ﻣﻌﻤﻮﻻٌ در دﺳﺘﻮرﻫﺎي ﺷﺮﻃﻲ ﻧﻈﻴﺮ ‪ if‬ﻛﺎرﺑﺮد دارﻧﺪ.‬ ‫=<‬ ‫=>‬ ‫<‬ ‫>‬ ‫=~‬ ‫==‬ ‫ﻋﻼﻣﺖ‬ ‫ﻋﻤﻞ‬ ‫ﺑﺰرگﺗﺮ ﻳﺎ ﻣﺴﺎوي ﻛﻮﭼﻚﺗﺮ ﻳﺎ ﻣﺴﺎوي‬ ‫>>‬ ‫>>‬ ‫‪rL‬‬ ‫>>‬ ‫1‪r‬‬ ‫;] 5 4 3 2 1[ = ‪r‬‬ ‫)3 =< ‪rL = (r‬‬ ‫1=‬ ‫1‬ ‫1‬ ‫)‪r1 = r(rL‬‬ ‫1=‬ ‫2‬ ‫3‬ ‫ﻛﻮﭼﻚﺗﺮ‬ ‫ﺗﺴﺎوي ﺷﺮﻃﻲ ﻧﺎﻣﺴﺎوي ﺷﺮﻃﻲ ﺑﺰرگﺗﺮ‬ ‫ﻣﺜﺎل 1: اﺳﺘﺨﺮاج ﺑﺮدار از ﺑﺮدار دﻳﮕﺮ‬ ‫0‬ ‫0‬ ‫41‬ ‫ﻣﺜﺎل 2: ﻳﺎﻓﺘﻦ ﻣﺤﻞ ﻋﻨﺎﺻﺮ ﻣﺴﺎوي ﺑﺎ 9‬ ‫;]53.4- 0 9 6- 5.1 0 5 9 0 2[ = ‪>> ab‬‬ ‫9 == ‪>> ab‬‬ ‫0 = ‪ans‬‬ ‫0‬ ‫1‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫1‬ ‫0‬ ‫0‬ ‫4.2.2 ﻋﻤﻠﮕﺮﻫﺎي ﻣﻨﻄﻘﻲ ‪Logical Operators‬‬ ‫~‬ ‫‪NOT‬‬ ‫|‬ ‫&‬ ‫ﻋﻼﻣﺖ‬ ‫ﻋﻤﻞ‬ ‫‪OR AND‬‬ ‫ﻋﻤﻞﮔﺮﻫﺎي ﻣﻨﻄﻘﻲ ﻣﺎﺑﻴﻦ ﺻﻔﺮ و ﻳﻚﻫﺎي ﻣﻨﻄﻘﻲ ﻋﻤﻞ ﻣﻲﻛﻨﻨﺪ، و ﻧﺘﻴﺠﻪ آنﻫﺎ 0 ﻳﺎ 1 ﻣﻨﻄﻘﻲ اﺳﺖ. ﺣﺎﺻﻞ ﺗﺮﻛﻴﺐ ﻋﻤﻠﻴﺎت‬ ‫راﺑﻄﻪاي و ﻣﻨﻄﻘﻲ ﻧﻴﺰ ﭘﺎﺳﺦ ﻣﻨﻄﻘﻲ ﺧﻮاﻫﺪ داﺷﺖ و ﻣﻌﻤﻮﻻٌ در دﺳﺘﻮرﻫﺎي ﺷﺮﻃﻲ ﻧﻈﻴﺮ ‪ if‬ﻛﺎرﺑﺮد دارﻧﺪ.‬ ‫ﻣﺜﺎل:‬ ‫;]0 1 1[ = ‪>> A‬‬ ‫‪>> A & B, A | B‬‬ ‫1 = ‪ans‬‬ ‫1‬ ‫;]1 1 1[ = ‪B‬‬ ‫0‬ ‫1 = ‪ans‬‬ ‫1‬ ‫1‬ ‫3.2 ﺗﻮاﺑﻊ ﻛﺘﺎب ﺧﺎﻧﻪ اي ﻳﺎ ﺗﻮﺳﺎﺧﺖ‬ ‫‪Library Functions, Built in functions‬‬ ‫4.2‬ ‫ﻳﻜﻲ از ﻗﺎﺑﻠﻴﺖﻫﺎي ﻣﻬﻢ ﻣﺘﻠﺐ داﺷﺘﻦ ﺗﻌﺪاد ﻣﻌﺘﻨﺎﺑﻬﻲ ﺗﻮاﺑﻊ ﻛﺘﺎبﺧﺎﻧﻪاي اﺳﺖ. ﺑﻪ اﻳﻦ ﻮاﺑﻊ )ﻳﺎ دﺳﺘﻮرات(، ﻛﻪ ﻧﻴﺎزﻫﺎي‬ ‫ﮔﻮﻧﺎﮔﻮن اﻧﻮاع ﻛﺎرﺑﺮان را ﺑﺮآورده ﻣﻲﺳﺎزﻧﺪ،ﺗﻮاﺑﻊ ﺗﻮﺳﺎﺧﺖ ﻳﺎ ﺗﻮاﺑﻊ داﺧﻠﻲ ﻫﻢ ﻣﻲ ﺷﻮد ﮔﻔﺖ. ﻣﻌﺮﻓﻲ ﭼﻨﺪ ﺗﺎﺑﻊ در دﻧﺒﺎل‬ ‫آﻣﺪه اﺳﺖ.‬ ‫1.4.2 ﺗﻮﻟﻴﺪ ﻋﺪد ﺗﺼﺎدﻓﻲ‬ ‫ﻧﺘﻴﺠﻪ دﺳﺘﻮر)‪ rand(m,n‬ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺗﺼﺎدﻓﻲ ‪ m × n‬اﺳﺖ. ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﻮل زﻳﺮ:‬ ‫‪rd = round( (MaxN-MinN)*rand(1, N) ) + MinN‬‬ ‫ﺑﺮدار ‪ rd‬ﺑﺎ ‪ N‬ﻋﺪد ﺗﺼﺎدﻓﻲ ﺻﺤﻴﺢ ﻣﺎﺑﻴﻦ ‪ MinN‬و ‪ MaxN‬ﺑﻪ دﺳﺖ ﺧﻮاﻫﺪ آﻣﺪ.‬ ‫ﻣﺜﺎل 1: ﺑﺮدار ﻋﺪدي ﺑﺎ 6 ﻋﻨﺼﺮ ﺗﺼﺎدﻓﻲ‬ ‫)6,1(‪>> d1 = rand‬‬ ‫1099.0 = 1‪d‬‬ ‫9887.0‬ ‫7834.0‬ ‫3894.0‬ ‫0412.0‬ ‫5346.0‬ ‫ﻣﺜﺎل 2: ﺑﺮدار ﻋﺪدي ﺻﺤﻴﺢ ﺑﺎ 6 ﻋﻨﺼﺮ ﺗﺼﺎدﻓﻲ، ﻣﺎﺑﻴﻦ 1 و 01‬ ‫;6 = ‪>> MaxN = 10; MinN = 1; N‬‬ ‫‪>> rd = round( (MaxN-MinN)*rand(1, N) ) + MinN‬‬ ‫4 = ‪rd‬‬ ‫01‬ ‫8‬ ‫5‬ ‫8‬ ‫3‬ ‫دﺳﺘﻮر)‪ round(x‬ﮔﺮد ﻛﻨﻨﺪه ﺑﻪ ﻧﺰدﻳﻚﺗﺮﻳﻦ ﻋﺪد ﺻﺤﻴﺢ ﺑﻪ ‪ x‬اﺳﺖ.‬ ‫2.4.2 ﺗﻮﻟﻴﺪ آراﻳﻪ ﺑﺎ ﺗﻜﺮار آراﻳﻪ دﻳﮕﺮ‬ ‫ﺗﺎﺑﻊ )‪ B = repmat(A,M,N‬آراﻳﻪ ‪ A‬را ‪ M‬ﺑﺎر اﻓﻘﻲ و ‪ N‬ﺑﺎر ﻋﻤﻮدي ﺗﻜﺮار ﻛﺮده و در آراﻳﻪ ‪ B‬ﻗﺮار ﻣﻲدﻫﺪ.‬ ‫ﻣﺜﺎل: ﺗﻮﻟﻴﺪ ﻳﻚ ﺑﺮدار ﺑﺎ ده ﻋﻀﻮ ﻣﺘﻨﺎوب ﺻﻔﺮ و ﻳﻚ‬ ‫;]0 1[ = ‪>> A‬‬ ‫)5 ,1 ,‪>> B = repmat(A‬‬ ‫1=‪B‬‬ ‫0‬ ‫1‬ ‫0‬ ‫1‬ ‫0‬ ‫1‬ ‫0‬ ‫1‬ ‫0‬ ‫51‬ ‫3.4.2 ﺗﻮاﺑﻊ زﻣﺎﻧﻲ‬ ‫ﺟﺪول زﻳﺮ ﺑﻌﻀﻲ از ﺗﻮاﺑﻊ زﻣﺎﻧﻲ را ﻧﺸﺎن ﻣﻲدﻫﺪ:‬ ‫ﺷﺮح‬ ‫‪ tic‬ﺷﺮوع ﺗﺎﻳﻤﺮ‬ ‫‪ toc‬ﻧﺸﺎن دﻫﻨﺪه زﻣﺎن ﺗﺎﻳﻤﺮ‬ ‫‪ clock‬روز و ﺳﺎﻋﺖ‬ ‫)2‪ etime(t1,t‬ﻓﺎﺻﻠﻪ ﺑﻴﻦ 1‪ t‬و 2‪ ،t‬ﻫﺮدو آرﮔﻮﻣﺎن ﺑﺎﻳﺪ از اﺟﺮاي ‪ clock‬ﺑﻪ دﺳﺖ آﻣﺪه ﺑﺎﺷﻨﺪ‬ ‫‪ cputime‬زﻣﺎن ‪ CPU‬ﺑﻌﺪ از ﺷﺮوع ﻣﺘﻠﺐ‬ ‫‪ date‬ﺗﺎرﻳﺦ روز‬ ‫‪ calendar‬ﺗﻘﻮﻳﻢ ﻣﺎه ﺟﺎري‬ ‫)‪ calendar(yyyy,mm‬ﺗﻘﻮﻳﻢ ﺳﺎل و ﻣﺎه ﻣﻌﻴﻦ‬ ‫ﻣﺜﺎل 1: ﻓﺎﺻﻠﻪ زﻣﺎﻧﻲ ﺑﻴﻦ ﻧﻮﺷﺘﻦ ‪ tic‬و ‪toc‬‬ ‫‪>> tic‬‬ ‫‪>> toc‬‬ ‫0330.2 = ‪elapsed_time‬‬ ‫دﺳﺘﻮر‬ ‫ﻣﺜﺎل 2: ﻧﻤﺎﻳﺶ ﺗﺎرﻳﺦ، روز و ﺳﺎﻋﺖ‬ ‫)‪>> fix(clock‬‬ ‫2002 = ‪ans‬‬ ‫5‬ ‫62‬ ‫11‬ ‫33‬ ‫8‬ ‫ﺑﺮاي ﻧﻤﺎﻳﺶ واﺿﺢﺗﺮ از ﺗﺎﺑﻊ )(‪ fix‬اﺳﺘﻔﺎده ﻛﺮدهاﻳﻢ.‬ ‫ﻣﺜﺎل 3: ﻧﻤﺎﻳﺶ ﺗﺎرﻳﺦ ﻛﺎﻣﭙﻴﻮﺗﺮ‬ ‫‪>> date‬‬ ‫2002-‪ans = 26-May‬‬ ‫4.4.2 ﺑﻌﻀﻲ از ﺗﻮاﺑﻊ رﻳﺎﺿﻲ ﻛﺘﺎب ﺧﺎﻧﻪ اي‬ ‫ﭼﻨﺪ ﺗﺎﺑﻊ رﻳﺎﺿﻲ ﻛﺘﺎب ﺧﺎﻧﻪ اي‬ ‫ﺗﺎﺑﻊ‬ ‫)‪abs(x‬‬ ‫)‪sqrt(x‬‬ ‫)‪exp(x‬‬ ‫)‪log(x‬‬ ‫)‪log10(x‬‬ ‫‪log10x‬‬ ‫,)‪sin(x), cos(x‬‬ ‫)‪tan(x),cot(x‬‬ ‫)‪asin(y), acos(y), atan(y‬‬ ‫‪atan2(y,x)between –π and π‬‬ ‫* )‪round(x‬‬ ‫* )‪fix(x‬‬ ‫)‪mod(x,y‬‬ ‫‪e‬‬ ‫‪x‬‬ ‫ﻧﺎم‬ ‫ﻗﺪر ﻣﻄﻠﻖ‬ ‫رﻳﺸﻪي دوم‬ ‫ﻟﮕﺎرﻳﻢ ﻃﺒﻴﻌﻲ‬ ‫ﺗﻮاﺑﻊ ﻣﺜﻠﺜﺎﺗﻲ‬ ‫ﺗﻮاﺑ ﻣﺜﻠﺜﺎﺗﻲ ﻣﻌﻜﻮس‬ ‫ﮔﺮد ﻛﻨﻨﺪه ‪ x‬ﺑﻪ ﻧﺰدﻳﻚﺗﺮﻳﻦ ﻋﺪد ﺻﺤﻴﺢ‬ ‫ﺑﺎﻗﻲﻣﺎﻧﺪه ﺗﻘﺴﻴﻢ، ﺑﺎ ﻋﻼﻣﺖ ﻣﻮاﻓﻖ ‪y‬‬ ‫ﮔﺮد ﻛﻨﻨﺪه ‪ x‬ﺑﻪ ﻧﺰدﻳﻚﺗﺮﻳﻦ ﻋﺪد ﺻﺤﻴﺢ در ﺟﻬﺖ ﺻﻔﺮ‬ ‫61‬ ‫ﭼﻨﺪ ﺗﺎﺑﻊ رﻳﺎﺿﻲ ﻛﺘﺎب ﺧﺎﻧﻪ اي )اداﻣﻪ ...(‬ ‫)‪[t,n] = rat(x‬‬ ‫)‪rat(x‬‬ ‫ﻧﺰدﻳﻚﺗﺮﻳﻦ ﻛﺴﺮ ﻣﺘﻌﺎرﻓﻲ ﺑﻪ ‪ x‬ﺑﻪ ﺻﻮرت ‪t/n‬‬ ‫ﻧﻤﺎﻳﺶ ‪ x‬ﺑﻪ ﺻﻮرت ﻣﺠﻤﻮﻋﻲ از ﻋﺪدﺻﺤﻴﺢ و ﻛﺴﺮ ﻣﺘﻌﺎرﻓﻲ‬ ‫* اﻳﻦ ﺗﻮاﺑﻊ ﻋﻤﻞﻛﺮدﻫﺎي ﻣﺘﻔﺎوت اﻣﺎ ﻧﺰدﻳﻚ ﺑﻪﻫﻢ دارﻧﺪ، ﺑﺮاي اﻃﻼع ﺑﻴﺶﺗﺮ ﺑﻪ ‪ help‬ﻫﺮﻳﻚ ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ.‬ ‫ﻣﺜﺎل 1: ﺟﺪول زاوﻳﻪ و ﺳﻴﻨﻮس‬ ‫;] 1 2/)2(‪>> tet=[-1 -0.5 -sqrt(2)/2 0 0.5 sqrt‬‬ ‫;)‪>> as_tet=(180/pi)*asin(tet‬‬ ‫)]'‪>> disp([' anlge asin(angle)']), disp([tet' as_tet‬‬ ‫‪anlge‬‬ ‫)‪asin(angle‬‬ ‫0000.1-‬ ‫0000.09-‬ ‫0005.0-‬ ‫0000.03-‬ ‫1707.0-‬ ‫0000.54-‬ ‫0‬ ‫0‬ ‫0005.0‬ ‫0000.03‬ ‫1707.0‬ ‫0000.54‬ ‫0000.1‬ ‫0000.09‬ ‫ﻣﺜﺎل 2: ﺟﺪول زاوﻳﻪ و ﺗﺎﻧﮋاﻧﺖ‬ ‫;] ‪>> tet1=[-inf -1 -sqrt(3) -sqrt(3)/3 0 sqrt(3) 1 sqrt(3)/3 inf‬‬ ‫;)1‪>> at_tet1=(180/pi)*atan(tet‬‬ ‫'[(‪>> disp‬‬ ‫)]'1‪anlge atan(angle)']), disp([tet1' at_tet‬‬ ‫‪anlge‬‬ ‫)‪atan(angle‬‬ ‫‪-Inf‬‬ ‫0000.09-‬ ‫0000.1-‬ ‫0000.54-‬ ‫1237.1-‬ ‫0000.06-‬ ‫4775.0-‬ ‫0000.03-‬ ‫0‬ ‫0‬ ‫1237.1‬ ‫0000.06‬ ‫0000.1‬ ‫0000.54‬ ‫4775.0‬ ‫0000.03‬ ‫‪Inf‬‬ ‫0000.09‬ ‫5.2 آﺷﻨﺎﺋﻲ ﻣﻘﺪﻣﺎﺗﻲ ﺑﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ‬ ‫1.5.2 ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺮاي اﻳﻦ ﻛﻪ از ﻧﻮﺷﺘﻦ ﺳﻄﻮر ﻣﺘﻌﺪد در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﺧﻮدداري ﻛﻨﻴﻢ، ازاﻳﻦ ﺑﻌﻀﻲ از ﻣﺜﺎل ﻫﺎ را ﺑﻪ ﺻﻮرت ﺑﺮﻧﺎﻣﻪ ﻣﻲ‬ ‫ﻧﻮﻳﺴﻴﻢ. ﻣﻌﻤﻮﻻً اﮔﺮ ﺗﻌﺪاد دﺳﺘﻮرات زﻳﺎد ﺑﺎﺷﺪ و ﺑﺨﻮاﻫﻴﻢ ﻳﻚ ﺟﺎ اﺟﺮا ﺷﻮﻧﺪ، ﺑﻪ ﺻﻮرت ﺑﺮﻧﺎﻣﻪ در ادﻳﺘﻮر ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ ﻣﻲ‬ ‫ﺷﻮﻧﺪ.‬ ‫ﺑﺎ زدن دﻛﻤﻪ ]‪ [New M-File‬از ﻣﻴﻠﻪ اﺑﺰار ﻳﻚ ﭘﻨﺠﺮه ادﻳﺘﻮر ﺑﺮاي ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ ﺑﺎز ﻣﻲﺷﻮد. دﺳﺘﻮرات ﺑﺮﻧﺎﻣﻪ را در‬ ‫ادﻳﺘﻮر ﻣﻲ ﻧﻮﻳﺴﻴﻢ.‬ ‫2.5.2 اﺟﺮاي ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺎ زدن ﻛﻠﻴﺪ 5‪ F‬ﺑﺮﻧﺎﻣﻪ ﺑﺎ ﻧﺎم اﺧﺘﻴﺎري ‪ Filename.m‬ﺿﺒﻂ و اﺟﺮا ﻣﻲﺷﻮد. ﻫﺮ ﻓﺎﻳﻞ ﻧﮕﻪدارﻧﺪه ﺑﺮﻧﺎﻣﻪ در ﻣﺘﻠﺐ ام-‬ ‫ﻓﺎﻳﻞ ‪ M-File‬ﻧﺎم دارد. ﻧﻮﺷﺘﻦ ﻧﺎم ام-ﻓﺎﻳﻞ در ﭘﻨﺠﺮه ﻓﺮﻣﺎن و زدن >‪ <Enter‬ﻧﻴﺰ ﺑﺎﻋﺚ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﻣﻲﺷﻮد.‬ ‫ﺑﺮاي اﺟﺮاي ﻳﻜﻲ ﻳﺎ ﭼﻨﺪ ﺗﺎ از دﺳﺘﻮراﺗﻲ ﻛﻪ در ادﻳﺘﻮر ﻧﻮﺷﺘﻪ ﺷﻮﻧﺪ، آن دﺳﺘﻮرات را ﻣﺎرك ﻣﻲﻛﻨﻴﻢ و ﺳﭙﺲ ﻛﻠﻴﺪ 9‪ F‬را‬ ‫ﻣﻲزﻧﻴﻢ، ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ دﺳﺘﻮرات ﻣﺎرك ﺷﺪه اﺟﺮا و ﻧﺘﺎﻳﺞ در ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻇﺎﻫﺮ ﻣﻲﺷﻮﻧﺪ.‬ ‫71‬ ‫ﻧﻮﺷﺘﻦ ‪ echo off‬در اﺑﺘﺪاي ﺑﺮﻧﺎﻣﻪ ﺑﺎﻋﺚ ﻗﻄﻊ ﻧﻤﺎﻳﺶ ﻣﺠﺪد دﺳﺘﻮرات ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﻫﻨﮕﺎ اﺟﺮا ﻣﻲﺷﻮد.‬ ‫ﺑﻌﻀﻲ از ﻣﺘﺎل ﻫﺎﺋﻲ ﻛﻪ ﺑﻌﺪاً ﻣﻲ آﻳﻨﺪ ﺑﻪ ﺻﻮرت ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ و اﺟﺮا ﺷﺪهاﻧﺪ. در ﺟﻠﻮي دﺳﺘﻮرات ﺑﺮﻧﺎﻣﻪ ﻋﻼﻣﺖ >> ﻧﻴﺎﻣﺪه‬ ‫ﻛﻪ ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ از دﺳﺘﻮرات ﻓﻮري ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻗﺎﺑﻞ ﺗﺸﺨﻴﺺ ﻫﺴﺘﻨﺪ.‬ ‫در اﺑﺘﺪاي ﻫﺮ ﺑﺮﻧﺎﻣﻪ ﻧﺎم آن ﺑﺮﻧﺎﻣﻪ را )ﻛﻪ ﻧﺎم ام- ﻓﺎﻳﻞ ﻧﮕﻪدارﻧﺪه آن اﺳﺖ( ﺑﻌﺪاز ﻋﻼﻣﺖ ﺗﻮﺿﻴﺢ % آوردهاﻳﻢ.‬ ‫6.2 اﻋﺪاد و ﻣﺘﻐﻴﺮﻫﺎي ﻣﺨﺘﻠﻂ‬ ‫در ﻣﺘﻠﺐ اﻋﺪاد ﻣﺨﺘﻠﻂ وﺟﻮد دارﻧﺪ و رﻳﺸﻪ دوم 1- ﺑﺎ ﺣﺮف ‪ i‬ﻧﺸﺎن داده ﻣﻲﺷﻮد. ﺣﺮف ‪ j‬ﻫﻢ ﺑﻪ ﻫﻤﺎن ﻣﻌﻨﺎ اﺳﺖ.‬ ‫ﻣﺜﺎل:‬ ‫‪>> sqrt(-1), i, j‬‬ ‫‪ans = 0 + 1.0000i‬‬ ‫‪ans = 0 + 1.0000i‬‬ ‫‪ans = 0 + 1.0000i‬‬ ‫1.6.2 ﻓﺮم ﻧﻮﺷﺘﺎري ﻋﺪد ﻣﺨﺘﻠﻂ‬ ‫ﻋﺪد ﻣﺨﺘﻠﻂ ‪ z‬را ﻣﻲﺗﻮان ﺑﻪﻳﻜﻲ از اﺷﻜﺎل ﻣﺸﺮوح در ﺣﺪول زﻳﺮ ﻧﻮﺷﺖ. وﻗﺘﻲ ﻋﺪد ﻣﺨﺘﻠﻂ ﺑﻪ ﻋﻨﻮان ﻳﻚ ﻋﻀﻮ در‬ ‫ﻣﺎﺗﺮﻳﺲ ﻗﺮار ﻣﻲﮔﻴﺮد، ﺑﺎﻳﺪ ﺑﻴﻦ ﻋﺪدﻫﺎ، ﻋﻼﺋﻢ، و ﺣﺮف‪ i ‬ﻓﺎﺻﻠﻪ ﻧﺒﺎﺷﺪ.‬ ‫ﺗﻮﺿﻴﺢ‬ ‫ﻓﺮم ﻧﻮﺷﺘﺎري‬ ‫‪ z = a + jb or z = a + j*b‬ﺑﺎﻳﺪ ‪ j‬ﺑﻪ ‪ b‬ﭼﺴﺒﻴﺪه ﺑﺎﺷﺪ.‬ ‫‪ z = a + ib or z = a + i*b‬ﺑﺎﻳﺪ ‪ i‬ﺑﻪ ‪ b‬ﭼﺴﺒﻴﺪه ﺑﺎﺷﺪ.‬ ‫)‪r = abs(z), tet = angle(z) z = r * exp(j*tet‬‬ ‫2.6.2 ﺗﻮاﺑﻊ ﻣﺮﺑﻮط ﺑﻪ ﻣﺘﻐﻴﺮﻫﺎي ﻣﺨﺘﻠﻂ‬ ‫ﺗﻮاﺑﻊ ﻣﺨﺘﻠﻂ را ﻧﺴﺒﺖ ﺑﻪ ﻣﺘﻐﻴﺮ ‪ z = a + jb‬اﻋﻤﺎل ﻣﻲﻛﻨﻴﻢ. ﻧﺘﺎﻳﺞ ﺣﺎﺻﻠﻪ در ﺟﺪول زﻳﺮ آﻣﺪه اﺳﺖ.‬ ‫ﻣﻘﺪار‬ ‫‪a‬‬ ‫‪b‬‬ ‫ﺷﺮح‬ ‫ﺗﺎﺑﻊ‬ ‫)‪ real(z‬ﻗﺴﻤﺖ ﺣﻘﻴﻘﻲ را ﺑﺮﻣﻲﮔﺮداﻧﺪ‬ ‫)‪ imag(z‬ﻗﺴﻤﺖ ﻣﻮﻫﻮﻣﻲ را ﺑﺮﻣﻲﮔﺮداﻧﺪ‬ ‫)‪ angle(z‬زاوﻳﻪ را ﺑﺮﻣﻲﮔﺮداﻧﺪ‬ ‫)‪ conj(z‬ﻣﺰدوج ‪ z‬را ﺑﺮﻣﻲﮔﺮداﻧﺪ‬ ‫)‪ abs(z‬ﻗﺪر ﻣﻄﻠﻖ |‪ |z‬را ﺑﺮﻣﻲﮔﺮداﻧﺪ )2/1(^)2^‪(a^2 + b‬‬ ‫)‪atan2(b,a‬‬ ‫‪a - jb‬‬ ‫ﻣﺜﺎل 1: ﺑﺮﻧﺎﻣﻪي ﺗﺒﺪﻳﻞ ﻗﺴﻤﺖﻫﺎي ﺣﻘﻴﻘﻲ و ﻣﺠﺎزيِ ﺑﺮدار ﻣﺨﺘﻠﻂ ﺑﻪ ﻣﺨﺘﺼﺎت ﻗﻄﺒﻲ‬ ‫‪% program cpx.m‬‬ ‫;]6- 5- 4-[ = ‪re = [1 2 3]; im‬‬ ‫;)‪tet = angle(px); % equivalent to tet1 = atan2(im,re‬‬ ‫;)‪mag = abs(px‬‬ ‫)‪px = mag .* exp(j*tet‬‬ ‫‪>> cpx % program execution from within command window‬‬ ‫‪px = 1 - 4i‬‬ ‫‪2 - 5i‬‬ ‫‪3 - 6i‬‬ ‫ﻣﺜﺎل 2: ﺗﺒﺪﻳﻞ ﻣﺨﺘﺼﺎت ﻗﻄﺒﻲِ)‪ (mag,tet‬ﺑﺮدار ﻣﺨﺘﻠﻂ ﺑﻪ ﻣﺨﺘﺼﺎت ﺣﻘﻴﻘﻲ و ﻣﺠﺎزي )‪(im,re‬‬ ‫>>‬ ‫>>‬ ‫>>‬ ‫‪px‬‬ ‫;)‪re = real(px); % equivalent to re = mag .* cos(tet‬‬ ‫;)‪im = imag(px); % equivalent to im = mag .* sin(tet‬‬ ‫‪px = re + j*im‬‬ ‫‪= 1 - 4i‬‬ ‫‪2 - 5i‬‬ ‫‪3 - 6i‬‬ ‫81‬ ‫ﻣﺜﺎل3: ﺗﺮاﻧﻬﺎد ﻋﺪد ﻣﺨﺘﻠﻂ‬ ‫'‪>> px‬‬ ‫1000.1 = ‪ans‬‬ ‫0000.2‬ ‫3000.3‬ ‫'.‪>> px‬‬ ‫1000.1 = ‪ans‬‬ ‫0000.2‬ ‫3000.3‬ ‫‪+ 4.0000i‬‬ ‫‪+ 5.0001i‬‬ ‫‪+ 5.9999i‬‬ ‫‪- 4.0000i‬‬ ‫‪- 5.0001i‬‬ ‫‪- 5.9999i‬‬ ‫ﻣﺜﺎل4: ﺑﺮﻧﺎﻣﻪي ﺤﺎﺳﺒﻪ اﻣﭙﺪاﻧﺲ ﻣﺪار ‪ R-L‬ﺳﺮي‬ ‫‪R = 1Ω, L = 1mH, ω =1000 rad/s‬‬ ‫‪% ipd.m‬‬ ‫;0001 = ‪R = 1; L = 1e-3; w‬‬ ‫;‪XL = j*w*L; Z = R + XL‬‬ ‫)‪Z, aZ = abs(Z‬‬ ‫‪>> ipd % run progarm‬‬ ‫‪Z = 1.0000 + 1.0000i‬‬ ‫2414.1 = ‪aZ‬‬ ‫7.2 ﺗﻤﺮﻳﻦ‬ ‫1- ﺑﺎ ﻓﺮﻣﺖﻫﺎي ﻣﺨﺘﻠﻒ ﻣﻘﺪار ‪ rmn ± eps‬را ﻧﻤﺎﻳﺶ دﻫﻴﺪ. 6-‪.rmn = 2.22044604925031e‬‬ ‫2- ﺑﺎ ﻓﺮﻣﺖﻫﺎي ﻣﺨﺘﻠﻒ ﻣﻘﺪار ]1 7-‪ m = [1e6 1e‬را ﻧﻤﺎﻳﺶ دﻫﻴﺪ.‬ ‫3- ﻋﺪد ﭘﻲ را ﺑﺎ اﻧﻮاع 61‪ double, single, int‬در ﺣﺎﻓﻈﻪ ﻧﮕﻪداري ﻛﻨﻴﺪ، ﺳﭙﺲ ﺑﺎ ﻓﺮﻣﺖﻫﺎي‬ ‫ﻣﺨﺘﻠﻒ ﻧﺸﺎن دﻫﻴﺪ. ﻧﺘﺎﻳﺞ را ﺑﺎ )(‪ isa‬اﻣﺘﺤﺎن و ﻫﻢﭼﻨﻴﻦ در ﭘﻨﺠﺮه ﻓﻀﺎي ﻛﺎر ﻣﺸﺎﻫﺪه ﻛﻨﻴﺪ.‬ ‫4- ﺑﺎ ﻧﺤﻮه ﻧﻤﺎﻳﺶ ‪ ،format long‬و ﺑﺎ ﺗﻜﺮار ﺗﻌﻴﻴﻦ ﻛﻨﻴﺪ ‪ n‬ﭼﻪ ﻋﺪد ﺻﺤﻴﺤﻲ ﺑﺎﺷﺪ ﻛﻪ رﻗﻢ ﻳﻚ در اﻋﺪاد‬ ‫ﺑﻌﺪاز ﻣﻤﻴﺰ ﺣﺎﺻﻞِ ﻋﺒﺎرت ‪ 1 + n*eps‬ﻇﺎﻫﺮ ﺷﻮد. ﺑﻪ اﻳﻦ ﺷﻜﻞ: 10000000000000.1‬ ‫5- ﻋﺪد ﮔﻨﮓ‪ e ‬را ﺑﺎ ﻓﺮﻣﻮل )1(‪) e = exp‬ﻃﺮف راﺳﺖ، 1‪ e‬اﺳﺖ( ﺑﻪ دﺳﺖ آورده ﺑﺎ ﻓﺮﻣﺖ ﻛﻮﺗﺎه، ﺑﻠﻨﺪ، و‬ ‫ﻛﺴﺮي ‪ format rational‬ﻧﻤﺎﻳﺶ دﻫﻴﺪ. راﻫﻨﻤﺎ: ‪ e‬ﻳﻚ ﻣﺘﻐﻴﺮ داﺧﻠﻲ ﻧﻴﺴﺖ.‬ ‫6- ﻣﺘﻐﻴﺮ 57869240498876526.53224 = ‪ x‬را ﺑﺎ )‪ single(x‬ﺑﻪ ﻧﻮع ﻳﻜﺎ ﺗﺒﺪﻳﻞ و ﺑﺎ ﻓﺮﻣﺖ‬ ‫ﺑﻠﻨﺪ، ﻛﻮﺗﺎه، و ﺑﺎﻧﻚ ﻧﻤﺎﻳﺶ دﻫﻴﺪ. ﻣﺘﻐﻴﺮ ‪ x‬را ﺗﻘﺴﻴﻢ ﺑﺮ ﺻﻔﺮ ﻛﺮده ﺑﺮاﺑﺮ ‪ y‬ﻗﺮار دﻫﻴﺪ.‬ ‫7- ﻣﺘﻐﻴﺮ ‪ t‬را ﻣﺴﺎوي ﺻﻔﺮ ﺗﻌﺮﻳﻒ ﻛﺮده ‪ f = sin(t)/t‬را ﺑﻪ دﺳﺖ آورﻳﺪ.‬ ‫8- ﻋﻤﻠﻴﺎت آراﻳﻪاي را در ﻣﻮرد ﺑﺮدارﻫﺎي ]8 4 1.2-[ = ‪ a‬و ]2 0 3[ = ‪ b‬اﻣﺘﺤﺎن ﻛﻨﻴﺪ. ﺑﺮدارﻫﺎ را‬ ‫ﺗﺮاﻧﻬﺎد )ﺗﺮاﻧﺴﭙﻮز( و ﻋﻤﻠﻴﺎت را ﺗﻜﺮار ﻛﻨﻴﺪ.‬ ‫9- ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺗﺼﺎدﻓﻲ 4×5 ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ.‬ ‫01- ﻳﻚ ﺑﺮدار ﻋﺪدي ﺑﺎ 41 ﻋﻨﺼﺮ ﺗﺼﺎدﻓﻲ ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ، ﻛﻪ ﺑﺰرﮔﺎي ﻫﺮ ﻋﻀﻮ آن ﺑﻴﻦ 01 ﺗﺎ 001 ﺑﺎﺷﺪ.‬ ‫11- ﺑﺎ )(‪ repmat‬ﻳﻚ ﺑﺮدار ﺑﺎ دهﻫﺰار ﺻﻔﺮ ﺗﺎ ﻧُﻪ ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ.‬ ‫21- ﻓﺎﺻﻠﻪ زﻣﺎﻧﻲ ﺑﻴﻦ ﻧﻮﺷﺘﻦ ‪ tic‬و ‪ toc‬را در ﻛﺎﻣﭙﻴﻮﺗﺮ ﺧﻮدﺗﺎن ﺗﻌﻴﻴﻦ ﻛﻨﻴﺪ.‬ ‫31- ﺗﺎﺑﻊ )10,2002(‪ calendar‬را اﻣﺘﺤﺎن ﻛﻨﻴﺪ.‬ ‫41- ﺗﻮاﺑﻊ ﻣﺜﻠﺜﺎﺗﻲ زاوﻳﻪ 03 درﺟﻪ را ﭘﻴﺪا ﻛﺮده در ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﻧﻤﺎﻳﺶ دﻫﻴﺪ.‬ ‫51- ﺗﻮاﺑﻊ )(‪ round‬و )(‪ fix‬و )(‪ ceil‬و )(‪ floor‬را ﺑﺮاي 7/31 و 7/31- ﺑﻪ دﺳﺖ آورﻳﺪ.‬ ‫61- ﻣﺘﻐﻴﺮ 43.0 = ‪ x‬را ﺑﻪ ﺗﻨﻬﺎﺋﻲ ﺑﻪ ﺻﻮرت ﻳﻚ ﻛﺴﺮ ﻣﺘﻌﺎرﻓﻲ و ﻣﺨﻠﻮﻃﻲ از ﻋﺪد و ﻛﺴﺮ ﻣﺘﻌﺎرﻓﻲ ﻧﺸﺎن دﻫﻴﺪ.‬ ‫91‬ ‫ﻣﺎﺗﺮﻳﺲ ﻫﺎ‬ ‫3 ﻓﺼﻞ ﺳﻪ‬ ‫1.3 راﺑﻄﻪ ﺗﺸﺎﺑﻪ ﻣﺎﺑﻴﻦ ﻣﺎﺗﺮﻳﺲ ﻫﺎ‬ ‫رواﺑﻂ ﻣﺎﺑﻴﻦ ﻣﺎﺗﺮﻳﺲ ﻫﺎ در ﺟﺪول زﻳﺮ آﻣﺪه اﺳﺖ.‬ ‫راﺑﻄﻪ ﺗﺸﺎﺑﻪ ﻣﺎﺑﻴﻦ ﻣﺎﺗﺮﻳﺲ ﻫﺎ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﭼﻨﺪ ﻣﺎﺗﺮﻳﺲ ﺑﺎ ﺗﻌﺪاد ردﻳﻒﻫﺎ و ﺳﺘﻮنﻫﺎي ﻣﺴﺎوي‬ ‫ﻧﺎم‬ ‫ﻫﻢردﻳﻒ- ﻫﻢﺳﺘﻮن )ﻫﻢﺳﺎن(‬ ‫ﻫﻢ ﺳﺘﻮن- ﺑﺎ ردﻳﻒ )ﺿﺮبﭘﺬﻳﺮ( دو ﻣﺎﺗﺮﻳﺲ ﺑﺎ ﺗﻌﺪاد ﺳﺘﻮنﻫﺎي اوﻟﻲ ﻣﺴﺎوي ﺗﻌﺪاد ردﻳﻒﻫﺎي دوﻣﻲ‬ ‫ﭼﻨﺪ ﻣﺎﺗﺮﻳﺲ ﺑﺎ ﺗﻌﺪاد ردﻳﻒﻫﺎ و ﺳﺘﻮنﻫﺎي ﻣﺴﺎوي و ﻣﻘﺪار دراﻳﻪﻫﺎي ﻣﺴﺎوي‬ ‫ﭼﻨﺪ ﻣﺎﺗﺮﻳﺲ ﺑﺎ ﺗﻌﺪاد دراﻳﻪﻫﺎي ﻣﺴﺎوي اﻣﺎ ﺗﻌﺪاد ردﻳﻒﻫﺎ و ﺳﺘﻮنﻫﺎي ﻧﺎﻣﺴﺎوي‬ ‫ﻣﺴﺎوي )ﻳﻜﺴﺎن(‬ ‫ﻣﺘﺴﺎوياﻟﻌﻨﺼﺮ‬ ‫2.3 اﻧﺪﻳﺲ اﻋﻀﺎء ﻣﺎﺗﺮﻳﺲ و واژه ‪ end‬در اﻧﺪﻳﺲ‬ ‫ﻫﺮ ﻋﻨﺼﺮ )ﻋﻀﻮ، دراﻳﻪ( از ﻣﺎﺗﺮﻳﺲ ﺟﺎيﮔﺎه ﻳﺎ اﻧﺪﻳﺴﻲ دارد ﻛﻪ ﺑﺎ آن ﺷﻨﺎﺧﺘﻪ ﻣﻲﺷﻮد. در ﻣﺘﻠﺐ ﺷﻤﺎره ﺟﺎيﮔﺎه ﻳﻚ‬ ‫ﻣﺎﺗﺮﻳﺲ ﺑﻪ ﻧﺎم ‪ M‬ﺑﺎ )1,1(‪ M‬ﺷﺮوع ﻣﻲﺷﻮد.‬ ‫در ﻋﻤﻞ ﻋﻨﺎﺻﺮ ﻣﺎﺗﺮﻳﺲ در ﺣﺎﻓﻈﻪ زﻳﺮ ﻫﻢ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ، ﻟﺬا اﮔﺮ ﺑﺎ ﺗﻚ اﻧﺪﻳﺲ ﺑﻪ آن ﻫﺎ ﻣﺮاﺟﻌﻪ ﺷﻮد، ﺳﺘﻮن ﺑﻪ ﺳﺘﻮن‬ ‫ﺧﻮاﻧﺪه ﻣﻲ ﺷﻮﻧﺪ. اﺻﻮﻻً ﺧﻮاﻧﺪن و ﻧﻮﺷﺘﻦ در ﻣﺎﺗﺮﻳﺲ ﺳﺘﻮن ﺑﻌﺪ ﺳﺘﻮن اﻧﺠﺎم ﻣﻲ ﮔﻴﺮد.‬ ‫ﻋﺒﺎرات )‪ x(r,end‬آﺧﺮﻳﻦ ﻋﻀﻮ ردﻳﻒ ﺷﻤﺎره ‪ ،r‬ﻋﺒﺎرت )‪ x(end,c‬آﺧﺮﻳﻦ ﻋﻀﻮ ﺳﺘﻮن ﺷﻤﺎره ‪ ، c‬و ﻋﺒﺎرت‬ ‫)‪ x(end‬آﺧﺮﻳﻦ ﻋﻀﻮ ﻳﻚ ﻣﺎﺗﺮﻳﺲ را ﺑﺮﻣﻲﮔﺮداﻧﻨﺪ.‬ ‫ﻣﺜﺎل:‬ ‫2 1[ = ‪>> A‬‬ ‫54‬ ‫87‬ ‫,)3,2(‪>> A‬‬ ‫6 = ‪ans‬‬ ‫;3‬ ‫;6‬ ‫]9‬ ‫,)8(‪A‬‬ ‫6 = ‪ans‬‬ ‫)‪A(3,end), A(end,2), A(end‬‬ ‫9 = ‪ans‬‬ ‫8 = ‪ans‬‬ ‫9 = ‪ans‬‬ ‫‪Elementary Matrices‬‬ ‫3.3 ﻣﺎﺗﺮﻳﺲ ﻫﺎي ﭘﺎﻳﻪ‬ ‫ﻣﺎﺗﺮﻳﺲﻫﺎﺋﻲ ﻧﻈﻴﺮ )(‪ zeros(), ones(), rand(), eye‬در ﻣﺘﻠﺐ ﻣﺎﺗﺮﻳﺲ ﭘﺎﻳﻪ ﻧﺎم دارﻧﺪ. راﻫﻨﻤﺎي آنﻫﺎ و‬ ‫ﺑﻌﻀﻲ اﻃﻼﻋﺎت دﻳﮕﺮ ﺑﺎ اﺟﺮاي ‪ help elmat‬روي ﭘﻨﺠﺮه ﻓﺮﻣﺎن ﻧﻤﺎﻳﺶ داده ﻣﻲﺷﻮﻧﺪ.‬ ‫1.3.3 ﻣﺎﺗﺮﻳﺲ ﻳﮕﺎﻧﻲ ‪identity matrix‬‬ ‫دﺳﺘﻮر)‪ eye(n,m‬ﻣﺎﺗﺮﻳﺴﻲ ﺑﺎ ﺑﺎﻻﺗﺮﻳﻦ ﻗﻄﺮ ﻣﺘﺸﻜﻞ از ﻳﻚﻫﺎ و ﺳﺎﻳﺮ ﻋﻨﺎﺻﺮ ﻣﺴﺎوي ﺑﺎ ﺻﻔﺮ اﻳﺠﺎد ﻣﻲﻛﻨﺪ. دﺳﺘﻮر‬ ‫)‪ eye(n‬ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﻳﮕﺎﻧﻲ ﻣﺮﺑﻌﻲ ‪ n × n‬اﻳﺠﺎد ﻣﻲﻛﻨﺪ.‬ ‫ﻣﺜﺎل:‬ ‫)2,3(‪>> eye‬‬ ‫1 = ‪ans‬‬ ‫0‬ ‫0‬ ‫1‬ ‫0‬ ‫0‬ ‫02‬ ‫)2(‪>> x = eye‬‬ ‫1=‪x‬‬ ‫0‬ ‫0‬ ‫1‬ ‫2.3.3 ﻣﺎﺗﺮﻳﺲ ﻫﺎي )(‪ ones‬و )(‪zeros‬‬ ‫دﺳﺘﻮر)‪ ones(n,m‬ﻣﺎﺗﺮﻳﺲ ‪ n × m‬ﺑﺎ ﻋﻨﺎﺻﺮ ﻳﻚ و دﺳﺘﻮر)‪ zeros(n,m‬ﻣﺎﺗﺮﻳﺲ ‪ n × m‬ﺑﺎ ﻋﻨﺎﺻﺮ ﺻﻔﺮ ﻣﻲ-‬ ‫ﺳﺎزﻧﺪ. دﺳﺘﻮرﻫﺎي)‪ ones(n‬و )‪ zeroz(n‬ﻣﺎﺗﺮﻳﺲﻫﺎي ﻣﺮﺑﻌﻲ ‪ n × n‬اﻳﺠﺎد ﻣﻲﻛﻨﻨﺪ.‬ ‫ﻣﺜﺎل:‬ ‫)2(‪>> ones‬‬ ‫1 = ‪ans‬‬ ‫1‬ ‫1‬ ‫1‬ ‫)2,3(‪>> zeros‬‬ ‫0 = ‪ans‬‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫4.3 اﻳﺠﺎد ﺗﻐﻴﻴﺮات ﺑﺮ روي ﻣﺎﺗﺮﻳﺲ‬ ‫1.4.3 اﺳﺘﺨﺮاج ﻗﺴﻤﺖ ﻫﺎﺋﻲ از ﻳﻚ ﻣﺎﺗﺮﻳﺲ‬ ‫ﻋﺒﺎرت )‪ a(:,n‬ﺳﺘﻮن ‪ ، n‬و ﻋﺒﺎرت ):,‪ a(m‬ردﻳﻒ ‪ m‬را ﺑﺮﻣﻲﮔﺮداﻧﻨﺪ.‬ ‫ﺑﺮاي اﺳﺘﺨﺮاج ﻗﺴﻤﺘﻲ از ﻳﻚ ﻣﺎﺗﺮﻳﺲ اﺑﺘﺪا ردﻳﻒﻫﺎ و ﺳﭙﺲ ﺳﺘﻮنﻫﺎي ﻣﺴﺘﺨﺮﺟﻪ از آنردﻳﻒﻫﺎ را ﻣﻲﻧﻮﻳﺴﻴﻢ. ﻣﺜﻼً‬ ‫ﻋﺒﺎرت )3:2,2:1(‪ A‬ﻧﺸﺎن دﻫﻨﺪه ردﻳﻒ1 ﺗﺎ ردﻳﻒ 2 ﻣﺤﺪود ﺑﻴﻦ ﺳﺘﻮن 2 ﺗﺎ ﺳﺘﻮن3 اﺳﺖ.‬ ‫ﻣﺜﺎل 1: اﺳﺘﺨﺮاج ﻳﻚ ردﻳﻒ از ﻣﺎﺗﺮﻳﺲ‬ ‫;]6 5 4 ;3 2 1[ = ‪>> A‬‬ ‫):,1(‪>> A1 = A‬‬ ‫1 = 1‪A‬‬ ‫2‬ ‫3‬ ‫ﻣﺜﺎل 2: اﺳﺘﺨﺮاج ﻳﻚ ﺳﺘﻮن از ﻣﺎﺗﺮﻳﺲ‬ ‫;]6 5 4 ;3 2 1[ = ‪>> A‬‬ ‫)2,:(‪>> A2 = A‬‬ ‫2 = 2‪A‬‬ ‫5‬ ‫ﻣﺜﺎل 3: اﺳﺘﺨﺮاج ﻗﺴﻤﺘﻲ از ﻣﺎﺗﺮﻳﺲ‬ ‫;]6 5 4 ;3 2 1[ = ‪>> A‬‬ ‫ﺳﺘﻮنﻫﺎي 2 و 3 از ردﻳﻒﻫﺎي 1 و 2 را اﺳﺘﺨﺮاج ﻣﻲﻛﻨﺪ‬ ‫)3:2,2:1(‪>> A23 = A‬‬ ‫2 = 32‪A‬‬ ‫3‬ ‫5‬ ‫6‬ ‫2.4.3 ﺗﻐﻴﻴﺮ ﻣﻘﺪار ﻋﻨﺎﺻﺮ ﻣﺎﺗﺮﻳﺲ‬ ‫ﻣﺜﺎل: ﺳﺎﺧﺘﻦ ﻣﺎﺗﺮﻳﺲ از ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﻣﻮﺟﻮد‬ ‫⎤0 0 1⎡‬ ‫⎤7 4 1⎡‬ ‫ﺑﺎ داﺷﺘﻦ ﻣﺎﺗﺮﻳﺲ ⎥8 5 2⎢ = ‪ ، b‬ﻣﺎﺗﺮﻳﺲ ⎥0 0 2⎢‬ ‫⎢ = 1‪ b‬را ﻣﻲ ﺳﺎزﻳﻢ.‬ ‫⎥‬ ‫⎥‬ ‫⎢‬ ‫⎥9 6 3⎢‬ ‫⎥9 6 3⎢‬ ‫⎦‬ ‫⎦‬ ‫⎣‬ ‫⎣‬ ‫اﺑﺘﺪا ﻣﺎﺗﺮﻳﺲ ‪ b‬را ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﻴﻢ )ﺑﺎ اﺳﺘﻔﺎده از ﺗﺮاﻧﻬﺎد ‪ b‬را راﺣﺖﺗﺮ ﺗﻌﺮﻳﻒ ﻛﺮدهاﻳﻢ(.‬ ‫12‬ ‫']9 8 7 ;6 5 4 ;3 2 1[ = ‪>> b‬‬ ‫1 =‪b‬‬ ‫4‬ ‫7‬ ‫2‬ ‫5‬ ‫8‬ ‫3‬ ‫6‬ ‫9‬ ‫ﻣﺎﺗﺮﻳﺲ 1‪ b‬را ﻣﺴﺎوي ‪ b‬و ﺳﭙﺲ ﺳﺘﻮن ﻫﺎي 2و3 از ردﻳﻒ ﻫﺎي 1 و 2 آن را ﻣﺴﺎوي ﻣﺎﺗﺮﻳﺲ ﺻﻔﺮ ﻗﺮار ﻣﻲ دﻫﻴﻢ.:‬ ‫;‪>> b1 = b‬‬ ‫)2(‪>> b1(1:2,2:3) = zeros‬‬ ‫00.1 = 1‪b‬‬ ‫0‬ ‫00.2‬ ‫0‬ ‫00.3‬ ‫00.6‬ ‫0‬ ‫0‬ ‫00.9‬ ‫3.4.3 ﻗﺮار دادن ﻳﻚ ﻣﺎﺗﺮﻳﺲ در ﻣﺎﺗﺮﻳﺲ دﻳﮕﺮ‬ ‫ﻋﺒﺎرت ‪ d(:) = b‬ﻋﻨﺎﺻﺮ ‪ b‬را ﺑﻪ ﺗﺮﺗﻴﺐ ﺳﺘﻮن ﺑﻪ ﺳﺘﻮن در داﺧﻞ ‪ d‬ﺟﺎﺳﺎزي ﻣﻲﻛﻨﺪ. ‪ d‬ﺑﺎﻳﺪ از ﻗﺒﻞ ﻣﻮﺟﻮد و ﺑﺎ ‪b‬‬ ‫ﻣﺘﺴﺎوي اﻟﻌﻨﺼﺮ ﺑﺎﺷﺪ.‬ ‫ﻣﺜﺎل: اﻳﺠﺎد ‪ d‬ﺑﺎ ﺻﻔﺮﻫﺎ و ﺗﺰرﻳﻖ ‪ b‬در آن‬ ‫;)2,3(‪>> d = zeros‬‬ ‫0 =‪d‬‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫=‪b‬‬ ‫1‬ ‫2‬ ‫4‬ ‫5‬ ‫‪>> d(:) = b‬‬ ‫1 =‪d‬‬ ‫5‬ ‫4‬ ‫3‬ ‫2‬ ‫6‬ ‫3‬ ‫6‬ ‫]6 5 4 ;3 2 1[ = ‪b‬‬ ‫4.4.3 ﺑﺮدار ﺗﻬﻲ‬ ‫ﻋﺒﺎرت ][ = ‪ x‬ﺑﺮدار ﺗﻬﻲ را ﺑﻪ ‪ x‬ﻧﺴﺒﺖ ﻣﻲدﻫﺪ. ﺑﺮاي ﺣﺬف ﻳﻚ ﻗﺴﻤﺖ از آراﻳﻪ آن را ﺑﺮاﺑﺮ ﺑﺮدار ﺗﻬﻲ ﻗﺮار ﻣﻲدﻫﻴﻢ‬ ‫ﻣﺜﺎل: ﺣﺬف ﺳﺘﻮن دوم و ردﻳﻒ اول ﻳﻚ ﻣﺎﺗﺮﻳﺲ‬ ‫']9 8 7 ;6 5 4 ;3 2 1[ = ‪>> b‬‬ ‫1 =‪b‬‬ ‫4‬ ‫7‬ ‫2‬ ‫5‬ ‫8‬ ‫3‬ ‫6‬ ‫9‬ ‫][=)2,:(‪>> b‬‬ ‫1 =‪b‬‬ ‫7‬ ‫2‬ ‫8‬ ‫3‬ ‫9‬ ‫][=):,1(‪>> b‬‬ ‫2 =‪b‬‬ ‫8‬ ‫3‬ ‫9‬ ‫5.3 ﻋﻤﻞ ﮔﺮﻫﺎي ﻣﺎﺗﺮﻳﺴﻲ‬ ‫ﻋﻼﺋﻢ ﺿﺮب، ﺗﻘﺴﻴﻢ، و ﺗﻮان، ﺑﺪون ﻧﻘﻄﻪ ﻋﻤﻠﮕﺮﻫﺎي ﻣﺎﺗﺮﻳﺴﻲ ﻫﺴﺘﻨﺪ و ﺗﻌﺎرﻳﻒ ﺧﺎص ﺧﻮد را دارﻧﺪ ﺟﻤﻊ و ﺗﻔﺮﻳﻖ آراﻳﻪ-‬ ‫اي و ﻣﺎﺗﺮﻳﺴﻲ ﻳﻚﺳن ﻫﺴﺘﻨﺪ. ﻋﻤﻠﮕﺮﻫﺎي ﺧﺎص ﻣﺎﺗﺮﻳﺴﻲ ﺑﺮاي دو ﻣﺎﺗﺮﻳﺲ ‪ A,B‬و ﻋﺪد ﺻﺤﻴﺢ ‪ n‬در زﻳﺮ آﻣﺪهاﻧﺪ.‬ ‫22‬ ‫ﻋﻤﻞ ﮔﺮﻫﺎي ﻣﺎﺗﺮﻳﺴﻲ‬ ‫ﻣﻌﻜﻮس‬ ‫1-^‪inv(A) or A‬‬ ‫ﺿﺮب ﺗﻘﺴﻴﻢ راﺳﺖ ﺑﻪ ﭼﭗ ﺗﻘﺴﻴﻢ )ﻣﻌﻤﻮﻟﻲ(‬ ‫‪B/A‬‬ ‫‪A\B‬‬ ‫‪A*B‬‬ ‫ﺗﻮان‬ ‫‪A^n‬‬ ‫1.5.3 ﺿﺮب ﻣﺎﺗﺮﻳﺴﻲ‬ ‫ﺿﺮب ﻣﺎﺗﺮﻳﺴﻲ ﭘﺮﻛﺎرﺑﺮدﺗﺮﻳﻦ ﻋﻤﻞ ﻣﺎﺗﺮﻳﺴﻲ اﺳﺖ. اﮔﺮ ‪ c‬ﺣﺎﺻﻞﺿﺮب ‪ a‬در ‪ b‬ﺑﺎﺷﺪ، ﻋﻨﺎﺻﺮ ردﻳﻒ ﻳﻚ ‪ a‬در ﻋﻨﺎﺻﺮ‬ ‫ﺳﺘﻮن ﻳﻚ ‪ b‬ﺑﻪ ﺗﺮﺗﻴﺐ ﺿﺮب و ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻣﻲﺷﻮﻧﺪ، ﻧﺘﻴﺠﻪ ﻋﻨﺼﺮ )1,1(‪ c‬اﺳﺖ. ﻋﻨﺎﺻﺮ ردﻳﻒ ﻳﻚ ‪ a‬در ﻋﻨﺎﺻﺮ‬ ‫ﺳﺘﻮن دو ‪ b‬ﺑﻪ ﺗﺮﺗﻴﺐ ﺿﺮب و ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻣﻲﺷﻮﻧﺪ، ﻧﺘﻴﺠﻪ ﻋﻨﺼﺮ )2,1(‪ c‬اﺳﺖ. و ﺑﻪ ﻫﻤﻴﻦ ﺗﺮﻧﻴﺐ ﻣﺎﺗﺮﻳﺲ ‪ c‬ﺑﻪ دﺳﺖ‬ ‫ﻣﻲآﻳﺪ. ﺣﺎﺻﻞﺿﺮب دو ﻣﺎﺗﺮﻳﺲ در ﺻﻮرﺗﻲ ﺑﺪون ﺧﻄﺎ ﺑﻪ دﺳﺖ ﻣﻲآﻳﺪ ﻛﻪ ﺳﺘﻮنﻫﺎي ‪ a‬ﺑﺎ ﺳﻄﺮﻫﺎي ‪ b‬ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ. اﮔﺮ‬ ‫ﺑﺨﻮاﻫﻴﻢ ‪ a * b‬و ‪ b * a‬ﻫﺮ دو ﻣﻌﻨﻲدار ﺑﺎﺷﻨﺪ، ﻋﻼوه ﺑﺮ اﻳﻦﻛﻪ ﺑﺎﻳﺪ ﺳﺘﻮنﻫﺎي ‪ a‬ﺑﺎ ﺳﻄﺮﻫﺎي ‪ b‬ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ، دو‬ ‫ﻣﺎﺗﺮﻳﺲ ﺑﺎﻳﺪ ﻣﺘﺴﺎوياﻟﻌﻨﺼﺮ ﻫﻢ ﺑﺎﺷﻨﺪ، وﮔﺮﻧﻪ ﺑﺎ ﭘﻴﻐﺎم ﺧﻄﺎ ﻣﻮاﺟﻪ ﺧﻮاﻫﻴﻢ ﺷﺪ. اﮔﺮ ‪ a * b‬و ‪ b * a‬ﻫﺮ دو ﻣﻌﻨﻲدار‬ ‫ﺑﺎﺷﻨﺪ از ﺗﻌﺮﻳﻒ ﺿﺮب ﭘﻴﺪاﺳﺖ ﻛﻪ ‪ a * b‬ﻣﺴﺎوي ‪ b * a‬ﻧﺨﻮاﻫﺪ ﺑﻮد.‬ ‫ﻣﺜﺎل 1: ﺣﺎﺻﻞ اﺳﻜﺎﻟﺮ‬ ‫>>‬ ‫>>‬ ‫>>‬ ‫‪cm‬‬ ‫;]8 4 2[ = ‪am‬‬ ‫;]2 ;2 ;3[ = ‪bm‬‬ ‫‪cm = am * bm‬‬ ‫03 =‬ ‫ﻣﺜﺎل 2: ﺣﺎﺻﻞ ﻣﺎﺗﺮﻳﺴﻲ‬ ‫;]3- 0 3 ;6- 2 1[ = ‪>> a‬‬ ‫;]8- 6 2 ;4 1 0 ;6 5 2[ = ‪>> b‬‬ ‫‪>> c = a * b‬‬ ‫01- = ‪c‬‬ ‫92-‬ ‫26‬ ‫0‬ ‫3-‬ ‫24‬ ‫ﻣﺜﺎل 3: ﺧﻄﺎ در ﻧﺘﻴﺠﻪ ﺟﺎﺑﺠﺎﺋﻲ ﻋﻮاﻣﻞ ﺿﺮب‬ ‫‪>> ci = b * a‬‬ ‫* >== ‪??? Error using‬‬ ‫.‪Inner matrix dimensions must agree‬‬ ‫ﻣﺜﺎل 4: دو ﺟﻮاب ﻣﺨﺘﻠﻒ در ﻧﺘﻴﺠﻪ ﺟﺎﺑﺠﺎﺋﻲ ﻋﻮاﻣﻞ ﺿﺮب‬ ‫;]3- 0 3 ;6- 2 1[ = ‪>> a‬‬ ‫;]6 2 ; 1 0 ; 5 2[ = ‪>> b‬‬ ‫‪>> a * b‬‬ ‫01- = ‪ans‬‬ ‫92-‬ ‫0‬ ‫3-‬ ‫‪>> b * a‬‬ ‫71 = ‪ans‬‬ ‫4‬ ‫72-‬ ‫3‬ ‫0‬ ‫3-‬ ‫02‬ ‫4‬ ‫:03-‬ ‫2.5.3 ﺗﻘﺴﻴﻢ راﺳﺖ ﺑﻪ ﭼﭗ‬ ‫ﻋﺒﺎرت ﻣﺎﺗﺮﻳﺴﻲ ‪ A\B‬ﻣﻌﺎدل )‪ (A^-1 * B‬ﻳﺎ ‪ inv(A)*B‬اﺳﺖ. ﻋﺒﺎرت ‪ B/A‬ﻣﻌﺎدل)‪ B*inv(A‬ﻳﺎ‬ ‫)1-^‪ (B * A‬اﺳﺖ. ﭼﻮن ﺟﺎ ﺑﻪ ﺟﺎﺋﻲ ﻋﻮاﻣﻞ ﺿﺮب ﻣﺎﺗﺮﻳﺴﻲ ﻣﺠﺎز ﻧﻴﺴﺖ ‪ A\B‬ﺑﺎ ‪ B/A‬ﻓﺮق دارد.‬ ‫ﻣﺜﺎل: ﺣﻞ ﻣﻌﺎدﻟﻪ دو ﻣﺠﻬﻮﻟﻲ ﺑﺎ اﺳﺘﻔﺎده از ﺗﻘﺴﻴﻢ راﺳﺖ ﺑﻪ ﭼﭗ‬ ‫2 = 2 ‪x1 + 2x‬‬ ‫6 = 2 ‪-x1 + 3x‬‬ ‫32‬ ‫ﻛﻪ ﻓﺮم ﻣﺎﺗﺮﻳﺴﻲ آن اﻳﻦ ﮔﻮﻧﻪ اﺳﺖ:‬ ‫‪A*x=B‬‬ ‫ﺟﻮاب دو ﻣﻌﺎدﻟﻪ دو ﻣﺠﻬﻮﻟﻲ ﺑﻪ اﻳﻦ ﺷﻜﻞ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮد:‬ ‫‪x = inv(A)*B or‬‬ ‫‪x = A\B‬‬ ‫ﺿﺮاﺋﺐ و رﻳﺸﻪ ﻫﺎ در ﺟﺒﺮ ﺑﻪ اﻳﻦ ﺻﻮرت ﻧﺸﺎن داده ﻣﻲ ﺷﻮﻧﺪ:‬ ‫=‪A‬‬ ‫21‬ ‫3 1‐‬ ‫=‪B‬‬ ‫2‬ ‫6‬ ‫1‪x‬‬ ‫‪x= x‬‬ ‫2‬ ‫ﺑﻪ ‪ MATLAB‬ﻣﻲ روﻳﻢ:‬ ‫;]3 1- ;2 1[ = ‪>> A‬‬ ‫;]6 ;2[ = ‪>> B‬‬ ‫‪>> x = A\B % equivalent to x = inv(A) * B‬‬ ‫0002.1- = ‪x‬‬ ‫0006.1‬ ‫3.5.3 ﺗﻮان ﻣﺎﺗﺮﻳﺴﻲ‬ ‫ﻣﻘﺪار ‪ A^n‬ﻓﻘﻂ اﮔﺮ ‪ A‬ﻣﺎﺗﺮﻳﺲ ﻣﺮﺑﻌﻲ و ‪ n‬ﻋﺪد ﺻﺤﻴﺢ ﻣﺜﺒﺖ ﺑﺎﺷﻨﺪ، ﺗﻌﺮﻳﻒ ﻣﻲ ﺷﻮد. 3^‪ A‬ﻣﻌﺎدل اﺳﺖ ﺑﺎ ‪ .A*A*A‬ﻳﺎ‬ ‫‪. A^2 * A‬‬ ‫ﻣﺜﺎل:‬ ‫]3 1-;2 1[ = ‪>> A‬‬ ‫1 =‪A‬‬ ‫2‬ ‫1-‬ ‫3‬ ‫‪>> Asq = A^2 % equivalent to A*A‬‬ ‫1- = ‪Asq‬‬ ‫8‬ ‫4-‬ ‫7‬ ‫2^.‪>> sqA = A‬‬ ‫1 = ‪sqA‬‬ ‫4‬ ‫1‬ ‫9‬ ‫3^‪>> A‬‬ ‫9- = ‪ans‬‬ ‫22‬ ‫11-‬ ‫31‬ ‫4.5.3 دﺗﺮﻣﻴﻨﺎن ﻣﺎﺗﺮﻳﺲ ‪Matrix Determinant‬‬ ‫دﺗﺮﻣﻴﻨﺎن ﻣﺎﺗﺮﻳﺲ ﻣﺮﺑﻌﻲ ‪ A‬ﺑﺎ دﺳﺘﻮر)‪ det(A‬ﺑﻪ دﺳﺖ ﻣﻲ آﻳﺪ.‬ ‫ﻣﺜﺎل:‬ ‫;]3 1-;2 1[ = ‪>> A‬‬ ‫)‪>> D = det(A‬‬ ‫5=‪D‬‬ ‫5.5.3 ﺗﻮاﺑﻌﻲ ﻛﻪ ﺑﻪ روي ﻋﻨﺎﺻﺮ ﻣﺎﺗﺮﻳﺲ ﻋﻤﻞ ﻣﻲﻛﻨﻨﺪ‬ ‫ﺑﻌﻀﻲ از ﺗﻮاﺑﻊ ﻣﺎﻧﻨﺪ)(‪ sum(),prod‬ﺑﺮروي ﺳﺘﻮن ﻫﺎي ﻣﺎﺗﺮﻳﺲ ﻋﻤﻞ ﻣﻲﻛﻨﻨﺪ. اوﻟﻲ ﺣﺎﺻﻞ ﺿﺮب و دوﻣﻲ ﺣﺎﺻﻞ‬ ‫ﺟﻤﻊ ﺳﺘﻮن ﻫﺎ را ﺑﻪ دﺳﺖ ﻣﻲ دﻫﻨﺪ.‬ ‫ﻣﺜﺎل:‬ ‫;2 1 0[ = ‪X‬‬ ‫;5 4 3‬ ‫;]8 7 6‬ ‫)‪>> sum(X‬‬ ‫42‬ ‫9 = ‪ans‬‬ ‫21‬ ‫)‪>> prod(X‬‬ ‫0 = ‪ans‬‬ ‫82‬ ‫51‬ ‫08‬ ‫6.5.3 ﻣﺎﺗﺮﻳﺲ ﺳﻪ ﺑﻌﺪي )ﻓﻀﺎﺋﻲ(‬ ‫ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺳﻪ ﺑﻌﺪيِ ‪ m × n × p‬داراي ‪ p‬ﺻﻔﺤﻪ اﺳﺖ ﻛﻪ ﻫﺮ ﺻﻔﺤﻪ ﻳﻚ ﻣﺎﺗﺮﻳﺲ دو ﺑﻌﺪي ‪ m × n‬اﺳﺖ.‬ ‫اﻧﺘﺨﺎب ﻣﻘﺎدﻳﺮ ‪ m, n, p‬دلﺧﻮاه اﺳﺖ، اﻣﺎ ﺑﺎﻳﺪ دﻗﺖ ﻛﺮد ﻛﻪ ‪ n‬و ‪ m‬ﺑﺮاي ﺗﻤﺎﻣﻲ ﺻﻔﺤﺎت ﻳﻜﺴﺎن ﺑﺎﺷﻨﺪ. در ﺷﻜﻞ زﻳﺮ‬ ‫ﺷﻤﺎي ﻓﻀﺎﺋﻲ ﻣﺎﺗﺮﻳﺲ ‪ E‬ﻧﺸﺎن داده ﺷﺪه ﻛﻪ در آن 4 = ‪ p‬اﺳﺖ:‬ ‫‪D‬‬ ‫‪C‬‬ ‫‪B‬‬ ‫‪A‬‬ ‫‪←E‬‬ ‫ﺻﻔﺤﺎت 1، 2، 3 و 4 ﻣﺎﺗﺮﻳﺲ ﻓﻀﺎﺋﻲ ‪ E‬ﺑﻪ اﻳﻦ ﺻﻮرت ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﻧﺪ:‬ ‫)1,:,:(‪E‬‬ ‫)2,:,:(‪E‬‬ ‫)3,:,:(‪E‬‬ ‫)4,:,:(‪E‬‬ ‫=‬ ‫=‬ ‫=‬ ‫=‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪D‬‬ ‫‪ A‬و ‪ B‬و ‪ C‬و ‪ D‬ﻣﺎﺗﺮﻳﺲﻫﺎي دو ﺑﻌﺪي ﻫﺴﺘﻨﺪ ﻛﻪ ﻗﺒﻼٌ ﺗﻌﺮﻳﻒ ﺷﺪهاﻧﺪ.‬ ‫در زﺑﺎن ﻣﺘﻠﺐ ﺗﻌﺮﻳﻒ ﺻﻔﺤﻪي ‪n‬ام از ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺳﻪ ﺑﻌﺪي ﺑﻪ ﻧﺎم ‪ E‬ﺑﻪﺻﻮرت ‪ E(:,:,n) = M‬اﺳﺖ. ﺻﻔﺤﻪ-‬ ‫ﻫﺎي ﺗﺸﻜﻴﻞ دﻫﻨﺪه ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﻓﻀﺎﺋﻲ ﺑﺎﻳﺪ ﻫﻢﺳﺎن )ﻫﻢردﻳﻒ و ﻫﻢﺳﺘﻮن( ﺑﺎﺷﻨﺪ.)‪ size(E‬ﺗﻌﺪاد ردﻳﻒ، ﺳﺘﻮن، و‬ ‫ﺻﻔﺤﻪﻫﺎي ﻣﺎﺗﺮﻳﺲ ﻓﻀﺎﺋﻲ را ﻧﺸﺎن ﻣﻲدﻫﺪ. ﻋﺒﺎرت ):(‪ E‬ﻳﻚ ﺑﺮدار ﺗﻚﺳﺘﻮﻧﻲ ﻣﺘﺸﻜﻞ از ﺗﻤﺎم ﻋﻨﺎﺻﺮ ﻣﺎﺗﺮﻳﺲ ﻓﻀﺎﺋﻲ‬ ‫اﻳﺠﺎد ﻣﻲﻛﻨﺪ. ﻋﺒﺎرت ):,:(‪ E‬ﻳﻚ ﻣﺎﺗﺮﻳﺲ دو ﺑﻌﺪي ﻣﺘﺸﻜﻞ از ﻣﺎﺗﺮﻳﺲﻫﺎي ﺳﺎزﻧﺪهي ‪ E‬اﻳﺠﺎد ﻣﻲﻛﻨﺪ.‬ ‫ﻣﺜﺎل 1: اﻳﺠﺎد ﻣﺎﺗﺮﻳﺲ ﻓﻀﺎﺋﻲ ﺑﺎ ﭼﻬﺎر ﺻﻔﺤﻪ و ﻧﻤﺎﻳﺶ ﺗﻌﺪاد ردﻳﻒ و ﺳﺘﻮنِ ﻫﺮ ﺻﻔﺤﻪ، و ﺗﻌﺪاد ﺻﻔﺤﻪﻫﺎو ﺑ‪‬ﻌﺪ آن‬ ‫;]9- 3.31 ;6.7 61 ;5- 2[ = ‪>> A‬‬ ‫;] 4.1 5 ;3.7 6 ;2.5- 2-[ = ‪>> B‬‬ ‫;] 4.1 55.1 ;3 7 ; 2 2-[ = ‪>> C‬‬ ‫;] 4.1 5.5 ;03 3.7 ; 21 2.2-[ = ‪>> D‬‬ ‫;‪>> E(:,:,1) = A‬‬ ‫;‪>> E(:,:,2) = B‬‬ ‫;‪>> E(:,:,3) = C‬‬ ‫‪>> E(:,:,4) = D‬‬ ‫0000.2 = )1,:,:(‪E‬‬ ‫0000.5-‬ ‫0000.61‬ ‫0006.7‬ ‫0003.31‬ ‫0000.9-‬ ‫0000.2- = )2,:,:(‪E‬‬ ‫0002.5-‬ ‫0000.6‬ ‫0003.7‬ ‫0000.5‬ ‫0004.1‬ ‫0000.2- = )3,:,:(‪E‬‬ ‫0000.2‬ ‫0000.7‬ ‫0000.3‬ ‫0055.1‬ ‫0004.1‬ ‫0002.2- = )4,:,:(‪E‬‬ ‫0000.21‬ ‫0003.7‬ ‫0000.03‬ ‫0005.5‬ ‫0004.1‬ ‫52‬ ‫))‪>> size(E), ndims(E), length(size(E‬‬ ‫3 = ‪ans‬‬ ‫2‬ ‫4‬ ‫3 = ‪ans‬‬ ‫3 = ‪ans‬‬ ‫ﻣﺜﺎل 2: ﻣﺎﺗﺮﻳﺲ ﺗﺼﺎدﻓﻲ دو ﺻﻔﺤﻪاي‬ ‫)2,3,2(‪>> B = rand‬‬ ‫8129.0 = )1,:,:(‪B‬‬ ‫2837.0‬ ‫3014.0 = )2,:,:(‪B‬‬ ‫6398.0‬ ‫3671.0‬ ‫7504.0‬ ‫9750.0‬ ‫9253.0‬ ‫5539.0‬ ‫9619.0‬ ‫2318.0‬ ‫9900.0‬ ‫ﺗﺎﺑﻊ )‪ rand(m,n,p‬ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺗﺼﺎدﻓﻲ ‪ p‬ﺻﻔﺤﻪاي ﺑﺎ ﺻﻔﺤﺎﺗﻲ داراي ‪ m‬ردﻳﻒ و ‪ n‬ﺳﺘﻮن ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﺪ.‬ ‫6.3 ﻣﺎﺗﺮﻳﺲ ﻫﺎي ﻧﻤﻮﻧﻪ‬ ‫1.6.3 ﻣﺎﺗﺮﻳﺲ ﺟﺎدوﺋﻲ‬ ‫دﺳﺘﻮر)‪ magic(n‬ﻳﻚ ﻣﺮﺑﻊ ﺟﺎدوﺋﻲ ‪ n*n‬ﻣﻲﺳﺎزد. ﺧﺎﺻﻴﺖ ﻣﺮﺑﻊ ﺟﺎدوﺋﻲ اﻳﻦ اﺳﺖ ﻛﻪ ﺣﺎﺻﻞﺟﻤﻊ ﻋﻨﺎﺻﺮ آن در‬ ‫ﻃﻮلِ ردﻳﻒ، ﻗﻄﺮ، و ﺳﺘﻮن ﺑﺮاﺑﺮﻧﺪ.‬ ‫ﻣﺜﺎل:‬ ‫ﻳﻚ ﻣﺮﺑﻊ ﺟﺎدوﺋﻲ 3×3 ﺑﻪ ﻧﺎم ‪ Mg‬ﺑﺴﺎزﻳﺪ. ﺑﺎ ﺗﻜﺮار ‪ Mg‬ﻳﻚ ﻣﺎﺗﺮﻳﺲ3×6 ﺑﻪ ﻧﺎم ‪ Mgr‬ﺑﺴﺎزﻳﺪ.‬ ‫)3(‪>> Mg = magic‬‬ ‫8 = ‪Mg‬‬ ‫1‬ ‫6‬ ‫3‬ ‫5‬ ‫7‬ ‫4‬ ‫9‬ ‫2‬ ‫)1,2,‪>> Mgr = repmat(Mg‬‬ ‫8 = ‪Mgr‬‬ ‫1‬ ‫6‬ ‫3‬ ‫5‬ ‫7‬ ‫4‬ ‫9‬ ‫2‬ ‫8‬ ‫1‬ ‫6‬ ‫3‬ ‫5‬ ‫7‬ ‫4‬ ‫9‬ ‫2‬ ‫ﻣﺎﺗﺮﻳﺲ ‪ Mgr‬ﻳﻚ ﻣﺮﺑﻊ ﺟﺎدوﺋﻲ ﻧﻴﺴﺖ‬ ‫‪Vector‬‬ ‫7.3 ﺑﺮدار‬ ‫1.7.3 ﻋﻤﻠﮕﺮ ﻛﺎﻟﻦ‬ ‫ﻋﻤﻠﮕﺮ ﻛﺎﻟﻦ در ﻣﺘﻠﺐ ﺑﺮاي ﺗﻌﻴﻴﻦ داﻣﻨﻪ ‪ range‬و ﮔﺎم ‪ step‬ﺑﺮدار ﺑﻪ ﻛﺎر ﻣﻲرود. ﮔﺎم ﭘﻴﺶﻓﺮض ﻛﻪ ﺑﺪون ذﻛﺮ ﮔﺎم‬ ‫ﻣﻠﺤﻮظ ﻣﻲﺷﻮد 1 اﺳﺖ. اﮔﺮ ﺣﺪ ﺑﺎﻻﺋﻲ ﻛﻮﭼﻚﺗﺮ از ﺣﺪ ﭘﺎﺋﻴﻨﻲ ﺑﺎﺷﺪ از ﮔﺎم ﭘﻴﺶﻓﺮض ﻧﻤﻲﺗﻮان اﺳﺘﻔﺎده ﻛﺮد و ﺑﺎﻳﺪ ﮔﺎم‬ ‫ﻣﻨﻔﻲ ﻟﺤﺎظ ﻛﺮد.‬ ‫ﻣﺜﺎل ﻫﺎ:‬ ‫5:1 = ‪>> x‬‬ ‫1=‪x‬‬ ‫2‬ ‫3‬ ‫4‬ ‫5‬ ‫5-:2 = ‪>> x‬‬ ‫0-‪x = Empty matrix: 1-by‬‬ ‫5-:1-:2 = ‪>> x‬‬ ‫2=‪x‬‬ ‫1‬ ‫0‬ ‫1-‬ ‫1 :5.0 :1- = ‪>> x‬‬ ‫2-‬ ‫3-‬ ‫4-‬ ‫5-‬ ‫62‬ ‫0000.1- = ‪x‬‬ ‫0005.0-‬ ‫0‬ ‫0005.0‬ ‫0000.1‬ ‫2.7.3 ﺗﺎﺑﻊ )(‪linspace‬‬ ‫ﺗﺎﺑﻊ )‪ linspace(m,n,p‬ﺗﻌﺪاد ‪ p‬ﻋﻨﺼﺮ ﺑﻴﻦ اﻋﺪاد ‪ m‬و ‪ n‬ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﺪ. ﭘﻴﺶﻓﺮض ‪ p‬ﻳﻚﺻﺪ ﻋﻨﺼﺮ اﺳﺖ.‬ ‫ﻣﺜﺎل: ده ﻋﺪد ﺑﻴﻦ ﺻﻔﺮ و ‪ pi‬و ﺗﺒﺪﻳﻞ آن ﻫﺎ ﺑﻪ درﺟﻪ‬ ‫‪>> format bank‬‬ ‫)01,‪>> x = linspace(0,pi‬‬ ‫04.1 50.1 07.0 53.0 0 = ‪x‬‬ ‫57.1‬ ‫41.3 97.2 44.2 90.2‬ ‫‪>> dgx = x * 180/pi‬‬ ‫00.081 00.061 00.041 00.021 00.001 00.08 00.06 00.04 00.02 0 = ‪dgx‬‬ ‫3.7.3 ﻛﺎرﺑﺮد ﻳﻚ ﺑﺮدار در ﺗﻌﺮﻳﻒ ﺑﺮدار دﻳﮕﺮ‬ ‫ﻣﺜﺎل 1:‬ ‫;]5.4- 3 2[ = ‪>> a‬‬ ‫;]5.0 3 2.2-[ = ‪>> b‬‬ ‫]‪>> c = [a b‬‬ ‫00.2 = ‪c‬‬ ‫00.3‬ ‫05.4-‬ ‫02.2-‬ ‫00.3‬ ‫05.0‬ ‫‪ a‬و ‪ b‬ﺑﺎﻳﺪ ﻫﻢردﻳﻒ ﻳﺎ ﻫﻢﺳﺘﻮن ﺑﺎﺷﻨﺪ‬ ‫][ = )2(‪>> c‬‬ ‫0000.2 = ‪c‬‬ ‫0005.4-‬ ‫0002.2-‬ ‫0000.3‬ ‫0005.0‬ ‫ﻣﺜﺎل 2: ﻣﺮاﺟﻌﻪ ﺑﻪ ﻋﻨﺎﺻﺮ ﺑﺮدار ﺑﺎ ﭼﻨﺪ روش‬ ‫‪>> x = 0:3:23 % 23 won't be included‬‬ ‫0=‪x‬‬ ‫3‬ ‫6‬ ‫9‬ ‫21‬ ‫51‬ ‫)3(‪>> x(1), x‬‬ ‫0 = ‪ans‬‬ ‫6 = ‪ans‬‬ ‫)4:2(‪>> x‬‬ ‫3 = ‪ans‬‬ ‫6‬ ‫9‬ ‫)8:2:1(‪>> x‬‬ ‫0 = ‪ans‬‬ ‫6‬ ‫21‬ ‫81‬ ‫)]8 5 1[(‪>> x‬‬ ‫0 = ‪ans‬‬ ‫21‬ ‫12‬ ‫7:1 = ‪>> x‬‬ ‫1=‪x‬‬ ‫2‬ ‫3‬ ‫][ = )]7 2 1[(‪>> x‬‬ ‫3=‪x‬‬ ‫4‬ ‫5‬ ‫81‬ ‫12‬ ‫ﻣﺜﺎل 3: ﺣﺬف ﻋﻨﺎﺻﺮ اول، دوم، و ﻫﻔﺘﻢ ﺑﺮدار‬ ‫4‬ ‫6‬ ‫5‬ ‫6‬ ‫7‬ ‫8.3 ﺑﺮدارﻫﺎي ﻣﻨﻄﻘﻲ‬ ‫ﻋﻨﺎﺻﺮ ﺑﺮدار ﻣﻨﻄﻘﻲ، ﻣﺠﻤﻮﻋﻪاي از ﺻﻔﺮ و ﻳﻚﻫﺎي ﻣﻨﻄﻘﻲ ﻫﺴﺘﻨﺪ. ﺻﻔﺮ و ﻳﻚ ﻣﻨﻄﻘﻲ از ﻟﺤﺎظ ﻧﻮع ﺑﺎ ﺻﻔﺮ و ﻳﻚ ﻋﺪدي‬ ‫ﻓﺮق دارﻧﺪ. ﻣﺜﺎلﻫﺎي زﻳﺮ اﻳﻦ ﻣﻮرد را ﺗﻮﺿﻴﺢ ﻣﻲدﻫﻨﺪ. ﺑﺮاي اﻃﻼع ﺑﻴﺸﺘﺮ‪ help logical‬را اﺟﺮا ﻛﻨﻴﺪ.‬ ‫1.8.3 ﺗﺒﺪﻳﻞ ﺑﺮدار ﻋﺪدي ﺑﻪ ﻣﻨﻄﻘﻲ ﺑﺎ ﺗﺎﺑﻊ )(‪logical‬‬ ‫ﺗﺎﺑﻊ )(‪ ، logical‬ﻳﻚ ﺑﺮدار ﺑﺎ اﻋﻀﺎء ﻋﺪدي را ﺑﻪ ﻳﻚ ﺑﺮدار ﺑﺎ اﻋﻀﺎء ﺻﻔﺮ و ﻳﻚ‪ ‬ﻣﻨﻄﻘﻲ ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ. ﻣﺘﻐﻴﺮ ﻣﻨﻄﻘﻲ‬ ‫ﻓﻘﻂ دو ﻣﻘﺪار درﺳﺘﻲ )ﻣﻨﻄﻖ ﻳﻚ( و ﻧﺎدرﺳﺘﻲ )ﻣﻨﻄﻖ ﺻﻔﺮ( را ﻣﻲﮔﻴﺮد، ﻛﻪ از ﻟﺤﺎظ ﻧﻮع ‪ type‬ﺑﺎ 0 و 1 ﻋﺪدي ﻣﺘﻔﺎوت‬ ‫72‬ ‫ﻫﺴﺘﻨﺪ. ﻣﻘﺎدﻳﺮ ﻣﻨﻄﻘﻲ ﻳﻚ ﺑﺎﻳﺖ از ﺣﺎﻓﻈﻪ را اﺷﻐﺎل ﻣﻲﻛﻨﻨﺪ، در ﺣﺎﻟﻲﻛﻪ ﻣﻘﺎدﻳﺮ ﻋﺪدي )از ﻧﻮع ‪ double‬ﻛﻪ ﭘﻴﺶﻓﺮض‬ ‫ﻣﺘﻠﺐ اﺳﺖ( ﻫﺸﺖ ﺑﺎﻳﺖ ﺟﺎ ﻣﻲﮔﻴﺮﻧﺪ. اﮔﺮﭼﻪ آراﻳﻪﻫﺎي ﻋﺪدي ﺑﺎ اﻋﻀﺎء ﻏﻴﺮ از ﺻﻔﺮ و ﻳﻚ را ﻣﻲﺗﻮان ﺑﻪ آراﻳﻪ ﻣﻨﻄﻘﻲ‬ ‫ﺗﺒﺪﻳﻞ ﻛﺮد، اﻣﺎ ﺗﻮﺻﻴﻪ ﻣﻲﺷﻮد ﻓﻘﻂ آراﻳﻪﻫﺎﺋﻲ ﺑﺎ اﻋﻀﺎء ﺻﻔﺮ و ﻳﻚ‪ ‬ﻋﺪدي ﺑﻪ آراﻳﻪ ﻣﻨﻄﻘﻲ ﺗﺒﺪﻳﻞ ﺷﻮﻧﺪ. ﻣﻨﻄﻘﻲ ﺑﻮدن ﻳﻚ‬ ‫آراﻳﻪ ﺑﺎ ﺗﺎﺑﻊ )(‪ islogical‬اﻣﺘﺤﺎن ﻣﻲﺷﻮد. ﺗﻮاﺑﻌﻲ ﻛﻪ ﺻﺤ‪‬ﺖ ﻳﺎ ﺳ‪‬ﻘﻢِ اﻣﺮي را اﻣﺘﺤﺎن ﻣﻲﻛﻨﻨﺪ، در ﺻﻮرت ﺻﺤﺖ،‬ ‫ﻣﻨﻄﻖ ﻳﻚ و در ﺻﻮرت ﻛﺬب، ﻣﻨﻄﻖ ﺻﻔﺮ ﺑﺮﻣﻲﮔﺮداﻧﻨﺪ. ﻣﻌﻤﻮﻻٌ اﻳﻦ ﮔﻮﻧﻪ ﺗﻮاﺑﻊ ﺑﺎ ...‪ is‬ﺷﺮوع ﻣﻲﺷﻮﻧﺪ.‬ ‫ﻣﺜﺎل 1: اﻣﺘﺤﺎن ﻳﻚ ﺑﺮدار ﻋﺪديِ ﺻﻔﺮ و ﻳﻜﻲ و ﺳﺎﺧﺘﻦ ﺑﺮدار ﻣﻨﻄﻘﻲ ﺑﺎ آن‬ ‫1[ = ‪>> oz‬‬ ‫0‬ ‫1‬ ‫1‬ ‫0‬ ‫0‬ ‫‪>> islogical(oz) % oz is not logical‬‬ ‫0 = ‪ans‬‬ ‫0‬ ‫;]1‬ ‫ﻣﻘﺎدﻳﺮ ﺑﺮدار ‪ oz‬ﻳﻚ وﺻﻔﺮ ﻋﺪدي ﻫﺴﺘﻨﺪ.‬ ‫)‪>> ozL = logical(oz‬‬ ‫= ‪ozL‬‬ ‫1‬ ‫0‬ ‫1‬ ‫1‬ ‫0‬ ‫‪>> islogical(ozL)% ozL is logical‬‬ ‫1 = ‪ans‬‬ ‫0‬ ‫0‬ ‫1‬ ‫اﮔﺮﭼﻪ ﻣﻘﺎدﻳﺮ دو ﺑﺮدار ‪ oz‬و ‪ ozL‬ﺷﺒﻴﻪ ﻫﺴﺘﻨﺪ اﻣﺎ ﻧﻮع آنﻫﺎ ﻣﺘﻔﺎوت اﺳﺖ. ‪ Workspace‬را ﺑﺒﻴﻨﻴﺪ.‬ ‫2.8.3 ﺣﺬف ﺑﻌﻀﻲ ﻋﻨﺎﺻﺮ آراﻳﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺑﺮدار ﻣﻨﻄﻘﻲ‬ ‫اﮔﺮ ﺑﺮدار ﻣﻨﻄﻘﻲ را اﻧﺪﻳﺲ ﺑﺮدار ﻋﺪدي ﻗﺮار دﻫﻴﻢ )اﻧﺪﻳﺲﮔﺬاري ﻣﻨﻄﻘﻲ ‪ ( Logical Indexing‬ﻓﻘﻂ ﻋﻨﺎﺻﺮ‬ ‫ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻳﻚﻫﺎي ﻣﻨﻄﻘﻲ ﺑﺎﻗﻲ ﻣﻲﻣﺎﻧﻨﺪ. ﻋﻨﺎﺻﺮ ﺑﺮدار اﻧﺪﻳﺲ ﻣﻲﺗﻮاﻧﺪ از ﻋﻨﺎﺻﺮ ﺑﺮدار ﻋﺪدي ﻛﻢﺗﺮ ﺑﺎﺷﺪ، اﻣﺎ ﺑﻴﺶﺗﺮ ﻧﻤﻲ-‬ ‫ﺗﻮاﻧﺪ ﺑﺎﺷﺪ.‬ ‫ﻣﺜﺎل 1: ﺣﺬف ﭼﻨﺪ ﻋﻨﺼﺮ‬ ‫8 6 5 4 2[ = ‪>> Li‬‬ ‫1[(‪>> Lg = logical‬‬ ‫% )‪>> LiEv = Li(Lg‬‬ ‫2 = ‪LiEv‬‬ ‫4‬ ‫;]21 11 01‬ ‫;)]1 0 1 1 1 0 1‬ ‫‪Logical Indexing‬‬ ‫6‬ ‫8‬ ‫01‬ ‫21‬ ‫ﻣﺜﺎل 2: ﻧﮕﻪ داري ﭼﻨﺪ ﻋﻨﺼﺮ‬ ‫;]21 11 01 8 6 5 4 2[ = ‪>> Li‬‬ ‫;)]1 1 1[(‪>> Lg = logical‬‬ ‫)‪>> LiEv = Li(Lg‬‬ ‫2 = ‪LiEv‬‬ ‫4‬ ‫5‬ ‫3.8.3 ﺿﺮب ﺑﺮدار ﻋﺪدي در ﺑﺮدار ﻣﻨﻄﻘﻲ‬ ‫ﺑﺮاي ﺿﺮب ﻋﻨﺼﺮ ﺑﻪ ﻋﻨﺼﺮ، ﻋﻼﻣﺖ ﺿﺮب آراﻳﻪاي *. ﺑﻪ ﻛﺎر ﻣﻲرود، و دو آراﻳﻪ ﺑﺎﻳﺪ ﻫﻤﺴﺎن ﺑﺎﺷﻨﺪ. ﻧﺘﻴﺠﻪ ﺿﺮب ﻣﻨﻄﻖ‬ ‫در ﻋﺪد از ﻧﻮع ﻋﺪدي اﺳﺖ..‬ ‫ﻣﺜﺎل 1: ﻣﺸﺎﺑﻪ ﺿﺮب ﻋﺪدي‬ ‫;]6 5 4 2[ = ‪>> Li‬‬ ‫;)]1 0 1 0[(‪>> Lg = logical‬‬ ‫‪>> Lip = Li .* Lg‬‬ ‫6 0 4 0 = ‪Lip‬‬ ‫4.8.3 ﻳﺎﻓﺘﻦ اﻧﺪﻳﺲ ﻋﻨﺎﺻﺮ ﺑﺎ دﺳﺘﻮر )(‪find‬‬ ‫ﻣﺜﺎل 1: ﻳﺎﻓﺘﻦ اﻧﺪﻳﺲ ﻋﻨﺎﺻﺮ ﻏﻴﺮ ﺻﻔﺮ ﺑﺮدار‬ ‫82‬ ‫;]53.4- 0 9 6- 5.1 0 5 9 0 2[ = ‪>> ab‬‬ ‫)‪>> af1 = find(ab‬‬ ‫1 = 1‪af‬‬ ‫3‬ ‫4‬ ‫6‬ ‫7‬ ‫8‬ ‫01‬ ‫ﻣﺜﺎل 2: ﻳﺎﻓﺘﻦ اﻧﺪﻳﺲ ﻋﻨﺎﺻﺮ ﻏﻴﺮ ﺻﻔﺮ ﻣﺎﺗﺮﻳﺲ‬ ‫;0 0 2[ = ‪>> ab‬‬ ‫;0 0 0‬ ‫;]0 9 6-‬ ‫‪>> af1 = find(ab) % search by columns‬‬ ‫1 = 1‪af‬‬ ‫3‬ ‫6‬ ‫ﺑﻪ ﺧﻮاﻧﺶ ﺳﺘﻮن ﺑﻪ ﺳﺘﻮن ﺗﻮﺟﻪ ﻛﻨﻴﺪ‬ ‫ﻣﺜﺎل 3: ﻳﺎﻓﺘﻦ اﻧﺪﻳﺲ ﻋﻨﺎﺻﺮ ﻣﺴﺎوي ﺑﺎ 9‬ ‫;]53.4- 0 9 6- 5.1 0 5 9 0 2[ = ‪>> ab‬‬ ‫)9 == ‪>> find(ab‬‬ ‫8 3 = ‪ans‬‬ ‫ﻣﺜﺎل 4: ﻳﺎﻓﺘﻦ اﻧﺪﻳﺲ ﻋﻨﺎﺻﺮ ﻣﻨﻔﻲ، و ﻧﺎﻣﻮﺟﻮد‬ ‫;]53.4- 0 9 6- 5.1 0 5 9 0 2[ = ‪>> ab‬‬ ‫)0 < ‪>> af2 = find(ab‬‬ ‫7 = 2‪af‬‬ ‫01‬ ‫‪find(ab == 8) % Not found‬‬ ‫0-‪ans = Empty matrix: 1-by‬‬ ‫9.3 ﺗﻤﺮﻳﻦ‬ ‫1- ﺟﺪول ﻛﺴﻴﻨﻮس زواﻳﺎي ﺑﻴﻦ ‪ -360o,+360o‬را ﺑﺎ ﮔﺎم ‪ 30o‬ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ و ﻧﻤﺎﻳﺶ دﻫﻴﺪ.‬ ‫2- ﻋﻨﺼﺮ ﺷﻤﺎره 5 از ﺑﺮدار 01:1 = ‪، c‬و ﻋﻨﺎﺻﺮ ﺷﻤﺎر 1 و 2 و 8 از ﺑﺮدار را 1:1-:01 = ‪ x‬ﺣﺬف ﻛﻨﻴﺪ.‬ ‫3- ﻧﻤﺮهﻫﺎي ﺗﺮم ﺧﻮد را داﺧﻞ ﻳﻚ ﺑﺮدار ﻗﺮار دﻫﻴﺪ و ﻣﻌﺪل آن ﻫﺎ را ﺣﺴﺎب ﻛﻨﻴﺪ.‬ ‫4- ﻳﻚ ﺑﺮدار ﻣﻨﻄﻘﻲ را اﻧﺪﻳﺲ ﺑﺮدار ﻋﺪدي ﻗﺮار دﻫﻴﺪ. ﺳﭙﺲ ﺑﺮدار ﻣﻨﻄﻘﻲ را در ﺑﺮدار ﻋﺪدي ﺿﺮب ﻛﻨﻴﺪ.‬ ‫5- ﻣﺎﺗﺮﻳﺲ ﻣﺨﺘﻠﻂ ‪ px‬را ﺑﺎ ﻗﺴﻤﺖﻫﺎي ﺣﻘﻴﻘﻲ و ﻣﺠﺎزي ‪ im,re‬ﺑﻪ دو ﻓﺮم ﻗﺎﺋﻢ و ﻗﻄﺒﻲ ﺑﻨﻮﻳﻴﺪ. ﻣﺨﺘﺼﺎت ﻗﻄﺒﻲ‬ ‫آنرا ‪ mag,tet‬ﺑﮕﻴﺮﻳﺪ. ;]2.6 5 5.4-[ = ‪re = [-1 2 3.5]; im‬‬ ‫6- ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺗﺼﺎدﻓﻲ ﺳﻪ ﺻﻔﺤﻪاي ﺑﺎ ﺻﻔﺤﺎت 3×4 ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ. از ﺻﻔﺤﻪﻫﺎي ﺳﺎزﻧﺪهي ﻣﺎﺗﺮﻳﺲ ﻓﻀﺎﺋﻲ ﻓﻮق: ﻳﻚ‬ ‫ﻣﺎﺗﺮﻳﺲ دوﺑﻌﺪي، و ﻳﻚ ﺑﺮدار ﺗﻚ ﺳﺘﻮﻧﻲ ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ.‬ ‫7- ﻣﺎﺗﺮﻳﺲ ‪ B‬را از ﺳﺘﻮن 2 و ﺳﺘﻮن 4 و ﻣﺎﺗﺮﻳﺲ ‪ C‬را از ردﻳﻒ 2 و ردﻳﻒ 3 ﻣﺎﺗﺮﻳﺲ ‪ A‬اﺳﺘﺨﺮاج ﻛﻨﻴﺪ.‬ ‫];0 3 2- 1- ;9 0 5- 4 ;8- 3 2 1[ = ‪A‬‬ ‫4 4 9 4 7 0 1 2[ = ‪ rv‬ﺑﺎ اﺳﺘﻔﺎده از‬ ‫8‬ ‫8- اﻳﻦ ﺑﺮدار ﻋﺪدي را درﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ: ]5‬ ‫ﺑﺮدار ﻣﻨﻄﻘﻲ ﻋﻨﺎﺻﺮ ﻛﻮﭼﻚﺗﺮ از ﻳﺎ ﻣﺴﺎوي ﺑﺎ 4 ﺑﺮدار ‪ rv‬را در ‪ nv‬ﻗﺮار دﻫﻴﺪ.‬ ‫9- ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻧﺘﻴﺠﻪ زﻳﺮ ﺑﺮدار ‪ ab‬را ﺑﺎ 01 ﻋﻨﺼﺮ ﺑﻨﻮﻳﺴﻴﺪ، آﻳﺎ ‪ af‬ﻳﻚ ﺑﺮدار ﻣﻨﻄﻘﻲ اﺳﺖ؟‬ ‫)‪>> af = find(ab‬‬ ‫1 = ‪af‬‬ ‫3‬ ‫4‬ ‫6‬ ‫7‬ ‫8‬ ‫01‬ ‫01- ﻣﻌﺎدﻟﻪ ﺳﻪ ﻣﺠﻬﻮﻟﻲ زﻳﺮ را ﺑﺎ روش ﻣﺎﺗﺮﻳﺴﻲ ﺣﻞ ﻛﻨﻴﺪ.‬ ‫0 = 3‪-x1 + x2 +2x3 = 2, 3x1 – x2 + x3 = 6, -x1 +3x2 +4x‬‬ ‫92‬ ...
View Full Document

This note was uploaded on 04/20/2011 for the course COMPUTER 1 taught by Professor Parand during the Spring '11 term at American International.

Ask a homework question - tutors are online