0

这样做的目的只是将用户给他们绘制的绘图的名称存储到列表框中,这样他们就可以看到他们所做的历史,例如 1)用户画了一条线并将其称为“第一行”,因此列表框显示“第一行” ' 2) 用户然后绘制一个矩形并将其称为 'rectangle' 所以列表框显示 'firstline' 'rectangle'

到目前为止,我的相关代码如下所示。

 name = inputdlg('Enter a name for the Object', 'Line Name');

        %get the current list box contents and store to a handle array
        handles.currentHistory = get(handles.historyList, 'String');

        %now add the name the user enters to this array
        handles.currentHistory(size(handles.currentHistory)+1) = name;

        %now update the history list
        set(handles.historyList, 'String', handles.currentHistory);

这个的输出对于第一个来说很好,但随后会继续进行类似下面的操作,假设第一个、第二个和第三个调用了 3 个对象。

第一的

第二秒

第三第二第三

我正在努力理解为什么它以这种方式输出,并想知道如何简单地让它更新。

干杯。

4

1 回答 1

0

你可以这样做:

handles.currentHistory{end+1} = name; % add element after the last one

为此,您必须handles.currentHistory正确初始化:

handles.currentHistory = {};
于 2013-11-14T09:46:15.957 回答