2

例如我有


x = input('value = ?')

如果用户只是在没有任何输入的情况下按回车,我该如何重复此命令,并且我想知道无论如何我可以编辑我的输入,就像在我键入后按“退格键”一样。

就像我现在有两个输入变量'


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

4

2 回答 2

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.

希望这对你有用。

于 2012-12-23T11:41:32.070 回答
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
于 2012-12-23T11:42:12.970 回答