2013-06-26 2 views
2

Я прочитал пару сообщений о том, как сохранить чистые данные, однако, при попытке предложения на этих постах (this, this, this, this и this), ни один из них, похоже, не работает. Одна из проблем, с которыми я столкнулась при попытке этих предложений, заключается в том, что программа работает до конца до того, как будут очищены данные, и поэтому сохраненные данные являются пустой матрицей.Как очистить график и сохранить данные в графическом интерфейсе?

Мои цели:

  1. ЩЕТКА данных и

  2. Сохраните почищенные данные.

Это то, что я пытался 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); 

Может кто-то показать простой пример о том, как это сделать? Я пытаюсь сделать это в графическом интерфейсе.

ответ

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

Я на самом деле просто ответил сегодня утром.

Отметьте свой ответ на этот вопрос и сохраните мои комментарии в ответ на мой ответ, возможно, я допустил ошибку в своем первоначальном решении.

saving user input from uitable matlab GUI?

Надеется, что это может помочь вам тоже!

Чтобы подвести итог, добавьте waitfor (gcf); output = varToSave (убедитесь, что varToSave не из дескриптора/объекта, подлежащего удалению), где output - результат, возвращаемый функцией GUI.

+0

Я не могу получить ваш ответ, чтобы быть работоспособным для фигуры. – Pupil

+0

Что значит «неработоспособный», например, пожалуйста! – Shaun314

+0

Как в '' waitfor (gcf) 'появляется новое окно. Кроме того, ваш ответ не говорит о чистке данных. – Pupil