If you're using a Command Window interface, then you could employ this function, which I wrote a while back. I use it to ensure the user gives a numerical input. It also insists on a scalar value. You can easily modify it to ensure that the number is real, and/or an integer, as well, by modifying the subfunction checknum.
function i = getnum(prompt, default)
if nargin < 2
default = [];
end
if isempty(default)
str = prompt;
else
if ~checknum(default)
error('Expecting numerical default argument');
end;
str = [prompt, ' [', num2str(default), '] '];
end;
i = [];
while isempty(i)
i = input(str, 's');
if isempty(i) && ~isempty(default)
i = default;
else
i = str2num(i);
if ~checknum(i)
disp('A single number expected');
i = [];
end
end
end
end
function i = checknum(x)
i = isnumeric(x) && isscalar(x);
end
Best Answer