Inputdlg requesting input to provide an output of 6 integers as a row vector
2 views (last 30 days)
Show older comments
I want to create a row of integers starting by asking an input from a user using the inputdlg function. I just need to make sure the output is a row vector with 6 integers.
0 Comments
Accepted Answer
Stephen23
on 19 Feb 2018
Edited: Stephen23
on 19 Feb 2018
Do NOT use str2num! Using sscanf is faster than str2num (and avoids the internal eval call that str2num hides inside):
>> c = inputdlg('Enter six space-separated integers:')
>> v = sscanf(c{1},'%d',[1,Inf])
v =
1 2 3 4 5 6
To ensure that there are six integers either add an assert:
assert(numel(v)==6,'Input exactly six integers.')
or a while loop:
v = [];
while numel(v)~=6
c = inputdlg('Enter six space-separated integers:');
v = sscanf(c{1},'%d',[1,Inf])
end
0 Comments
More Answers (1)
ES
on 19 Feb 2018
inputdata = [];
while(~isequal(size(inputdata), [1,6]))
x = inputdlg('Enter 6 integers as space-separated numbers:',...
'Sample', [1 50]);
inputdata = str2num(x{:});
end
0 Comments
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!