using variable inside input function

I am trying to get user input for node coordinates. For some reason the ouput in the command window does not show the variable number, but instead a square:
Input
for i =1:2
x(i)=input(['coordinate for x ' i ' in metres: ']);
end
Output
coordinate for x in metres:

1 Comment

num2str(i) so it doesn't just convert the number to a character position
I agree sprintf or fprintf may be a better approach.

Sign in to comment.

 Accepted Answer

['coordinate for x ' i ' in metres: ']
Concatenation between a character and a numeric value is define the same as if you had done
['coordinate for x ', char(i), ' in metres: ']
char(1) is the unprintable SOH (Start of Header) character, and char(2) is the unprintable STX (Start Of Text) character.
You should look at sprintf(). Or switch to string objects:
"coordinate for x " + i + " in metres: "
is well defined as formatting the number as text (according to ill-defined rules.)

More Answers (0)

Categories

Products

Community Treasure Hunt

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

Start Hunting!