例如我有
x = input('value = ?')
如果用户只是在没有任何输入的情况下按Enter键,我怎么能重复这个命令呢?我想知道我是否可以编辑输入,就像我键入后按“退格”一样。
就像我现在有两个输入变量'
x = input('??');
y = input('???');
如果在输出函数y被提示时插入了x的第一个输入数据,我可以编辑我的第一个输入。
衷心感谢任何愿意提供帮助的人。
对于第一种情况:
我想要一个像这样的代码
x = input('value = ?');
while x == %%no input%%
x = input('value = ?'); %prompt the input command again
end
和
while x==error %% I want x in numeric input only
x = input('value = ?'); %prompt the input command again
end
答案 0 :(得分:0)
对于第一种情况:
x = input('??'); % if the user just hits 'enter' x is an empty variable
while isempty( x )
x = input('??');
end
更健全的方法
x = str2double( input('Your input here:', 's') );
while ~isnan( x )
x = str2double( input('Your input here:', 's') );
end
命令input('??', 's')
按“原样”返回输入,不会尝试将其转换为数字。转换是通过命令str2double
完成的。现在,如果输入不一个数字(双精度),则str2double
会返回NaN
。这可以通过isnan
来捕获。
希望这适合你。
答案 1 :(得分:0)
重复空白,
x=''
while isempty(x)
x=input('value=');
end
对于非数字,您可以使用类似
的内容x=''
while isempty(x)
try
x=input('value=')
catch me
fprintf('enter a number\n')
end
end