# Writing Functions that take inputs?

49 views (last 30 days)
Tyler Bodnarik on 30 Sep 2020
Edited: Stephen23 on 30 Sep 2020
Need help getting this function to execute.
So far I have:
r = input('What is the radius of the circle?')
x = input('What is the X - coordinate for the center of the circle?')
y = input('What is the Y - coordinate for the center of the circle?')
c = 'k';
function circleplot(x,y,r,c)
hold on
th = 0:pi/50:2*pi;
x_circle = r * cos(th) + x;
y_circle = r * sin(th) + y;
plot(x_circle, y_circle);
fill(x_circle, y_circle, c)
plot(x, y, 'kp', 'MarkerSize',15, 'MarkerFaceColor','k')
axis equal
end
When I run the code nothing happens expect the prompts asking me for data. Any advice?

Stephen23 on 30 Sep 2020
Edited: Stephen23 on 30 Sep 2020
"When I run the code nothing happens expect the prompts asking me for data."
You defined a function in a script (which is permitted syntax since R2016b) but you do not actually call the function anywhere. If you do not call a function it does not run: https://www.mathworks.com/help/matlab/learn_matlab/calling-functions.html
Here are two simple solutions to fix your code:
One: actually call the function in your script:
r = input('What is the radius of the circle?')
x = input('What is the X - coordinate for the center of the circle?')
y = input('What is the Y - coordinate for the center of the circle?')
c = 'k';
circleplot(x,y,r,c) % <- call it here !
function circleplot(x,y,r,c)
...
end
Two: get rid of the function, turn it into a simple script:
r = input('What is the radius of the circle?')
x = input('What is the X - coordinate for the center of the circle?')
y = input('What is the Y - coordinate for the center of the circle?')
c = 'k';
hold on
th = 0:pi/50:2*pi;
x_circle = r * cos(th) + x;
y_circle = r * sin(th) + y;
plot(x_circle, y_circle);
fill(x_circle, y_circle, c)
plot(x, y, 'kp', 'MarkerSize',15, 'MarkerFaceColor','k')
axis equal

Steven Lord on 30 Sep 2020
If you aren't sure where to start because you're not familiar with how to write MATLAB code, I suggest you start with the free MATLAB Onramp tutorial to quickly learn the essentials of MATLAB.