К сожалению, у меня есть две петли. поэтому мой код запускает первый цикл и только когда он завершен, он запускает второй цикл.Matlab одновременно запускает петли
Но я хочу, чтобы gui отображал данные одновременно: в hAxes и в load1.
Как это сделать?
hFigure = figure('units','pixels','position',[300 300 424 470],'menubar','none',...
'name','start processing','numbertitle','off','resize','off');
hAxes = axes('Parent',hFigure,'Units','pixels','Position',[0 112 424 359]);
loading1 = uicontrol('style','text','unit','pix','position',[0 72 424 40],...
'backgroundcolor','r','fontsize',20);
%% shows the data on hAxes
for i = 5:100
if mod(i,2) == 0
set(hAxes,'Color','b');
else
set(hAxes,'Color','g');
end
drawnow;
end
%% shows the data on loading1
for i=1:200
image2 = horzcat('now processing ', 'image', num2str(i), '.jpg of 200 images');
set(loading1,'string',image2);
drawnow;
end
этот код Петра:
function test1
hFigure = figure('units','pixels','position',[300 300 424 470],'menubar','none','name','start processing','numbertitle','off','resize','off');
% Your other setup calls
hAxes = axes('Parent',hFigure,'Units','pixels','Position',[0 112 424 359]);
loading1 = uicontrol('style','text','unit','pix','position',[0 72 424 40],'backgroundcolor','r','fontsize',20);
c = 1;
t = timer('TimerFcn', @color_change_fcn,'StartDelay',1.0);
start(t);
for i=1:200
image2 = horzcat('now processing ', 'image', num2str(i), '.jpg of 200 images');
set(loading1,'string',image2);
drawnow;
end
function color_change_fcn
if mod(c,2) == 0
set(hAxes,'Color','b');
else
set(hAxes,'Color','g');
end
drawnow;
c = c + 1;
end
end
Это не работает (не показывает hAxes). Я видел, что это не делает прогон color_change_fcn (я попытался написать: disp ('test') в первой строке функции color_change_fcn, но ничего не печатает.
Вы можете использовать Parallel Computing Toolbox и конструкцию parfor, но я предлагаю вам объединить две петли, как-то так, что у вас есть детерминированное поведение. – Ansari
@ Ансари, я знаю, что могу использовать то, что Питер написал мне в своем комментарии, но я объясню ему причину. прочитайте мой ответ ему и скажите, могу ли я сделать это с помощью инструментария параллельных вычислений. –