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

Lecture Note 11

Uploaded by

amaleky36
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Lecture Note 11

Uploaded by

amaleky36
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

١۶١

Dr. Seyyed Arash Haghpanah


‫‪ ‬ﺗﺎ اﯾﻦ ﻗﺴﻤﺖ از ‪ C.W.‬ﯾﺎ ‪ editing window‬ﺑﺮاي ﻣﺤﺎﺳﺒﺎت ﯾﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ اﺳﺘﻔﺎده ﺷﺪ‪ .‬در ﻓﺼﻞ ﻫﺎي‬
‫ﭘﯿﺸﯿﻦ‪ ،‬ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺲ و ﮐﺎرﺑﺮ ﯾﮑﯽ ﺑﻮدﻧﺪ‪ .‬ﺣﺎﻻ ﻣﯽ ﺧﻮاﻫﯿﻢ ﺑﻪ ﺳﻤﺘﯽ ﺑﺮوﯾﻢ ﮐﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺲ و ﮐﺎرﺑﺮ ﻣﺘﻔﺎوت‬
‫ﺑﺎﺷﻨﺪ‪ .‬ﻻزﻣﻪ اﯾﻦ ﮐﺎر اﯾﻦ اﺳﺖ ﮐﻪ دﺳﺘﻮراﺗﯽ ﺟﻬﺖ ورودي و ﺧﺮوﺟﯽ اﺳﺘﻔﺎده ﮐﻨﯿﻢ ﮐﻪ ﺑﺘﻮاﻧﺪ ﺑﺎ ﮐﺎرﺑﺮ ارﺗﺒﺎط‬
‫ﺑﺮﻗﺮار ﮐﻨﺪ و ﮐﺎرﺑﺮ ﺑﺘﻮاﻧﺪ راﺣﺖ ﺗﺮ از ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺘﻔﺎده ﮐﻨﺪ‪.‬‬

‫‪USER-DEFINED INPUT‬‬

‫‪ ‬دﺳﺘﻮر ‪ input‬اﺟﺎزه ﻣﯽ دﻫﺪ ﮐﻪ ﮐﺎرﺑﺮ ورودي ﻣﻮرد ﻧﻈﺮ را ﺗﻮﺳﻂ ﮐﯿﺒﻮرد وارد ﻧﻤﺎﯾﺪ‪ .‬ﺑﺎ اﯾﻦ دﺳﺘﻮر در ﺣﯿﻦ‬
‫اﺟﺮاي ﺑﺮﻧﺎﻣﻪ وﻗﻔﻪ اي اﯾﺠﺎد ﻣﯽ ﺷﻮد ﮐﻪ ﺑﺮﻧﺎﻣﻪ ﻣﻨﺘﻈﺮ درﯾﺎﻓﺖ ورودي از ﮐﺎرﺑﺮ ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪:‬‬

‫)'‪z = input('Enter a value‬‬


‫‪ ‬ﺑﺎ اﺟﺮاي اﯾﻦ دﺳﺘﻮر در ‪ C.W.‬ﭘﯿﻐﺎم ﻗﺮار داده ﺷﺪه در ﭘﺮاﻧﺘﺰ ‪ Enter a value‬ﺑﻪ ﻧﻤﺎﯾﺶ در ﺧﻮاﻫﺪ آﻣﺪ و‬
‫ﮐﺎرﺑﺮ ﺑﺎﯾﺪ در ﭘﺎﺳﺦ آن ﻣﻘﺪاري را وارد ﻧﻤﺎﯾﺪ‪.‬‬
‫‪Enter a value‬‬

‫‪ ‬اﮔﺮ ﮐﺎرﺑﺮ ﻋﺪد ‪ 5‬را وارد ﻧﻤﺎﯾﺪ ﺑﺮﻧﺎﻣﻪ ﻣﻘﺪار ‪ 5‬را در ﻣﺘﻐﯿﺮ ‪ z‬ﻗﺮار ﻣﯽ دﻫﺪ‪.‬‬
‫‪١۶٢‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ ‬اﮔﺮ دﺳﺘﻮر ‪ input‬ﺑﺪون ‪ semicolon‬اﺳﺘﻔﺎده ﺷﻮد ﺑﻌﺪ از اﯾﻦ ﻣﻘﺪار وارد ﺷﺪه ﺑﻪ ﻧﻤﺎﯾﺶ در ﺧﻮاﻫﺪ آﻣﺪ‪.‬‬
‫= ‪z‬‬
‫‪5‬‬

‫‪ ‬ﻫﻤﯿﻦ روش ﺑﺮاي وارد ﮐﺮدن ﯾﮏ ﻣﺎﺗﺮﯾﺲ ﯾﮏ ﯾﺎ دو ﺑﻌﺪي ﻧﯿﺰ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ .‬ﮐﺎرﺑﺮ ﺑﺎﯾﺪ ﻣﺎﺗﺮﯾﺲ را ﺑﻪ ﻧﺤﻮ‬
‫ﺻﺤﯿﺢ وارد ﮐﻨﺪ‪ .‬ﻣﺜﻼ‪:‬‬
‫)'‪z = input('Enter values for z in brackets‬‬

‫‪'Enter values for z in brackets‬‬

‫‪ ‬ﻣﻘﺪار ‪ z‬ﻣﯽ ﺗﻮاﻧﺪ در ﻣﺤﺎﺳﺒﺎت ﺑﻌﺪي در ‪ W.S.‬ﯾﺎ در ‪ M-file‬اﺳﺘﻔﺎده ﺷﻮد‪.‬‬

‫‪١۶٣‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ ‬ﻣﻘﺪار وارد ﺷﺪه ﻻزم ﻧﯿﺴﺖ ﮐﻪ ﺣﺘﻤﺎ ﯾﮏ ﻣﻘﺪار ﻋﺪدي ﺑﺎﺷﺪ‪ .‬ﻣﺜﺎل زﯾﺮ از ﮐﺎرﺑﺮ ﻣﯽ ﺧﻮاﻫﺪ ﮐﻪ ﯾﮏ ورودي را‬
‫وارد ﮐﻨﺪ‪:‬‬
‫)'‪x = input('Enter your name in single quotes‬‬

‫‪'Enter your name in single quotes‬‬

‫'‪'Holly‬‬
‫‪ ‬ﺑﻪ اﯾﻦ دﻟﯿﻞ ﮐﻪ در اﻧﺘﻬﺎ ‪ semicolon‬ﻗﺮار داده ﻧﺸﺪه اﺳﺖ ‪ MATLAB‬ﻣﺘﻐﯿﺮ وارد ﺷﺪه را ﻧﻤﺎﯾﺶ‬
‫ﻣﯽ دﻫﺪ‪.‬‬
‫= ‪x‬‬
‫‪Holly‬‬

‫‪ ‬در اﯾﻦ ﺣﺎﻟﺖ در ‪ workspace‬اﻧﺪازه ‪ 1 × 5 x‬ﻧﺸﺎن داده ﻣﯽ ﺷﻮد )‪ 5‬ﮐﺎراﮐﺘﺮ(‬


‫‪ ‬ﺑﻪ اﯾﻦ دﻟﯿﻞ ﮐﻪ اﯾﻦ دﺳﺘﻮر ‪ input‬ﻣﯽ ﺗﻮاﻧﺴﺖ ﻫﻢ ﻋﺪد و ﻫﻢ ‪ string‬ﺑﻪ ﻋﻨﻮان ورودي ﺑﮕﯿﺮد‪ string ،‬وارد‬
‫ﺷﺪه را در ' ' ﻗﺮار داده ﺷﺪ‪.‬‬
‫‪ ‬روش ﺟﺎﯾﮕﺰﯾﻨﯽ وﺟﻮد دارد ﮐﻪ دﺳﺘﻮر ‪ input‬ﺑﻪ ﺻﻮرت اﺧﺘﺼﺎﺻﯽ ﺑﺮاي ورود ‪ string‬اﺳﺘﻔﺎده ﻣﯽ‬
‫ﺷﻮد و اﺣﺘﯿﺎج ﺑﻪ ' 'ﻧﯿﺴﺖ‪.‬‬
‫‪١۶۴‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


x = input('Enter your name', 's')

Enter your name


Ralph

x =
Ralph

‫از ﮐﺎرﺑﺮ ﺑﺨﻮاﻫﯿﺪ‬ = (base)(height) ‫ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻣﺴﺎﺣﺖ ﻣﺜﻠﺚ اﯾﺠﺎد ﮐﻨﯿﺪ‬M-file ‫ ﯾﮏ‬:‫ ﻣﺜﺎل‬

.‫ را وراد ﻧﻤﺎﯾﺪ‬height ‫ و‬base ‫ﻣﻘﺪار‬

clc
clear
b=input('enter the length of the base of the triangle:');
h=input('enter the length of the height of the triangle:');
Area=1/2*b*h

١۶۵

Dr. Seyyed Arash Haghpanah


.‫ را از ﮐﺎرﺑﺮ ﺑﮕﯿﺮد‬n ‫ اﯾﺠﺎد ﮐﻨﯿﺪ ﮐﻪ ﻣﻘﺪار‬n ‫ ﺗﺎ‬0 ‫ ﺑﺮداري از اﻋﺪاد ﺻﺤﯿﺢ از‬:‫ ﻣﺜﺎل‬

clc
clear
n=input('Enter the value of n:');
vector=0:n;

‫ ﺑﻪ ﮐﺎرﺑﺮ‬.‫ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‬c ‫ ﻓﻮاﺻﻞ‬،‫ ﺧﺘﻢ ﺷﻮد و ﻣﻘﺎدﯾﺮ‬b ‫ ﺷﺮوع ﺷﺪه و ﺑﻪ‬a ‫ ﺑﺮداري اﯾﺠﺎد ﮐﻨﯿﺪ ﮐﻪ از‬:‫ ﻣﺜﺎل‬
.‫ ﻣﻘﺪار را وارد ﮐﻨﺪ‬3 ‫اﺟﺎزه دﻫﯿﺪ ﺗﺎ ﻫﺮ‬
clc
clear
a=input('Enter the starting value:');
b=input('Enter the ending value:');
c=input('Enter the vector spacing:');
vector=a:c:b;

١۶۶

Dr. Seyyed Arash Haghpanah


‫ ﻓﺎﺻﻠﻪ اي ﮐﻪ ﺟﺴﻢ در ﻫﺮ زﻣﺎن ﻃﯽ ﮐﺮده اﺳﺖ ﺗﻮﺳﻂ راﺑﻄﻪ‬،‫ در ﺳﻘﻮط آزاد ﯾﮏ ﺟﺴﻢ‬:7-1‫ ﻣﺜﺎل‬

‫ ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻣﻘﺪار ﺷﺘﺎب ﮔﺮاﻧﺶ و ﺑﺮدار زﻣﺎن ﻫﺎي‬.‫= ﺑﻪ دﺳﺖ ﻣﯽ آﯾﺪ‬
.‫دﻟﺨﻮاه ﮐﺎرﺑﺮ را ﮔﺮﻓﺘﻪ و ﻣﺴﺎﻓﺖ ﺳﻘﻮط ﺟﺴﻢ ﺑﺮ ﺣﺴﺐ زﻣﺎن دﻟﺨﻮاه ﮐﺎرﺑﺮ را ﺗﺮﺳﯿﻢ ﻧﻤﺎﯾﺪ‬
%Example 7.1
%Free fall
clear, clc
%Request input from the user
g = input('What is the value of acceleration due to gravity?')
start = input('What starting time would you like?')
finish = input('What ending time would you like?')
incr = input('What time increments would you like calculated?')
time = start:incr:finish;
%Calculate the distance
distance = 1/2*g*time.^2;
%Plot the results
loglog(time,distance)
title('Distance Traveled in Free Fall')
xlabel('time, s'),ylabel('distance, m')
%Find the maximum distance traveled
final_distance = max(distance) ١۶٧

Dr. Seyyed Arash Haghpanah


What is the value of acceleration due to gravity? 9.81
g =
9.8100
What starting time would you like? 0
start =
0
What ending time would you like? 100
finish =
100
What time increments would you like calculated? 10
incr =
10
final_distance =
8000

١۶٨

Dr. Seyyed Arash Haghpanah


‫‪OUTPUT OPTIONS‬‬
‫‪ ‬ﺑﻪ روش ﻫﺎي ﻣﺨﺘﻠﻔﯽ ﻣﯽ ﺗﻮان ﻣﺤﺘﻮﯾﺎت ﯾﮏ ﻣﺎﺗﺮﯾﺲ را ﻧﻤﺎﯾﺶ داد‪.‬‬
‫‪ ‬ﺳﺎده ﺗﺮﯾﻦ راه ﮐﻪ ﺗﺎﮐﻨﻮن ﻫﻢ اﺳﺘﻔﺎده ﮐﺮدﯾﻢ وارد ﮐﺮدن ﻧﺎم ﻣﺎﺗﺮﯾﺲ ﺑﺪون ﻋﻼﻣﺖ ; اﺳﺖ‪.‬‬
‫;‪x = 1:5‬‬
‫ﭼﻮن در اﻧﺘﻬﺎ ‪ semicolon‬ﻗﺮار داده ﺷﺪه ‪ x‬ﻧﻤﺎﯾﺶ داده ﻧﻤﯽ ﺷﻮد‪.‬‬

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

‫‪Display Function‬‬

‫‪ ‬دﺳﺘﻮر ‪ disp‬ﺑﺮاي ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت ﻣﺎﺗﺮﯾﺲ ﺑﺪون ﻧﻤﺎﯾﺶ ﻧﺎم ﻣﺎﺗﺮﯾﺲ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬

‫)‪disp(x‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬

‫‪ ‬دﺳﺘﻮر ‪ disp‬ﻫﻤﭽﻨﯿﻦ ﺑﺮاي ﻧﻤﺎﯾﺶ ﯾﮏ ﻣﺘﻦ )‪ (string‬ﮐﻪ در ﭘﺮاﻧﺘﺰ ‪ disp‬ﻗﺮار داده ﻣﯽ ﺷﻮد ﻧﯿﺰ ﮐﺎرﺑﺮد‬
‫دارد‪.‬‬
‫;)'‪disp('The values in the x matrix are:‬‬
‫‪١۶٩‬‬
‫‪The values in the x matrix are:‬‬
‫‪Dr. Seyyed Arash Haghpanah‬‬
‫ وارد‬C.W. ‫ ﻋﺒﺎرت زﯾﺮ را در‬.‫ وارد ﻣﯽ ﺷﻮد ﯾﮏ آراﯾﻪ از ﮐﺎراﮐﺘﺮﻫﺎ وارد ﻣﯽ ﺷﻮد‬string ‫ در واﻗﻊ وﻗﺘﯽ ﯾﮏ‬
:‫ﮐﻨﯿﺪ‬
'The values in the x matrix are:'

ans =
'The values in the x matrix are:'
:‫ ﻧﮕﺎه ﮐﻨﯿﺪ‬workspace ‫ اﮔﺮ ﺑﻪ‬

:‫ اﺳﺘﻔﺎده ﺷﻮﻧﺪ‬x ‫ ﻣﯽ ﺗﻮاﻧﺪ ﻫﻤﺮاه ﺑﺎ ﻫﻢ ﺑﺮاي ﻧﻤﺎﯾﺶ ﺑﻬﺘﺮ‬disp ‫ اﯾﻦ دو دﺳﺘﻮر‬

disp('The values in the x matrix are:');


disp(x)

The values in the x matrix are:


1 2 3 4 5

١٧٠

Dr. Seyyed Arash Haghpanah


‫‪ ‬دو دﺳﺘﻮر ‪ disp‬در دو ﺧﻂ ﺟﺪاﮔﺎﻧﻪ ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮﻧﺪ‪ .‬ﻣﯽ ﺗﻮان اﯾﻦ ﻣﺴﺎﻟﻪ را ﺑﺎ ﺳﺎﺧﺘﻦ ﯾﮏ ﻣﺎﺗﺮﯾﺲ‬
‫ﺗﺮﮐﯿﺒﯽ از دو ﺧﺮوﺟﯽ ‪ x‬و ‪ string‬ﺑﺎ اﺳﺘﻔﺎده از ﺗﺎﺑﻊ ‪ (number to string) num2str‬ﺣﻞ ﮐﺮد‪ .‬ﺑﺎ اﯾﻦ‬
‫ﻣﺎﺗﺮﯾﺲ ‪ x‬ﻫﻢ ﺑﻪ ﯾﮏ ‪ string‬ﺗﺒﺪﯾﻞ ﻣﯽ ﺷﻮد و ﻫﻤﺮاه ﺑﺎ ‪ string‬ﻗﺒﻞ ﺑﻪ ﻧﻤﺎﯾﺶ در ﻣﯽ آﯾﺪ‪.‬‬

‫)])‪disp(['The values in the x array are:' num2str(x‬‬

‫‪The values in the x array are: 1 2 3 4 5‬‬

‫‪ ‬ﺗﺎﺑﻊ ‪ num2str‬ﯾﮏ آراﯾﻪ از اﻋﺪاد را ﺑﻪ آراﯾﻪ اي از ﮐﺎراﮐﺘﺮﻫﺎ ﺗﺒﺪﯾﻞ ﻣﯽ ﮐﻨﺪ‪ .‬در ﻣﺜﺎل ﺑﺎﻻ از دو آراﯾﻪ‬
‫ﮐﺎراﮐﺘﺮي ﺑﻪ ﮐﻤﮏ ﺑﺮاﮐﺖ ﯾﮏ آراﯾﻪ ﺑﺰرﮔﺘﺮ ﺳﺎﺧﺘﯿﻢ‪ .‬ﻣﯽ ﺗﻮان ﻣﺎﺗﺮﯾﺲ ﺳﺎﺧﺘﻪ ﺷﺪه را ﻧﻤﺎﯾﺶ داد‪:‬‬

‫])‪A = ['The values in the x array are: ' num2str(x‬‬

‫= ‪A‬‬
‫‪The values in the x array are: 1 2 3 4 5‬‬

‫‪١٧١‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪Formatted Output—The fprintf Function‬‬

‫‪ ‬ﺗﺎﺑﻊ ‪ (formatted print function) fprintf‬ﮐﻨﺘﺮل ﺑﯿﺸﺘﺮي ﺑﺮ روي ﺧﺮوﺟﯽ ﻫﺎ اراﺋﻪ ﻣﯽ دﻫﺪ‪.‬‬
‫‪ ‬اﯾﻦ ﺗﺎﺑﻊ ﻋﻼوه ﺑﺮ ﻧﻤﺎﯾﺶ ‪ text‬و ﻣﺎﺗﺮﯾﺲ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮ روي ﻓﺮﻣﺖ ﻧﻤﺎﯾﺶ ﺧﺮوﺟﯽ ﻫﺎ ﻧﯿﺰ ﮐﻨﺘﺮل داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬
‫‪ ‬ﺷﮑﻞ ﮐﻠﯽ دﺳﺘﻮر ‪ fprintf‬ﺷﺎﻣﻞ دو ﭘﺎراﻣﺘﺮ اﺳﺖ‪ .‬ﯾﮑﯽ ﺑﺮاي ‪ string‬و دﯾﮕﺮي ﻟﯿﺴﺘﯽ ﺑﺮاي ﻣﺎﺗﺮﯾﺲ ﻫﺎ‪:‬‬

‫)‪fprintf(format-string, var,. . .‬‬


‫‪ ‬ﻣﺜﺎل زﯾﺮ را در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ‪:‬‬

‫;‪cows = 5‬‬
‫)‪fprintf('There are %f cows in the pasture', cows‬‬

‫‪There are 5.000000 cows in the pasture‬‬


‫‪ ‬در ‪ string‬اول ﯾﮏ ﻋﻼﻣﺖ ‪ %‬ﻣﺸﺎﻫﺪه ﻣﯽ ﺷﻮد ﮐﻪ ﻣﻘﺪار ﻣﺘﻐﯿﺮ )‪ (cows‬را ﺑﻪ ﺟﺎي آن ﻗﺮار ﻣﯽ دﻫﺪ‪.‬‬
‫‪ ‬ﻫﻤﭽﻨﯿﻦ ﺑﻌﺪ از ﻋﻼﻣﺖ ‪ %‬اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﻓﺮﻣﺖ ﻧﻤﺎﯾﺶ ﻣﻮرد ﻧﻈﺮ ﻗﺮار داده ﻣﯽ ﺷﻮد‪ .‬در اﯾﻦ ﻣﺜﺎل ‪%f‬‬
‫ﺑﻪ ‪ MATLAB‬ﻣﯽ ﮔﻮﯾﺪ ﻣﻘﺪار ‪cows‬را ﺑﻪ ﺻﻮرت ﭘﯿﺶ ﻓﺮض ‪ fixed-point‬ﻧﻤﺎﯾﺶ دﻫﺪ‪.‬‬
‫‪ ‬ﻓﺮﻣﺖ ﭘﯿﺶ ﻓﺮض ‪ 6‬ﻋﺪد ﺑﻌﺪ از اﻋﺸﺎر را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪١٧٢‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ ‬ﻓﺮﻣﺖ ﻫﺎي دﯾﮕﺮ ﻋﺒﺎرﺗﻨﺪ از‬

‫‪ MATLAB ‬ﺑﻌﺪ از ‪ fprintf‬ﯾﮏ ﺧﻂ ﺟﺪﯾﺪ اﯾﺠﺎد ﻧﻤﯽ ﮐﻨﺪ‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺑﻌﺪ از اﺟﺮاي ﺧﻂ ﻗﺒﻠﯽ ﻣﺸﺎﺑﻪ‬
‫زﯾﺮ ﻣﺸﺎﻫﺪه ﺧﻮاﻫﯿﺪ ﮐﺮد‪:‬‬
‫>>‪There are 5.000000 cows in the pasture‬‬

‫‪ ‬اﮔﺮ ﺧﻂ دﯾﮕﺮي را اﺟﺮا ﮐﻨﯿﻢ ﻧﺘﺎﯾﺞ در اداﻣﻪ ﻧﺘﺎﯾﺞ ﻗﺒﻠﯽ در ﻫﻤﺎن ﺧﻂ ﻧﺸﺎن داده ﻣﯽ ﺷﻮد‪.‬‬

‫‪١٧٣‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


cows = 5;
fprintf('There are %f cows in the pasture ', cows)
cows = 6;
fprintf('There are %f cows in the pasture ', cows)

There are 5.000000 cows in the pasture There are 6.000000


cows in the pasture>>
‫\ ﻗﺮار داده ﺷﻮد ﮐﻪ ﺑﻪ‬n ‫ ﻋﺒﺎرت‬string ‫ ﺧﻂ ﺟﺪﯾﺪي را ﺷﺮوع ﮐﻨﺪ ﺑﺎﯾﺪ در اﻧﺘﻬﺎي‬MATLAB ‫ ﺑﺮاي اﯾﻨﮑﻪ‬

cows = 5; .‫ ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد‬linefeed ‫آن‬


fprintf('There are %f cows in the pasture \n', cows)
cows = 6;
fprintf('There are %f cows in the pasture \n', cows)

There are 5.000000 cows in the pasture


There are 6.000000 cows in the pasture

١٧۴

Dr. Seyyed Arash Haghpanah


‫‪ backslash (\) ‬و )‪ slash (/‬دو ﮐﺎراﮐﺘﺮ ﻣﺘﻔﺎوت ﻫﺴﺘﻨﺪ و اﺳﺘﻔﺎده ﺟﺎﺑﻪ ﺟﺎي آن ﻫﺎ ﯾﮑﯽ از اﺷﺘﺒﺎﻫﺎت‬
‫ﻣﺘﺪاول اﺳﺖ‪ .‬اﮔﺮ ﺑﺮاي ‪ linefeed‬ﺑﻪ اﺷﺘﺒﺎه از ‪ slash‬اﺳﺘﻔﺎده ﺷﻮد ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن داده ﻣﯽ ﺷﻮد‪.‬‬

‫‪There are 5.000000 cows in the pasture /n‬‬

‫‪ ‬ﻋﺒﺎرت ‪ \t‬ﺑﺎ ﯾﮏ ‪ tab‬ﻓﺎﺻﻠﻪ اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪ .‬اﯾﻦ ﻋﺒﺎرت ﺑﺮاي اﯾﺠﺎد ﺟﺪاول ﻣﻔﯿﺪ اﺳﺖ و ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﮐﻪ‬
‫ﺟﺪول ﺑﻪ ﺻﻮرت ﻣﻨﻈﻢ و دادﻫﺎ زﯾﺮ ﻫﻢ ﻗﺮار ﺑﮕﯿﺮﻧﺪ‪.‬‬
‫‪ ‬در ﺗﻨﻈﯿﻤﺎت ‪ fprintf‬دو ﺗﻨﻈﯿﻢ ﺑﻪ ﻧﺎم ‪ width field‬و ‪ precision field‬دارﯾﻢ‪.‬‬
‫‪ Width field ‬ﺣﺪاﻗﻞ ﺗﻌﺪاد ﮐﺎراﮐﺘﺮ ﺧﺮوﺟﯽ را ﮐﻨﺘﺮل ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪ Precision field ‬ﺑﻌﺪ از )‪ (.‬ﻣﯽ آﯾﺪ و ﺗﻌﺪاد اﻋﺪاد اﻋﺸﺎري را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ‪%8.2f‬‬
‫ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺣﺪاﻗﻞ ﻃﻮل ﮐﻠﯽ ‪ 8‬رﻗﻢ اﺳﺖ و دو ﺗﺎ از آن ﻫﺎ ﺑﻌﺪ از اﻋﺸﺎر ﻧﺸﺎن داده ﻣﯽ ﺷﻮد‪.‬‬
‫;‪voltage = 3.5‬‬
‫;)‪fprintf('The voltage is %8.2f millivolts \n',voltage‬‬

‫‪The voltage is‬‬ ‫‪3.50 millivolts‬‬

‫‪ ‬ﻓﻀﺎي ﺧﺎﻟﯽ ﻗﺒﻞ از ﻋﺪد ‪ 3.50‬ﺑﻪ اﯾﻦ دﻟﯿﻞ اﺳﺖ ﮐﻪ ‪ 6‬رﻗﻢ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه ﺑﻮد ﮐﻪ ﺑﺎ دو رﻗﻢ اﻋﺸﺎر ‪ 8‬رﻗﻢ‬ ‫‪١٧۵‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬ ‫ﻣﯽ ﺷﻮد‪.‬‬


‫‪ ‬اﻏﻠﺐ اوﻗﺎت ﻣﺘﻐﯿﺮي ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد ﯾﮏ ﻣﺎﺗﺮﯾﺲ اﺳﺖ‪.‬‬
‫;‪x = 1:5‬‬

‫‪ MATLAB ‬ﻓﺮﻣﺖ ‪ string‬درون ‪ fprintf‬را ﺑﺮاي ﺗﻤﺎم ﻣﻘﺎدﯾﺮ ﻣﺎﺗﺮﯾﺲ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪.‬‬

‫;)‪fprintf('%8.2f \n',x‬‬

‫‪1.00‬‬
‫‪2.00‬‬
‫‪3.00‬‬
‫‪4.00‬‬
‫‪5.00‬‬

‫‪ ‬اﮔﺮ ﻣﺘﻐﯿﺮ‪ ،‬ﯾﮏ ﻣﺎﺗﺮﯾﺲ دو ﺑﻌﺪي ﺑﺎﺷﺪ‪ MATLAB ،‬از ﯾﮏ ﺳﺘﻮن ﺷﺮوع ﻣﯽ ﮐﻨﺪ از ﺳﻄﺮ اول ﺗﺎ اﻧﺘﻬﺎ در ان‬
‫ﺳﺘﻮن ﻣﻘﺎدﯾﺮ را ﻣﯽ ﺧﻮاﻧﺪ و ﺳﭙﺲ ﺳﺘﻮن دوم و ﺳﺘﻮن ﻫﺎي ﺑﻌﺪ ﺑﻪ ﻫﻤﯿﻦ ﺗﺮﺗﯿﺐ ﻣﯽ ﺧﻮاﻧﺪ‪.‬‬

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


‫‪1.00‬‬
‫;)‪fprintf('%8.2f \n',x‬‬ ‫‪3.00‬‬
‫‪2.00‬‬
‫‪4.00‬‬
‫‪١٧۶‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


feet = 1:3;
inches = feet.*12;
table = [feet;inches]

table =
1 2 3
12 24 36

fprintf('%4.0f %7.2f \n',table)

1 12.00
2 24.00
3 36.00

‫ وارد‬fprintf ‫ ﻣﺴﺘﻘﯿﻢ ﻫﺮ ﮐﺪام از ﺑﺮدارﻫﺎ در ﺗﺎﺑﻊ‬table ‫ ﺷﺎﯾﺪ ﭘﯿﺸﻨﻬﺎد ﺷﻮد ﮐﻪ ﺑﻪ ﺟﺎي ﺳﺎﺧﺖ ﻣﺎﺗﺮﯾﺲ‬
.‫ﺷﻮﻧﺪ‬
fprintf('%4.0f %7.2f \n', feet, inches)

1 2.00
3 12.00
24 36.00 ١٧٧

Dr. Seyyed Arash Haghpanah


‫‪ ‬ﺗﺎﺑﻊ ‪ fprintf‬اﺑﺘﺪا ﺗﻤﺎﻣﯽ ﻣﻘﺎدﯾﺮ ﻣﺎﺗﺮﯾﺲ ‪ feet‬را ﻣﯽ ﺧﻮاﻧﺪ ﺑﻌﺪ از ﻣﺎﺗﺮﯾﺲ ‪ inches‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ ﺑﻪ‬
‫ﻫﻤﯿﻦ دﻟﯿﻞ ﺧﺮوﺟﯽ ﺑﺎﻻ ﻣﻮرد ﻧﻈﺮ ﻣﺎ ﻧﯿﺴﺖ‪ .‬ﺑﻨﺎﺑﺮ اﯾﻦ در اﮐﺜﺮ ﻣﻮارد ﺧﺮوﺟﯽ ﻫﺎ ﺑﻪ ﺻﻮرت ﯾﮏ ﻣﺎﺗﺮﯾﺲ واﺣﺪ‬
‫ﮔﺮوه ﺑﻨﺪي ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪ ‬اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ از ﻋﻼﻣﺖ ‪ %‬در دﺳﺘﻮر ‪ fprintf‬اﺳﺘﻔﺎده ﻧﻤﺎﯾﯿﺪ ﺑﺎﯾﺪ دوﺑﺎر ﭘﺸﺖ ﺳﺮ ﻫﻢ آن را ﺑﻨﻮﯾﺴﯿﺪ ﺗﺎ آن‬
‫را ﺑﺎ ﻓﺮﻣﺖ داده اﺷﺘﺒﺎه ﻧﮕﯿﺮد‪.‬‬

‫)‪fprintf('The interest rate is %5.2f %% \n', 5‬‬

‫‪The interest rate is 5.00 %‬‬

‫‪١٧٨‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


fprintf ‫ اﯾﺠﺎد ﺟﺪاول ﻣﻨﻈﻢ ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‬

n=5;
N=1:5;
x=linspace(-pi,pi,n);
y=x/10^6;
z=x*10^6;
table=[N;x;y;z];
fprintf('%d\t %f\t %f\t %f\t \n', table)

1 -3.141593 -0.000003 -3141592.653590


2 -1.570796 -0.000002 -1570796.326795
3 0.000000 0.000000 0.000000
4 1.570796 0.000002 1570796.326795
5 3.141593 0.000003 3141592.653590

١٧٩

Dr. Seyyed Arash Haghpanah


fprintf('%d\t %.2f\t %.2f\t %.2f\t \n', table)

1 -3.14 -0.00 -3141592.65

2 -1.57 -0.00 -1570796.33

3 0.00 0.00 0.00

4 1.57 0.00 1570796.33

5 3.14 0.00 3141592.65

١٨٠

Dr. Seyyed Arash Haghpanah


‫)‪fprintf('%d\t %8.2f\t %13.3e\t %13.3e\t \n', table‬‬

‫‪1‬‬ ‫‪-3.14‬‬ ‫‪-3.142e-06‬‬ ‫‪-3.142e+06‬‬


‫‪2‬‬ ‫‪-1.57‬‬ ‫‪-1.571e-06‬‬ ‫‪-1.571e+06‬‬
‫‪3‬‬ ‫‪0.00‬‬ ‫‪0.000e+00‬‬ ‫‪0.000e+00‬‬
‫‪4‬‬ ‫‪1.57‬‬ ‫‪1.571e-06‬‬ ‫‪1.571e+06‬‬
‫‪5‬‬ ‫‪3.14‬‬ ‫‪3.142e-06‬‬ ‫‪3.142e+06‬‬

‫‪ ‬ﻋﻼوه ﺑﺮ اﯾﺠﺎد ﺧﺮوﺟﯽ ﺑﺎ ﻓﺮﻣﺖ ﮐﻨﺘﺮل ﺷﺪه در ﻣﺤﯿﻂ ‪ ،C.W.‬دﺳﺘﻮر ‪ fprintf‬ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي ارﺳﺎل‬
‫ﺧﺮوﺟﯽ ﺑﺎ ﻓﺮﻣﺖ ﮐﻨﺘﺮل ﺷﺪه ﺑﻪ ﻓﺎﯾﻞ ﻫﺎ ﻫﻢ اﺳﺘﻔﺎده ﺷﻮد‪ .‬ﺑﺮاي اﯾﻦ ﮐﺎر ﻻزم اﺳﺖ اﺑﺘﺪا ﯾﮏ ﻓﺎﯾﻞ ﺳﺎﺧﺘﻪ و ﺑﺎز‬
‫ﺷﻮد‪:‬‬
‫;)'‪file_id = fopen('my_output_file.txt', 'wt‬‬

‫‪ ‬اﯾﻦ دﺳﺘﻮر ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ اﺳﻢ ‪ my-output_file‬اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪ 'wt‘ .‬اﯾﻦ اﻣﮑﺎن را ﻣﯽ دﻫﺪ ﺗﺎ داده روي‬
‫اﯾﻦ ﻓﺎﯾﻞ ‪ write‬ﺷﻮد‪.‬‬
‫)‪fprintf(file_id, 'Some example output is %4.2f \n', pi*1000‬‬

‫‪١٨١‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪The sprintf Function‬‬
‫‪ ‬ﺗﺎﺑﻊ ‪ sprintf‬ﮐﺎﻣﻼ ﻣﺸﺎﺑﻪ ‪ fprintf‬اﺳﺖ ﺑﺎ اﯾﻦ ﺗﻔﺎوت ﮐﻪ ﺑﺮ ﺧﻼف ‪ fprintf‬ﮐﻪ ﺗﻨﻬﺎ ﻧﺘﺎﯾﺞ را ﺑﻪ ‪C.W.‬‬
‫ﻣﯽ ﻓﺮﺳﺘﺪ‪ ،‬ﺗﺎﺑﻊ ‪ sprintf‬ﺑﻪ ﺧﺮوﺟﯽ ﯾﮏ ﻧﺎم ﻣﯽ دﻫﺪ و ﺳﭙﺲ آن را ﺑﻪ ‪ C.W.‬ﻣﯽ ﻓﺮﺳﺘﺪ‪.‬‬

‫)‪a = sprintf('Some example output is %4.2f \n', pi*1000‬‬

‫= ‪a‬‬
‫‪Some example output is 3141.59‬‬

‫‪ ‬ﺣﺎل ﮐﺎرﺑﺮد اﯾﻦ ﺗﺎﺑﻊ در ﯾﮏ ﻣﺜﺎل ﺧﻮاﻫﯿﻢ دﯾﺪ‪.‬‬

‫ﺑﺪﺳﺖ ﻣﯽ اﯾﺪ‪.‬‬ ‫=‬ ‫‪ ‬ﻣﺜﺎل ‪ :7-3‬در ﻣﺜﺎل ﻫﺎي ﻗﺒﻞ دﯾﺪﯾﻢ ﮐﻪ ﺑﺮد ﯾﮏ ﭘﺮﺗﺎﺑﻪ از راﺑﻄﻪ ) ‪(2‬‬

‫ﻣﻘﺪار ﺑﺮد را ﺑﺮاي زواﯾﺎي ﻣﺨﺘﻠﻒ از ‪ 0‬ﺗﺎ ‪ 90‬درﺟﻪ ﺣﺴﺎب ﮐﻨﯿﺪ و در ﯾﮏ ﻧﻤﻮدار ﺑﺮد را ﺑﺮ ﺣﺴﺐ زاوﯾﻪ رﺳﻢ‬
‫ﮐﻨﯿﺪ‪ .‬ﺑﺮ روي ﻧﻤﻮدار ﯾﮏ ‪ textbox‬اﯾﺠﺎد ﮐﻨﯿﺪ ﮐﻪ در آن ﻣﻘﺪار ﻣﺎﮐﺰﯾﻤﻢ ﺑﺮد را ﻧﺸﺎن دﻫﺪ‪.‬‬

‫‪١٨٢‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


% Example 7.3
% Find the maximum projectile range
% Create an annotated graph of the results
% Define the input parameters
g=9.9; %Acceleration due to gravity
velocity = 100; %Initial velocity, m/s^2
theta = [0:5:90]; %Launch angle in degrees
% Calculate the range
range = velocity^2/g*sind(2*theta);
% Calculate the maximum range
m = max(range);
% Create the input for the textbox
tinput=sprintf('Max range was %4.0f meters \n',m);
% Plot the results
plot(theta,range)
title('Range of a Projectile')
xlabel('Angle, degrees'), ylabel('Range, meters')
text(30,m,tinput)

١٨٣

Dr. Seyyed Arash Haghpanah


‫‪ ‬ﺗﺎﺑﻊ ‪ sprintf‬ﮐﺎﻣﻼ ﻣﺸﺎﺑﻪ ‪ fprintf‬اﺳﺖ ﺑﺎ اﯾﻦ ﺗﻔﺎوت ﮐﻪ ﺑﺮ ﺧﻼف ‪ fprintf‬ﮐﻪ ﺗﻨﻬﺎ ﻧﺘﺎﯾﺞ را ﺑﻪ ‪C.W.‬‬
‫ﻣﯽ ﻓﺮﺳﺘﺪ‪ ،‬ﺗﺎﺑﻊ ‪ sprintf‬ﺑﻪ ﺧﺮوﺟﯽ ﯾﮏ ﻧﺎم ﻣﯽ دﻫﺪ و ﺳﭙﺲ آن را ﺑﻪ ‪ C.W.‬ﻣﯽ ﻓﺮﺳﺘﺪ‪.‬‬

‫‪ ‬ﺣﺎل ﮐﺎرﺑﺮد اﯾﻦ ﺗﺎﺑﻊ در ﯾﮏ ﻣﺜﺎل ﺧﻮاﻫﯿﻢ دﯾﺪ‪.‬‬

‫ﺑﺪﺳﺖ ﻣﯽ اﯾﺪ‪.‬‬ ‫=‬ ‫‪ ‬ﻣﺜﺎل ‪ :7-3‬در ﻣﺜﺎل ﻫﺎي ﻗﺒﻞ دﯾﺪﯾﻢ ﮐﻪ ﺑﺮد ﯾﮏ ﭘﺮﺗﺎﺑﻪ از راﺑﻄﻪ ) ‪(2‬‬

‫ﻣﻘﺪار ﺑﺮد را ﺑﺮاي زواﯾﺎي ﻣﺨﺘﻠﻒ از ‪ 0‬ﺗﺎ ‪ 90‬درﺟﻪ ﺣﺴﺎب ﮐﻨﯿﺪ و در ﯾﮏ ﻧﻤﻮدار ﺑﺮد را ﺑﺮ ﺣﺴﺐ زاوﯾﻪ رﺳﻢ‬
‫ﮐﻨﯿﺪ‪ .‬ﺑﺮ روي ﻧﻤﻮدار ﯾﮏ ‪ textbox‬اﯾﺠﺎد ﮐﻨﯿﺪ ﮐﻪ در آن ﻣﻘﺪار ﻣﺎﮐﺰﯾﻤﻢ ﺑﺮد را ﻧﺸﺎن دﻫﺪ‪.‬‬

‫‪١٨۴‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪ MATLAB ‬ﺗﻮاﻧﺎﯾﯽ ﺧﻮاﻧﺪن و ﻧﻮﺷﺘﻦ ﺑﺴﯿﺎري از ﻓﺮﻣﺖ ﻫﺎ را دارد‪ .‬از ﻓﺮﻣﺖ ﻫﺎي ﻣﻔﯿﺪ ﮐﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‬
‫‪ xls‬ﯾﺎ ‪ xlsx‬ﻓﺎﯾﻞ ﻫﺎي ‪ Excel‬اﺳﺖ‪.‬‬

‫)'‪xlsread('filename.xls‬‬

‫)‪xlswrite('filename.xls', M‬‬

‫‪ ‬ﮐﻪ ‪ M‬آراﯾﻪ اي اﺳﺖ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ ذﺧﯿﺮه ﻧﻤﺎﯾﯿﻢ‪.‬‬

‫;)'‪a=xlsread('name.xlsx',1, 'B3:B143‬‬

‫‪١٨۵‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪Publish Features‬‬

‫‪ ‬ﯾﮏ وﯾﮋﮔﯽ ﻣﻔﯿﺪ ‪ MATLAB‬ﮐﻪ درﮔﺰارش ﻧﻮﯾﺴﯽ ﻣﯽ ﺗﻮاﻧﺪ ﮐﺎرﺑﺮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬وﯾﮋﮔﯽ ‪ publish‬اﺳﺖ‪.‬‬
‫‪ ‬ﺑﺎ اﯾﻦ وﯾﮋﮔﯽ ﻣﯽ ﺗﻮان ﮐﺪ ﻧﻮﺷﺘﻪ ﺷﺪه را ﺑﻪ ﻫﻤﺮاه ﻧﺘﺎﯾﺞ در ﯾﮏ ﻓﺎﯾﻞ واﺣﺪ ﻣﻨﺘﺸﺮ ﮐﺮد‪ .‬اﯾﻦ ﻓﺎﯾﻞ ﻣﯽ ﺗﻮاﻧﺪ‬
‫ﻓﺮﻣﺖ ﻫﺎي ﮔﻮﻧﺎﮔﻮن ﻣﺜﻞ ‪ pdf ،doc ،html‬ﯾﺎ ‪ ppt‬داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬
‫‪ ‬اﮔﺮ در ﺑﺮﻧﺎﻣﻪ ‪M-file‬دﺳﺘﻮر ‪ input‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ اﯾﻦ وﯾﮋﮔﯽ ﮐﺎراﯾﯽ ﻧﺪارد‪.‬‬
‫‪ ‬ﺑﺮاي اﯾﻦ ﮐﺎر ‪ M-file‬ﻣﻮرد ﻧﻈﺮ را ﺑﺎز ﻧﻤﻮده و از ﻣﻨﻮي ﺑﺎﻻ‪ publish Tab ،‬را اﻧﺘﺨﺎب ﻣﯽ ﮐﻨﯿﻢ‪ .‬در ﻗﺴﻤﺖ‬
‫ﺳﻤﺖ راﺳﺖ اﯾﻦ ‪ Tab‬ﮔﺰﯾﻨﻪ ‪ publish‬و ﮔﺰﯾﻨﻪ ‪ Edit Publishing Option‬را اﻧﺘﺨﺎب ﮐﻨﯿﺪ‪.‬‬
‫‪ ‬در ﻗﺴﻤﺖ ‪ output file format‬ﻣﯽ ﺗﻮان ﻓﺮﻣﺖ ﺧﺮوﺟﯽ را ﺗﻌﯿﯿﻦ ﮐﺮد‪.‬‬
‫‪ ‬در ﻧﻬﺎﯾﺖ ﺑﺎ ﻓﺸﺮدن ﮔﺰﯾﻨﻪ ‪ publish‬ﻓﺎﯾﻞ ﻣﻮرد ﻧﻈﺮ ﺳﺎﺧﺘﻪ ﻣﯽ ﺷﻮد‪.‬‬

‫‪١٨۶‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


‫‪Graphical Input‬‬

‫‪ MATLAB ‬اﺑﺰاري دارد ﮐﻪ ﺗﻮﺳﻂ آن ﻣﯽ ﺗﻮان ﻣﺠﻤﻮﻋﻪ اي از ‪ x‬و ‪ y‬ﻫﺎي ﻧﻘﺎط را از روي ﻧﻮدار اﺳﺘﺨﺮاج‬
‫ﮐﺮد‪.‬‬
‫)‪[x,y] = ginput(n‬‬

‫‪ ‬از ﮐﺎرﺑﺮ ﻣﯽ ﺧﻮاﻫﺪ ﮐﻪ ‪ n‬ﻧﻘﻄﻪ را از ﭘﻨﺠﺮه ﮔﺮاﻓﯿﮑﯽ اﻧﺘﺨﺎب ﮐﻨﺪ‪ .‬اﮔﺮ ﻣﻘﺪار ‪ n‬داده ﻧﺸﻮد‪ .‬ﺗﺎ زﻣﺎﻧﯽ ﮐﻪ دﮐﻤﻪ‬
‫‪[x,y] = ginput‬‬ ‫‪ Enter‬زده ﻧﺸﺪه ﺑﺎﺷﺪ ﮔﺮﻓﺘﻦ ﻧﻘﺎط اداﻣﻪ ﻣﯽ ﯾﺎﺑﺪ‪.‬‬

‫;‪x = 5:30‬‬
‫;‪y = x.^2 - 40.*x + 400‬‬
‫)‪plot(x,y‬‬
‫)]‪axis([5,30,-50,250‬‬

‫‪ ‬در اﯾﻦ ﻣﺮﺣﻠﻪ دو ﺧﻂ ﻋﻤﻮد ﺑﺮ ﻫﻢ در ﭘﻨﺠﺮه ﮔﺮاﻓﯿﮑﯽ ﻧﺸﺎن داده ﻣﯽ ﺷﻮد ﮐﻪ ﻣﺤﻞ ﺗﻘﺎﻃﻊ آن دو‪ ،‬ﻧﻘﻄﻪ ﻣﻮرد‬
‫ﻧﻈﺮ اﺳﺖ‪ .‬ﺑﺎ ﮐﻠﯿﮏ ﮐﺮدن ﻣﯽ ﺗﻮان ﻧﻘﻄﻪ ﻣﻮرد ﻧﻈﺮ را اﻧﺘﺨﺎب ﮐﺮد و ﻫﻤﯿﻦ ﻋﻤﻠﯿﺎت را ﺑﺮاي ﻧﻘﺎط دﯾﮕﺮ اﻧﺠﺎم‬
‫داد و ﺑﻌﺪ از اﺗﻤﺎم ﮐﺎر ﮐﻠﯿﺪ ‪ Enter‬را ﻓﺸﺮد‪.‬‬
‫‪١٨٧‬‬

‫‪Dr. Seyyed Arash Haghpanah‬‬


Home Work
7.13 ‫ و‬7.9 ‫ و‬7.7 ‫ و‬7.6 ‫ ﺗﻤﺮﯾﻦ‬

١٨٨

Dr. Seyyed Arash Haghpanah

You might also like