Accepting multiple inputs in the form of an array
11 views (last 30 days)
Show older comments
How would I create an input function that asks for 6 unique integers within a finite rage say 1-100 so that is rejects an input other than 6 unique integers within the range and reasks the question.
0 Comments
Answers (2)
Stephen23
on 17 Feb 2020
Edited: Stephen23
on 17 Feb 2020
mnv = 1;
mxv = 100;
vec = [];
while numel(vec)~=6 || any(vec<mnv | vec>mxv) || any(mod(vec,1))
str = input('Enter six integers separated by spaces: ','s');
vec = sscanf(str,'%f',[1,Inf]);
end
And tested:
Enter six integers separated by spaces: 1 2 3 4 5
Enter six integers separated by spaces: 1 2 3 4 5 6.7
Enter six integers separated by spaces: 1 2 3 4 5 6789
Enter six integers separated by spaces: 1 2 3 4 5 6
>> vec
vec =
1 2 3 4 5 6
0 Comments
Bhaskar R
on 17 Feb 2020
Edited: Bhaskar R
on 17 Feb 2020
n_entr = 6;
low_lim = 1;
high_lim = 100;
arr = zeros(1, n_entr);
c = 1;
fl =1;
while fl
in = input('Enter unique value: ');
if in == -1
disp('Program terminated by user !!');
break;
elseif c == n_entr
arr(c) = in;
fl = 0;
disp('All value are taken !!');
elseif any(arr == in)
disp('Duplicate entry, Enter again');
continue;
elseif in>=low_lim & in<=high_lim
arr(c) = in;
c = c+1;
else
disp('Invalid entry, Enter again');
continue;
end
end
0 Comments
See Also
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!