代码之家  ›  专栏  ›  技术社区  ›  Kamran Bigdely

如果用户输入了错误的输入,如何退出matlabm文件(而不是matlab本身)?

  •  12
  • Kamran Bigdely  · 技术社区  · 16 年前

    如果用户输入了错误的输入,如何退出matlabm文件(而不是matlab本身)?

    请不要建议'退出'或'退出'命令,因为他们终止整个matlab,我不想要它。

    3 回复  |  直到 14 年前
        1
  •  6
  •   Xzhsh    16 年前

    您只需输入一个error命令,比如error('bad user input'),它就会停止脚本。

    编辑:或者,您可以重构您的代码,使其不运行,除非您将输入标志设置为true。像这样的

    inp = input('>', s)
    
    if validateInput(inp)
        %do you stuff here or call your main function
    else
        fprintf('Invalid input')
    end
    
        2
  •  13
  •   YYC    16 年前

    我不知道你怎么定义“退出”,但是 error

    y = input('Please input a non-negative number: ');
    if(y<0)
        error('input must be non-negative');
    end
    
    disp( sprintf('y=%f', y ) );
    
        3
  •  7
  •   Dan    16 年前

    嘿,我想您可以使用try-catch组合来处理一个有些意外的错误,并对此做些什么。

    举个例子,

    function [ output ] = test(input)
    
      Bmat = [ 1 1 1 ]   % Some matrix
    
      try
        input*B;
      catch ME
        disp(ME.message)
        return;          % This is the statement that exits your function
      end
    
    end
    

    如果你跑了

    >> test([1 1 1])
    

    这里的变量“ME”只是一个用于错误处理的MATLAB对象,ME.message存储一个字符串,其中包含解释器捕获的错误类型。

    我刚刚又读了一遍你的问题。。。我假设命令'return'可能是您真正想要的,您将能够使用它从任何逻辑或循环语句以及函数中退出。

    您可以从MATLAB文档中阅读有关“return”命令和错误处理的更多信息,

    http://www.mathworks.com/access/helpdesk/help/techdoc/ref/return.html

    推荐文章