0

ワークスペースから変数にアクセスするためのリストボックスを作成しました。リストボックスで変数を強調表示して、ワークスペースからいくつかの変数をクリアしたいと思います。誰かが私にその方法を教えてもらえますか?

4

1 に答える 1

1

Here is an example GUI:

function clear_vars_gui
    %# create user interface
    hFig = figure('Name','Clear Variables', 'NumberTitle','off', ...
        'Menubar','none', 'Position',[300 300 200 300]);
    hList = uicontrol('style','listbox', 'Min',1, 'Max',10, ...
        'Units','normalized', 'Position',[0 0.1 1 0.9], 'Parent',hFig);
    uicontrol('style','push', 'String','clear', 'Callback',@button_cb, ...
        'Units','normalized', 'Position',[0 0 1 0.1], 'Parent',hFig);

    %# initialize listbox
    populateList();

    function populateList()
        %# populate listbox with variable names
        vars = evalin('base','who');
        set(hList, 'String',vars, 'Value',1)
        drawnow
    end
    function button_cb(o,e)
        %# get list of variables and the currently selected items
        vars = get(hList, 'String');
        idx = get(hList, 'Value');
        if isempty(vars), return; end

        %# filter to selected vars
        vars = vars(idx);

        %# clear variables in base workspace
        evalin('base', ['clearvars ' sprintf('%s ',vars{:})]);

        %# update listbox
        populateList();
    end
end

screenshot

于 2013-05-08T10:02:28.833 に答える