Прошло некоторое время с тех пор, как я использовал Matlab, и до сих пор я никогда не использовал его для создания графического интерфейса. Моя цель - иметь кнопку, которую я могу нажать, а затем отображать результаты по мере их расчета. Кнопка должна переключаться между «Старт» и «Стоп» в зависимости от того, что происходит. Эти результаты собираются для нескольких итераций, и каждая итерация дает другую точку данных.
Мое решение состояло в том, чтобы передать оси функции, выполняющей вычисления, которая затем может отображать оси. Это работает, однако, пока это происходит, кнопка не переключается на «Стоп» до тех пор, пока не будет завершено построение графика. Можно ли сделать функцию неблокирующей? Я даже собираюсь об этом в наилучшем возможном методе? Как я смогу остановить вычисления с помощью кнопки «Стоп»? Мне просто нужно создать поток для этого (поддерживает ли Matlab многопоточность)?
Я проверял свои идеи с помощью простой функции рисования синуса.
function [ t,y ] = slowSin(ax)
%Plot a sin curve slowly
t = [0:0.06:4*pi];
y = sin(1.5*t);
for i = 1:length(t)
plot(ax, t(1:i), y(1:i))
pause(0.1)
end
Я пока не думал о резьбе. Я рассмотрю это в ближайшее время, но любая помощь приветствуется.