我正在尝试编写一个可以通过使用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
答案 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)