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 comentario

Dr. Kelsey Joy
Dr. Kelsey Joy el 27 de Nov. de 2021
Editada: Dr. Kelsey Joy el 27 de Nov. de 2021
num2str(i) so it doesn't just convert the number to a character position
I agree sprintf or fprintf may be a better approach.

Iniciar sesión para comentar.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 19 de En. de 2019
['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.)

Más respuestas (0)

Categorías

Productos

Etiquetas

Preguntada:

el 19 de En. de 2019

Editada:

el 27 de Nov. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by