Matlab 菜单中的菜单

Menu inside menu in Matlab

我使用命令 'menu' 创建了一个包含不同选项的菜单。问题是,我想单击其中一个选项,并在屏幕上显示另一个菜单,其中包含另一组选项。这种嵌套的菜单结构如何制作?

我的代码:

q=menu ('What point?:','opt1','opt2');
switch q
    case 'opt1'
        q1=menu('What subpoint?:','opt11','opt12');
        switch q1 
            case 'opt11'
            case 'opt12'
        end 
    case 'opt2'
        q2=menu('What subpoint?:','opt21','opt22');
         switch q2 
             case 'opt21'
             case 'opt22'
         end
end 

您的代码很好,除了 menu 返回的选择是数字,而不是选项字符串。所以你应该使用 case 1 而不是 case 'opt1'.

switch 的一个好的做法是包含 otherwise 块,例如

switch q
    case 1
        % do opt1
    case 2
        % do opt2
    otherwise
        disp(q)
        error('Invalid option')
end

然后你会知道它会由于你的情况的一些错误而进入 otherwise 块。