MATLAB MATLAB Help -- how to ask user for 2 input variables

  • Thread starter sflesock
  • Start date
I have an assignment where we have to ask the user for a number of data points which then we will graph a linear regression.


Enter the number of input data points: 7
Enter [x y] pair for point 1: [1.1 1.01]
Enter [x y] pair for point 2: [2.2 2.30]
Enter [x y] pair for point 3: [3.3 3.05]
Enter [x y] pair for point 4: [4.4 4.28]
Enter [x y] pair for point 5: [5.5 5.75]
Enter [x y] pair for point 6: [6.6 6.48]
Enter [x y] pair for point 7: [7.7 7.84]


This is what the program should look like as we are asking the user for the inputs. (The brackets are what the user inputs). How should the code look to get 2 separate variables? Any help would be greatly appreciated!
 

Wrichik Basu

Gold Member
2018 Award
922
762
Matlab provides you with the inputdlg function for these purposes. Here is the documentation:
At the prompt, you will get a dialog box asking you for the various inputs. Put your code into a loop, and for each set, ask for the values of x and y using the above function.
Matlab:
prompt = {'Enter x:', 'Enter y:'};
dlgtitle1 = 'Enter values for point ';
for i=1:7
    dlgtitle = [dlgtitle1, num2str(i)];
    answer = inputdlg(prompt, dlgtitle);
    %extract x and y from answer
end
The answer matrix will have the two input values of x and y. Just extract them into your matrix for x and y.
 
Last edited:
392
202
If you're looking to prompt for text input as in your example, you can use the INPUT function with the 's' argument, you can add parsing code yourself. The 's' option captures the input as a string, so it can contain anything. Like so:

Code:
question = ['Enter [x y] pair for point ', num2str(k), ' '];  % I'm assuming k is the point number.
userinput = input(question, 's');
xy = str2num(userinput);
That will work if the user properly formats their input as two numbers separated by a space or comma, but might throw an error if their input syntax is incorrect. So you should probably embed it in a TRY... CATCH... END block.
 

Want to reply to this thread?

"MATLAB Help -- how to ask user for 2 input variables" You must log in or register to reply here.

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving
Top