如果用户没有输入任何内容并在matlab中编辑输入的输入,如何重复输入?

时间:2012-12-23 10:04:54

标签: matlab

例如我有


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

2 个答案:

答案 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