0
我想迭代地從圖中創建子圖。我有以下代碼:繪製圖中的子圖
for i=1:numel(snips_timesteps)
x=openfig(sprintf('./results/snips/temp/%d.fig',i),'reuse');
title(sprintf('Timestep %d',snips_timesteps(i)));
xlabel('');
ax= gca;
handles{i} = get(ax,'children');
close gcf;
end
h3 = figure; %create new figure
for i=1:numel(snips_timesteps)
s=subplot(4,4,i)
copyobj(handles{i},s);
end
錯誤我得到的是:
Error using copyobj
Copyobj cannot create a copy of an
invalid handle.
K>> handles{i}
ans =
3x1 graphics array:
Graphics (deleted handle)
Graphics (deleted handle)
Graphics (deleted handle)
是否可以關閉一個數字,但仍保留它的處理?這似乎是參考被刪除。
編輯
handles={};
for i=1:numel(snips_timesteps)
x=openfig(sprintf('./results/snips/temp/%d.fig',i),'reuse');
title(sprintf('Timestep %d',snips_timesteps(i)));
xlabel('');
ax= gca;
handles{i} = get(ax,'children');
%close gcf;
end
h3 = figure; %create new figure
for i=1:numel(snips_timesteps)
figure(h3);
s=subplot(4,4,i)
copyobj(handles{i},s);
close(handles{i});
end
錯誤:
K>> handles{i}
ans =
3x1 graphics array:
Line
Quiver
Line
K>> close(handles{i})
Error using close (line 116)
Invalid figure handle.
如果我刪除close(handles{i})
再次繪製第一張圖中所有的次要情節!
感謝您的回覆。請檢查上面的修改。 –
我使用你的建議出現錯誤。請檢查問題中的編輯。 –
@AbhishekBhatia'close(handles {i})'是錯的,是我的錯。簡單的評論就足夠了。 'handles {i}'不是'gcf'對象,因此它不起作用。 – IKavanagh