2015-02-07 95 views
0

我用matlab Guide創建了一個簡單的GUI,並希望在其中一個回調函數中使用簡單的開關函數。在matlab回調函數中不起作用的開關函數

函數看起來如下:

ret = 0; 
switch intervall 
    case 1 
     ret = 0.82; 
    case 5 
     ret = 0.82; 
    case 10 
     ret = 0.78; 
    case 15 
     ret = 0.78; 
    case 30 
     ret = 0.78; 
    case 60 
     ret = 0.82; 
end 

變量「INTERVALL」是一個字符串,並且從用戶輸入檢索。然而,當我運行代碼的開關功能似乎永遠不會執行,且「RET」變量保持距離我已經在腳本中單獨執行這個代碼,它完美地工作的0 初始值不變...

誰能告訴我我做錯了什麼?

非常感謝您提前!

+0

更新問題目前與GUI。你可以發佈'.m'文件的完整代碼嗎? – Ratbert 2015-02-07 21:21:02

回答

0

如果intervall是一個字符串,則您的case參數應該是字符串。
例如:

ret = 0; 
switch intervall 
    case '1' 
     ret = 0.82; 
    case '5' 
     ret = 0.82; 
    case '10' 
     ret = 0.78; 
    case '15' 
     ret = 0.78; 
    case '30' 
     ret = 0.78; 
    case '60' 
     ret = 0.82; 
end 
+0

我以前試過這個,但它仍然不起作用。我也曾嘗試將intervall轉換爲數字,然後使用上面發佈的代碼,但仍然沒有結果。我認爲它必須對變量層次結構或類似的東西做些什麼...正如我所說,在一個單獨的腳本中,這就像一個魅力.. – Benvaulter 2015-02-07 21:14:36

0

我發現這個問題,這是不相關的開關功能。 intervall值是從一個彈出式菜單中檢索出來的,不知何故它們沒有被正確提取。該功能現在可用,謝謝你的幫助!

+0

你應該應該把這個問題標記爲「解決」,以便社區知道堆棧中存在少一個問題。 – Ratbert 2015-02-07 21:26:41