如何阻止我的switch语句在Matlab中输出大小写

时间:2014-02-06 04:59:59

标签: matlab function

我正在尝试编写一个可以通过使用Matlab中的菜单语句完成3个任务的函数,但由于某种原因,它会一直使用我的函数答案输出案例编号。

    function fcn=jon2(x)

     fcn=menu('Choose a Function:','ceil','round','sign');

     switch fcn
       case 1
         ceil(x)
       case 2
         round(x)
       case 3
         sign(x)
     end
    end

当我输入12并选择回合时,答案就出来了:

ans =

12

ans =

 2

2 个答案:

答案 0 :(得分:5)

如果您将其定义为:fcn=jon2(x),则需要正确使用该功能 然后你应该用它来编写每个输出:

...
case 2
    fcn = round(x);
...

另外,使用;来禁止输出到命令行...

答案 1 :(得分:1)

虽然@natan已经找到了关键点,但我实际上会阻止在案例中分配你的switch变量。我可以想象这可能导致一些令人困惑的调试。此外,总是添加“否则”是一种良好的做法,您希望发生的事情当然取决于您。以下是我的建议:

function fcn=jon2(x)

yourChoice=menu('Choose a Function:','ceil','round','sign');

switch yourChoice
    case 1
        fcn = ceil(x);
    case 2
        fcn = round(x);
    case 3
        fcn = sign(x);
    otherwise
        error('Not all cases are handled')
end
end

当然,如果要输出操作的结果,这将要求您在没有分号的情况下调用该函数。例如:

myResult = jon2(10)