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

时间:2013-06-26 16:09:40

标签: matlab save brush autosave

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

我的目标是:

  1. 刷数据,

  2. 保存拉丝数据。

  3. 这是我尝试过的from here,但它似乎不起作用:

    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中执行此操作。

2 个答案:

答案 0 :(得分:1)

pause之后添加brush on可以解决问题:

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);

答案 1 :(得分:0)

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

查看我对这个问题的回答,同时记住我的回答,我可能在原来的解决方案中犯了错误。

saving user input from uitable matlab GUI?

希望它也可以帮到你!

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