MATLAB: Inputdlg requesting input to provide an output of 6 integers as a row vector

inputdlgstr2num

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.

Best Answer

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