Как почистить график, а затем сохранить очищенные данные в графическом интерфейсе?
Я прочитал пару постов о том, как сохранить очищенные данные, однако, попробовав предложения по этим постам ( это, это, это, это и это), ни один из них, похоже, не работает. Одна из проблем, с которой я столкнулся при попытке использовать эти предложения, заключается в том, что программа выполняется до конца до очистки любых данных, и поэтому сохраненные данные представляют собой пустую матрицу.
Мои цели:
Очистить данные, и
Сохраните очищенные данные.
Вот что я попробовал отсюда, но, похоже, это не сработало:
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);
Может кто-нибудь показать простой пример, как это сделать? Я пытаюсь сделать это в графическом интерфейсе.
2 ответа
Добавление 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);
Я на самом деле только что ответил сегодня утром.
Ознакомьтесь с моим ответом на этот вопрос и запомните мои комментарии к моему ответу, возможно, я допустил ошибку в своем первоначальном решении.
сохранить пользовательский ввод из удобного GUI Matlab?
Надеюсь, это может помочь вам тоже!
Подводя итог, добавьте waitfor(gcf); output=varToSave (убедитесь, что varToSave не из дескриптора / объекта, который должен быть удален), где output - это результат, возвращаемый функцией GUI.