Matlab 如何刷绘图,然后将刷过的数据保存在GUI中?

Matlab 如何刷绘图,然后将刷过的数据保存在GUI中?,matlab,save,brush,autosave,Matlab,Save,Brush,Autosave,我读过几篇关于如何保存刷过的数据的帖子,但是,关于尝试这些帖子上的建议(、、和),它们似乎都不起作用。我在尝试这些建议时遇到的一个问题是,在刷取任何数据之前,程序一直运行到最后,因此,保存的数据是一个空矩阵 我的目标是: 刷数据,然后 保存刷过的数据 这是我尝试过的,但似乎不起作用: t=0:0.2:25; plot(t,sin(t),'.-'); brush on hBrushLine = findall(gca,'tag','Brushing'); brushedData = get(hBr

我读过几篇关于如何保存刷过的数据的帖子,但是,关于尝试这些帖子上的建议(、、和),它们似乎都不起作用。我在尝试这些建议时遇到的一个问题是,在刷取任何数据之前,程序一直运行到最后,因此,保存的数据是一个空矩阵

我的目标是:

  • 刷数据,然后

  • 保存刷过的数据

  • 这是我尝试过的,但似乎不起作用:

    t=0:0.2:25; plot(t,sin(t),'.-');
    brush on
    hBrushLine = findall(gca,'tag','Brushing');
    brushedData = get(hBrushLine, {'Xdata','Ydata'});
    brushedIdx = ~isnan(brushedData{1});
    brushedXData = brushedData{1}(brushedIdx);
    brushedYData = brushedData{2}(brushedIdx);
    

    有人能举个简单的例子说明如何做到这一点吗?我正试图在GUI中实现这一点。

    实际上我今天早上刚刚回答了这个问题

    请查看我对这个问题的回答,并记住我对答案的评论,我可能在最初的解决方案中犯了错误

    希望它也能帮助你


    总之,添加一个waitfor(gcf);output=varToSave(确保varToSave不是来自即将删除的句柄/对象),其中output是从GUI函数返回的输出。

    刷上
    后添加
    暂停
    可以实现以下目的:

    t=0:0.2:25; plot(t,sin(t),'.-');
    brush on
    pause
    hBrushLine = findall(gca,'tag','Brushing');
    brushedData = get(hBrushLine, {'Xdata','Ydata'});
    brushedIdx = ~isnan(brushedData{1});
    brushedXData = brushedData{1}(brushedIdx);
    brushedYData = brushedData{2}(brushedIdx);
    

    与中一样,
    waitfor(gcf)
    弹出一个新窗口。另外,你的答案并没有提到刷数据。你在GUI中说,你的GUI没有图形吗??而且,听起来好像你知道如何做“刷数据”部分,问题更多的是试图用这些数据做些什么,我的答案解决了这个问题。