Using a variable in an input prompt

180 views (last 30 days)
I am trying to use the iterator (ii) of my for loop as a string in my input prompt. The code is shown below
for ii = 1:n
x = input('What is the orientation of molecule ' num2str(ii) 'in the x-direction?');
end
but this does not work. Any suggestions?

Accepted Answer

Walter Roberson
Walter Roberson on 6 Nov 2015
x = input(['What is the orientation of molecule ' num2str(ii) 'in the x-direction?']);

More Answers (2)

Wanbin Song
Wanbin Song on 6 Nov 2015
Input argument of 'input' function should be a text.
Your code shows that your input arguments of 'input' function consists of three string.
Just combine them as below.
for ii = 1:n
x = input(['What is the orientation of molecule ' num2str(ii) 'in the x-direction?']);
end
Then it will work.

Steven Lord
Steven Lord on 28 Sep 2024
Another possibility you can use in recent releases of MATLAB (since I think release R2016a) is to use a string array.
ii = 5;
promptMessage = "What is the orientation of molecule " + ii + " in the x direction?"
promptMessage = "What is the orientation of molecule 5 in the x direction?"
You could then pass promptMessage into the input function (or directly construct the prompt message inside the input call.) I didn't show that because calling input is not supported on MATLAB Answers.

Community Treasure Hunt

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

Start Hunting!