在matlab回调函数中不起作用的开关函数

问题描述:

我用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

如果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

我发现这个问题,这是不相关的开关功能。 intervall值是从一个弹出式菜单中检索出来的,不知何故它们没有被正确提取。该功能现在可用,谢谢你的帮助!

+0

你应该应该把这个问题标记为“解决”,以便社区知道堆栈中存在少一个问题。 – Ratbert 2015-02-07 21:26:41