Inputdlg requesting input to provide an output of 6 integers as a row vector
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
David Low
am 19 Feb. 2018
Bearbeitet: Stephen23
am 19 Feb. 2018
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 Kommentare
Akzeptierte Antwort
Stephen23
am 19 Feb. 2018
Bearbeitet: Stephen23
am 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 Kommentare
Weitere Antworten (1)
ES
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Whos finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!