2014-02-06 18 views
0

我想通過使用Matlab中的菜單語句來編寫一個可以完成3個任務的函數,但由於某些原因,它不斷輸出我的函數答案。如何停止我的開關語句在Matlab中輸出大小寫

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 

回答

5

,你需要正確的使用功能,如果你將它定義爲:fcn=jon2(x) 那麼你應該使用它來編寫每個輸出:

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

此外,使用;打壓輸出到命令行...

+0

謝謝,我討厭愚蠢的愚蠢的錯誤。 – BulletB

1

雖然@natan已經找到臨界點我真的防止分配給機箱內部的開關變量。我可以想象,這可能會導致一些令人困惑的調試。此外,總是添加「否則」被認爲是良好的做法,您想要發生的事情當然是由您決定的。以下是我建議:

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) 
相關問題