Getting Coordinate input from user

I want to get several point 2d coordinates from the user and store the x and y coordinates in separate arrays. I'm using a for loop to do it but it doesn't assign the input to the variables, here's how I'm doing it:
for i=1:5
[x(i),y(i)]=input('Coordinates of Node')
end

3 Comments

it doesn't assign the input to the variables
Please do not explain, what the code does not do, but mention, what the code does do. An exact description contains a hint of the way to solve the problem usually.
it just gives an error of too many output arguments
Please post a complete copy of the message in the forum. You see, that the message explains the problem already.

Sign in to comment.

 Accepted Answer

According to the documentation, |input< has 1 output only:
help input
doc input
Then:
x = zeros(1, 5); % Pre-allocation
y = zeros(1, 5);
for i = 1:5
reply = input('Coordinates of Node')
x(i) = reply(1);
y(i) = reply(2);
end
The pre-allocation is not essential here, because waiting for the user input will take much more time than expanding the arrays x and y. But it is a good programming practice.

3 Comments

this actually works but then the user has to input each coordinate in a separate line. I want the user to input 2 numbers at once but assign each to a separate variable, Is this doable?
In a separate line? What did you try to get this impression? Maybe you want this:
for i = 1:5
reply = input(sprintf('Coordinates of Node %d: ', i), 's');
num = sscanf(reply, '%g %g');
x(i) = num(1);
y(i) = num(2);
end
Yes, That's exactly what I wanted. Thanks a lot

Sign in to comment.

More Answers (0)

Categories

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!