0% found this document useful (0 votes)
3 views

Lecture Note 12

Uploaded by

amaleky36
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)
3 views

Lecture Note 12

Uploaded by

amaleky36
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
You are on page 1/ 14

١٨٩

Dr. Seyyed Arash Haghpanah


‫‪ ‬ﮐﺪ ﻫﺎي ﮐﺎﻣﭙﯿﻮﺗﺮي )ﻧﻪ ﻓﻘﻂ ‪ (MATLAB‬ﺷﺎﻣﻞ ﺗﻮاﻟﯽ )‪ ،(sequence‬ﺳﺎﺧﺘﺎرﻫﺎي اﻧﺘﺨﺎب‬
‫)‪ (selection structures‬و ﺳﺎﺧﺘﺎرﻫﺎي ﺗﮑﺮار )‪ (repetition structure‬ﻫﺴﺘﻨﺪ‪.‬‬

‫‪ ‬ﮐﺪﻫﺎﯾﯽ ﮐﻪ ﺗﺎﮐﻨﻮن در اﯾﻦ درس ﻧﻮﺷﺘﯿﻢ ﺗﻨﻬﺎ ﺷﺎﻣﻞ ﺗﻮاﻟﯽ ﺑﻮدﻧﺪ و ﻓﺎﻗﺪ دو ﺳﺎﺧﺘﺎر ﺑﻮدﻧﺪ‪.‬‬
‫‪ ‬ﺗﻮاﻟﯽ‪ :‬ﻟﯿﺴﺘﯽ از دﺳﺘﻮرات اﺳﺖ ﮐﻪ ﯾﮑﯽ ﺑﻌﺪ از دﯾﮕﺮي اﺟﺮا ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪ ‬ﺳﺎﺧﺘﺎر اﻧﺘﺨﺎب‪ :‬ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺲ اﺟﺎزه ﻣﯽ دﻫﺪ ﮐﻪ اﮔﺮ ﯾﮏ ﻗﯿﺪ ﺻﺤﯿﺢ ﺑﺎﺷﺪ دﺳﺘﻮر اول اﺟﺮا ﺷﻮد و اﮔﺮ ﻗﯿﺪ‬
‫ﻧﺎدرﺳﺖ ﺑﺎﺷﺪ دﺳﺘﻮر دوم اﺟﺮا ﮔﺮدد‪ .‬ﺳﺎﺧﺘﺎر اﻧﺘﺨﺎب وﺳﯿﻠﻪ اي ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺑﺮ اﺳﺎس ﺷﺮاﯾﻂ ﻣﻨﻄﻘﯽ‬
‫ﺑﯿﻦ اﯾﻦ ﻣﺴﯿﺮﻫﺎ ﮔﺰﯾﻨﺶ ﮐﻨﺪ‪ .‬ﺷﺮاﯾﻄﯽ ﮐﻪ ﺑﺮرﺳﯽ ﻣﯽ ﺷﻮد اﻏﻠﺐ ﺷﺎﻣﻞ ﻋﻤﻠﮕﺮﻫﺎي راﺑﻄﻪ اي ) ‪relational‬‬ ‫‪١٩٠‬‬

‫‪ (operators‬و ﻣﻨﻄﻘﯽ )‪ (logical operators‬ﻣﯽ ﺑﺎﺷﺪ‪Dr. Seyyed Arash Haghpanah .‬‬


‫‪ ‬ﺳﺎﺧﺘﺎر ﺗﮑﺮار )‪ :(loop‬ﺑﺎﻋﺚ ﻣﯽ ﺷﻮد ﻣﺠﻤﻮﻋﻪ اي از دﺳﺘﻮرات ﭼﻨﺪﯾﻦ ﺑﺎر اﺟﺮا ﮔﺮدﻧﺪ‪ .‬ﺗﻌﺪاد دﻓﻌﺎت ‪loop‬‬
‫ﻣﯽ ﺗﻮاﻧﺪ ﺗﻮﺳﻂ ﯾﮏ ﺷﻤﺎرﻧﺪه و ﯾﺎ ﺷﺮط ﻣﻨﻄﻘﯽ ﺗﻌﯿﯿﻦ ﮔﺮدد‪.‬‬

‫‪RELATIONAL AND LOGICAL OPERATORS‬‬

‫‪ ‬ﺳﺎﺧﺘﺎرﻫﺎي اﻧﺘﺨﺎب و ﺗﮑﺮار در ‪ MATLAB‬واﺑﺴﺘﻪ ﺑﻪ ﻋﻤﻠﮕﺮﻫﺎي راﺑﻄﻪ اي و ﻣﻨﻄﻘﯽ اﺳﺖ‪.‬‬


‫‪ MATLAB ‬ﺷﺶ ﻋﻤﻠﮕﺮ راﺑﻄﻪ اي ﺑﺮاي ﻣﻘﺎﯾﺴﻪ دو ﻣﺎﺗﺮﯾﺲ ﺑﺎ اﻧﺪازه ﯾﮑﺴﺎن دارد‪.‬‬

‫‪١٩١‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ ‬ﻧﺘﯿﺠﻪ اﯾﻦ ﻣﻘﺎﯾﺴﻪ ﻫﺎ ﻣﯽ ﺗﻮاﻧﺪ ﭘﺎﺳﺦ درﺳﺖ ﯾﺎ ﻧﺎدرﺳﺖ ﺑﺎﺷﺪ‪ .‬اﻏﻠﺐ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﮐﺎﻣﭙﯿﻮﺗﺮي )از ﺟﻤﻠﻪ‬
‫‪ (MATLAB‬از ﻣﻘﺪار ‪ 1‬ﺑﺮاي درﺳﺖ و از ﻣﻘﺪار ‪ 0‬ﺑﺮاي ﻧﺎدرﺳﺖ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪.‬‬

‫;‪x = 5‬‬ ‫= ‪ans‬‬


‫;‪y = 1‬‬ ‫‪0‬‬
‫‪x<y‬‬
‫‪ ‬ﻋﺪد ﺻﻔﺮ ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﻣﻘﺎﯾﺴﻪ ﻧﺎ درﺳﺖ ﺑﻮده اﺳﺖ‪.‬‬
‫‪ ‬اﯾﻦ ﻣﻘﺎﯾﺴﻪ ﻫﺎ ﺑﺮاي ﻣﺎﺗﺮﯾﺲ ﻫﺎ ﻫﻢ ﮐﺎرﺑﺮد دارد‪ .‬در اﯾﻦ ﺣﺎﻟﺖ ‪ MATLAB‬اﻟﻤﺎن ﻫﺎي ﻣﺘﻨﺎﻇﺮ را ﻣﻘﺎﯾﺴﻪ‬
‫ﻣﯽ ﮐﻨﺪ و ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﭘﺎﺳﺦ از ﺻﻔﺮ و ﯾﮏ ﻣﯽ ﺳﺎزد‪.‬‬
‫;‪x = 1:5‬‬
‫= ‪ans‬‬
‫;‪y = x -4‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪x<y‬‬

‫;]‪x = [ 1, 2, 3, 4, 5‬‬ ‫= ‪ans‬‬


‫;]‪y = [-2, 0, 2, 4, 6‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪x<y‬‬

‫‪ ‬اﯾﻦ ﻧﺘﯿﺠﻪ ﻣﯽ ﮔﻮﯾﺪ ﮐﻪ ﻣﻘﺎﯾﺴﻪ ﺑﺮاي ﭼﻬﺎر اﻟﻤﺎن اول ﻧﺎدرﺳﺖ و ﺑﺮاي اﻟﻤﺎن آﺧﺮ درﺳﺖ ﺑﻮده اﺳﺖ‪.‬‬
‫‪١٩٢‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ ‬ﺑﺮاي اﯾﻨﮑﻪ ﯾﮏ ﻣﻘﺎﯾﺴﻪ ﺑﺮاي ﺗﻤﺎم ﻣﺎﺗﺮﯾﺲ درﺳﺖ ﺑﺎﺷﺪ‪ ،‬ﺑﺎﯾﺪ ﺑﺮاي ﺗﮏ ﺗﮏ اﻟﻤﺎن ﻫﺎ درﺳﺖ ﺑﺎﺷﺪ‪.‬‬
‫‪ ‬ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﻋﻼﻣﺖ = ﻣﺘﻔﺎوت ﺑﺎ ﻋﻼﻣﺖ == اﺳﺖ‪ .‬ﻋﻼﻣﺖ = ﺑﺮاي ﺟﺎﯾﮕﺰﯾﻨﯽ ﯾﮏ ﻣﻘﺪار در ﯾﮏ‬
‫ﻗﺮار ﻣﯽ دﻫﺪ‪.‬‬ ‫ﻣﻘﺪار ‪ 5‬را در ﻣﺘﻐﯿﺮ‬ ‫ﻣﺘﻐﯿﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ‪= 5‬‬
‫اﯾﻦ ﻣﻘﺎﯾﺴﻪ را اﻧﺠﺎم ﻣﯽ دﻫﺪ ﮐﻪ آﯾﺎ ﻣﻘﺪار‬ ‫‪ ‬اﻣﺎ ﻋﻼﻣﺖ == ﺑﺮاي ﻣﻘﺎﯾﺴﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ .‬ﻣﺜﻼ ‪== 3‬‬
‫ﺑﺮاﺑﺮ ‪ 3‬اﺳﺖ ﯾﺎ ﻧﻪ‪ .‬ﮐﻪ ﭘﺎﺳﺦ ﻣﻨﻔﯽ اﺳﺖ و در ﺟﻮاب ﻣﻘﺪار ﺻﻔﺮ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪ MATLAB ‬ﻫﻤﭽﻨﯿﻦ اﺟﺎزه ﻣﯽ دﻫﺪ ﮐﻪ ﻣﻘﺎﯾﺴﻪ ﻫﺎ را ﺑﺎ اﺳﺘﻔﺎده از ﻋﻼﻣﺖ ﻫﺎي ‪ not ، and‬و ‪ or‬ﺗﺮﮐﯿﺐ‬
‫ﻧﻤﻮد‪.‬‬

‫‪١٩٣‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫= ‪x‬‬ ‫;]‪[ 1, 2, 3, 4, 5‬‬
‫= ‪y‬‬ ‫;]‪[-2, 0, 2, 4, 6‬‬ ‫= ‪ans‬‬
‫= ‪z‬‬ ‫;]‪[ 8, 8, 8, 8, 8‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪z>x‬‬ ‫‪& z>y‬‬

‫‪ ‬ﺑﻪ اﯾﻦ دﻟﯿﻞ ﮐﻪ ﻫﺮ اﻟﻤﺎن ‪ z‬ﻫﻢ ﺑﺰرﮔﺘﺮ از اﻟﻤﺎن ﻣﺘﻨﺎﻇﺮ ‪ x‬اﺳﺖ و ﻫﻢ ﺑﺰرﮔﺘﺮ از اﻟﻤﺎن ﻣﺘﻨﺎﻇﺮ ‪y‬‬

‫‪ x ‬ﺑﺰرﮔﺘﺮ از ‪ y‬ﯾﺎ ‪ x‬ﺑﺰرﮔﺘﺮ از ‪) z‬ﯾﺎ ﻫﺮ دو(‬


‫‪x>y | x>z‬‬ ‫= ‪ans‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬

‫‪x>y‬‬ ‫= ‪ans‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫= ‪ans‬‬
‫)‪~(x>y‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬

‫= ‪ans‬‬
‫‪ ‬ﯾﺎ ‪ x>y‬ﯾﺎ ‪ x>z‬و ﻧﻪ ﻫﺮ دو‬
‫)‪xor(x>y,x>z‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪١٩۴‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ ‬دو ﻋﻤﻠﮕﺮ && و || ﺗﻨﻬﺎ ﺑﺮ روي اﺳﮑﺎﻟﺮﻫﺎ ﮐﺎر ﻣﯽ ﮐﻨﻨﺪ‪ .‬اﯾﻦ ﻋﻤﻠﮕﺮﻫﺎ ﺑﺮاي ﺻﺮﻓﻪ ﺟﻮﯾﯽ در زﻣﺎن ﻣﺤﺎﺳﺒﺎت‬
‫)ﻫﺰﯾﻨﻪ ﻣﺤﺎﺳﺒﺎﺗﯽ( ﮐﺎرﺑﺮد دارﻧﺪ و ﺗﻨﻬﺎ ﺷﺮط ﮐﺎﻓﯽ ﺑﺮاي آن ﻣﻮرد را ﺑﺮرﺳﯽ ﻣﯽ ﮐﻨﻨﺪ‪ .‬ﻣﺜﻼ ﻋﺒﺎرت‬

‫‪5<3 && 10>2‬‬


‫‪ ‬ﺷﺮط اول ) ‪ (5<3‬ﻧﺎدرﺳﺖ اﺳﺖ‪ ،‬ﭘﺲ ﺷﺮط دوم ﻫﺮ ﭼﻪ ﮐﻪ ﺑﺎﺷﺪ ﺟﻮاب ﻧﻬﺎﯾﯽ ﻧﺎدرﺳﺖ ﺧﻮاﻫﺪ ﺑﻮد‪ .‬اﯾﻦ‬
‫ﻋﻤﻠﮕﺮ ﺑﻌﺪ از اﯾﻨﮑﻪ ﺷﺮط اول ﻧﺎدرﺳﺖ ﺑﻮد‪ ،‬ﺷﺮط دوم را دﯾﮕﺮ ﺑﺮرﺳﯽ ﻧﻤﯽ ﮐﻨﺪ‪ .‬ﮐﻪ اﯾﻦ ﮐﺎر ﺣﺠﻢ ﻣﺤﺎﺳﺒﺎت را‬
‫ﮐﺎﻫﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪12>3 || 2>5‬‬
‫‪ ‬ﺷﺮط اول درﺳﺖ اﺳﺖ ﭘﺲ ﭘﺎﺳﺦ ﮐﻠﯽ درﺳﺖ ﺧﻮاﻫﺪ ﺑﻮد و اﺣﺘﯿﺎﺟﯽ ﺑﻪ ﺑﺮرﺳﯽ ﺷﺮط دوم ﻧﯿﺴﺖ‪ .‬اﯾﻦ ﻋﻤﻠﮕﺮ‬
‫ﺑﻌﺪ از اﯾﻨﮑﻪ ﺷﺮط اول درﺳﺖ ﺑﻮد دﯾﮕﺮ ﺷﺮط دوم را ﺑﺮرﺳﯽ ﻧﻤﯽ ﮐﻨﺪ ﮐﻪ ﺣﺠﻢ ﻣﺤﺎﺳﺒﺎت را ﮐﺎﻫﺶ ﻣﯽ دﻫﺪ‪.‬‬

‫‪١٩۵‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ ‬ﺑﺎ اﺿﺎﻓﻪ ﺷﺪن ﺳﺎﺧﺘﺎرﻫﺎي اﻧﺘﺨﺎب و ﺗﮑﺮار ﺑﻪ ﺑﺮﻧﺎﻣﻪ‪ ،‬ﻻزم اﺳﺖ ﮐﻪ ﻗﺒﻞ از ﺷﺮوع ﮐﺪ ﻧﻮﯾﺴﯽ ﻃﺮﺣﯽ ﺑﺮاي‬
‫ﺑﺮﻧﺎﻣﻪ داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪ .‬اﯾﻦ ﮐﺎر ﺑﻪ ﮐﻤﮏ ﻧﻮﺷﺘﻦ اﻟﮕﻮرﯾﺘﻢ ﯾﺎ رﺳﻢ ﻓﻠﻮﭼﺎرت اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬
‫‪ ‬ﺑﻪ ﻋﻮان ﻣﺜﺎل ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ از ﺷﻤﺎ ﺧﻮاﺳﺘﻪ ﺷﺪه اﺳﺖ ﮐﻪ ﺑﺮﻧﺎﻣﻪ اي ﺑﺮاي ﺗﺒﺪﯾﻞ ‪ mph‬ﺑﻪ ‪ ft/s‬ﺑﻨﻮﯾﺴﯿﺪ‪.‬‬
‫ﺧﺮوﺟﯽ ﺑﺎﯾﺪ ﯾﮏ ﺟﺪول ﺑﺎ ﻋﻨﻮان و ﺳﺮ ﺳﺘﻮن ﻫﺎي ﻣﻨﺎﺳﺐ ﺑﺎﺷﺪ‪.‬‬
‫‪ ‬ﻣﺮاﺣﻠﯽ ﮐﻪ ﺑﺎﯾﺪ اﻧﺠﺎم ﺷﻮد ﺑﻪ ﺻﻮرت اﻟﮕﻮرﯾﺘﻢ زﯾﺮ اﺳﺖ‪:‬‬

‫‪ ‬ﺑﺮدار ﻣﻘﺎدﯾﺮ ‪ mph‬را ﺗﻌﺮﯾﻒ ﮐﻦ‪.‬‬


‫‪ Mph ‬را ﺑﻪ ‪ ft/s‬ﺗﺒﺪﯾﻞ ﮐﻦ‪.‬‬
‫‪ ‬ﺑﺮدارﻫﺎي ‪ mph‬و ‪ ft/s‬را در ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﺑﺎ ﻫﻢ ﺗﺮﮐﯿﺐ ﮐﻦ‪.‬‬
‫‪ ‬ﯾﮏ ﻋﻨﻮان ﺑﺮاي ﺟﺪول درﺳﺖ ﮐﻦ‪.‬‬
‫‪ ‬ﻋﻨﻮان ﻫﺮ ﺳﺘﻮن را اﯾﺠﺎد ﮐﻦ‪.‬‬
‫‪ ‬ﺟﺪول را ﻧﻤﺎﯾﺶ ﺑﺪه‪.‬‬

‫‪١٩۶‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


.‫ وارد ﮐﻨﯿﺪ‬MATLAB ‫ در‬comment ‫ ﺑﻌﺪ از اﯾﻨﮑﻪ ﻣﺮاﺣﻞ اﻟﮕﻮرﯾﺘﻢ ﺷﻨﺎﺳﺎﯾﯽ ﺷﺪﻧﺪ آن ﻫﺎ را ﺑﻪ ﺻﻮرت‬

%Define a vector of mph values


%Convert mph to ft/s
%Combine the mph and ft/s vectors into a
matrix
%Create a table title
%Create column headings
%Display the table

.‫ ﻫﺎ ﻗﺮار داد‬comment ‫ را در ﺑﯿﻦ‬MATLAB ‫ در اﯾﻦ ﻣﺮﺣﻠﻪ ﻣﯽ ﺗﻮان ﮐﺪﻫﺎي ﻣﻮرد ﻧﻈﺮ‬


%Define a vector of mph values
mph = 0:10:100;
%Convert mph to ft/s
fps = mph*5280/3600;
%Combine the mph and ft/s vectors into a matrix
table = [mph;fps]
%Create a table title
disp('Velocity Conversion Table')
%Create column headings
disp(' mph f/s')
%Display the table ١٩٧
fprintf('%8.0f %8.2f \n',table)

Dr. Seyyed Arash Haghpanah


‫‪LOGICAL FUNCTIONS‬‬
‫‪ MATLAB ‬ﻫﻢ ﺳﺎﺧﺘﺎرﻫﺎي اﻧﺘﺨﺎب ﻣﺘﺪاول ﻣﺜﻞ ‪ if‬را دارد و ﻫﻢ ﺗﻮاﺑﻊ ﻣﻨﻄﻘﯽ دﯾﮕﺮ‪ .‬ﯾﮑﯽ از اوﻟﯿﻦ ﺗﻮاﺑﻊ‬
‫ﻣﻨﻄﻘﯽ ‪ ،MATLAB‬ﺗﺎﺑﻊ ‪ find‬اﺳﺖ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ در ﺑﻌﻀﯽ ﻣﻮارد ﺑﻪ ﻋﻨﻮان ﺟﺎﯾﮕﺰﯾﻦ ﺳﺎﺧﺘﺎرﻫﺎي اﻧﺘﺨﺎب‬
‫و ﺗﮑﺮار اﺳﺘﻔﺎده ﺷﻮد‪.‬‬
‫‪ ‬دﺳﺘﻮر ‪ find‬در اﻟﻤﺎن ﻫﺎي ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﺟﺴﺘﺠﻮ ﻣﯽ ﮐﻨﺪ و ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﮐﺪاﻣﯿﮏ از اﻟﻤﺎن ﻫﺎي‬
‫ﻣﺎﺗﺮﯾﺲ ﻣﻌﯿﺎرﻫﺎي ﻣﻮرد ﻧﻈﺮ را ﺑﺮآورده ﻣﯽ ﺳﺎزد‪.‬‬
‫‪ ‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﻧﯿﺮوي درﯾﺎﯾﯽ آﻣﺮﯾﮑﺎ ﺑﺮاي اﺳﺘﺨﺪام ﺷﺮط ﺣﺪاﻗﻞ ﻗﺪ ‪ 66‬اﯾﻨﭻ را دارد‪ .‬ﻟﯿﺴﺖ ﻣﺘﻘﺎﺿﯿﺎن را ﺑﻪ‬
‫ﺻﻮرت زﯾﺮ در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ‪:‬‬
‫]‪height = [63,67,65,72,69,78,75‬‬
‫‪ ‬ﻣﯽ ﺧﻮاﻫﯿﻢ اﻟﻤﺎن ﻫﺎي ﺑﺰرﮔﺘﺮ ﯾﺎ ﻣﺴﺎوي ‪ 66‬را ﭘﯿﺪا ﮐﻨﯿﻢ‪:‬‬
‫‪ ‬دﺳﺘﻮر ‪ find‬اﻧﺪﯾﺲ اﻟﻤﺎن ﻫﺎﯾﯽ ﮐﻪ ﻣﻘﺪار آن ﻫﺎ ﺑﯿﺸﺘﺮ ار ‪ 66‬اﺳﺖ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬

‫) ‪accept = find(height>=66‬‬

‫= ‪accept‬‬
‫‪2‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪١٩٨‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


:‫ ﺑﺮاي اﯾﻨﮑﻪ ﺑﺘﻮاﻧﯿﻢ ﻣﻘﺪار اﯾﻦ اﻟﻤﺎن ﻫﺎ را ﻣﺸﺎﻫﺪه ﮐﻨﯿﻢ‬
ans =
height(accept)
67 72 69 78 75
.‫ ﯾﺎ ﻣﯽ ﺗﻮان ﻫﺮ دو اﯾﻦ ﻋﺒﺎرت را ﺑﺎ ﻫﻢ ﺗﺮﮐﯿﺐ ﮐﺮد‬

height(find(height(>=66)))
‫ ﯾﺎ ﻣﯽ ﺗﻮان ﻣﺸﺨﺺ ﮐﺮد ﮐﺪام اﻟﻤﺎن ﻫﺎ ﻣﻌﯿﺎر ﻣﻮرد ﻧﻈﺮ را ﻧﺪارﻧﺪ‬

decline = find(height<66)
.‫ اﯾﺠﺎد ﮐﺮد‬fprintf ‫ و‬disp ‫ ﻣﯽ ﺗﻮان ﯾﮏ ﺟﺪول از ﻧﺘﺎﯾﺢ اﻓﺮاد ﻗﺒﻮل ﺷﺪه ﺑﻪ ﮐﻤﮏ دﺳﺘﻮر‬
disp('The following candidates meet the height requirement');
fprintf('Candidate # %4.0f is %4.0f inches tall \n',
[accept;height(accept)])

The following candidates meet the height requirement


Candidate # 2 is 67 inches tall
Candidate # 4 is 72 inches tall
Candidate # 5 is 69 inches tall
Candidate # 6 is 78 inches tall
Candidate # 7 is 75 inches tall
١٩٩

Dr. Seyyed Arash Haghpanah


‫‪ ‬ﻋﻼوه ﺑﺮ اﯾﻦ ﻣﯽ ﺗﻮان ﯾﮏ ﺟﺴﺘﺠﻮي ﭘﯿﭽﯿﺪه ﺗﺮ اﻧﺠﺎم داد‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﻓﺮض ﮐﻨﯿﺪ ﻣﺘﻘﺎﺿﯿﺎن ﺑﺎﯾﺪ ﺣﺪاﻗﻞ‬
‫‪ 18‬ﺳﺎل و ﺣﺪاﮐﺜﺮ ‪ 35‬ﺳﺎل داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬

‫]‪applicants =[ 63,18; 67,19; 65,18; 72,20; 69,36; 78,34; 75,12‬‬

‫‪pass = find(applicants(:,1)>=66 & applicants(:,2)>=18 ...‬‬


‫)‪& applicants(:,2) < 35‬‬

‫= ‪pass‬‬
‫‪2‬‬
‫‪4‬‬
‫‪6‬‬
‫‪٢٠٠‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


results = [pass,applicants(pass,1),applicants(pass,2)]';
fprintf('Applicant # %4.0f is %4.0f inches tall and %4.0f years
old\n',results)

Applicant # 2 is 67 inches tall and 19 years old


Applicant # 4 is 72 inches tall and 20 years old
Applicant # 6 is 78 inches tall and 34 years old

‫ اﮔﺮ دو ﺧﺮوﺟﯽ ﺑﺮاي دﺳﺘﻮر‬.‫ ﻓﻘﻂ ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﯾﮏ ﺑﻌﺪي ﺧﺮوﺟﯽ ﮔﺮﻓﺘﯿﻢ‬find ‫ در ﻣﺜﺎل ﻫﺎي ﻗﺒﻞ از دﺳﺘﻮر‬
.‫ ﺳﻄﺮ و ﺳﺘﻮن اﻋﺪاد ﻣﻮرد ﻧﻈﺮ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬.‫ ﺗﻌﺮﯾﻒ ﺷﻮد‬find

[row, col] = find( criteria)

٢٠١

Dr. Seyyed Arash Haghpanah


temp = [95.3, 100.2, 98.6; 97.4,99.2, 98.9; 100.1,99.3, 97]

temp =
95.3000 100.2000 98.6000
97.4000 99.2000 98.9000
100.1000 99.3000 97.0000

element = find(temp>98.6) element =


3
4
5
6
8

row = col =

[row, col] = find(temp>98.6) 3 1


1 2
2 2
3 2
2 3 ٢٠٢

Dr. Seyyed Arash Haghpanah

You might also like