Matlab を使用して一部の GUI スタッフをコーディングしています。そして、「subaxis」メソッド(Matlab FX subaxis.mでダウンロードできます)を使用して、指定された 1 つの「軸」にサブフィギュアを含む図をプロットしたいと考えています。
プログラムは、最初はまったく正しく動作します。サブフィギュアはワンクリックボタンで更新されます。その後、エラーがポップアップします。問題を単純化し、いくつかのテスト コードを次のように記述します。
% Specify an 'axes' in my GUI (here is an example of axes handle called 'ax')
ax = axes;
axes(ax);
cla(ax, 'reset');
% Plot something using 'subaxis' with multiple subfigures
x = 0:0.1:10;
spacing = 0.0;
subaxis(3,1,1,'Spacing',spacing);
plot(x,rand(size(x)),'k')
legend('D','Location','NorthWest')
ylim([-0.2 1])
set(gca, 'box','off')
set(gca,'XAxisLocation','top')
subaxis(2,'Spacing',spacing);
plot(x,rand(size(x)),'r')
legend('C','Location','NorthWest')
ylim([-0.2 1])
set(gca,'xtick',[],'box','off','xcolor','w')
subaxis(3,'Spacing',spacing);
plot(x,rand(size(x)),'b')
legend('B','Location','NorthWest')
set(gca, 'box','off')
この時点でプログラムは問題なく、期待通りの動作をしました。ここで、ボタンを押してこれらのサブフィギュアを更新しますが、「ax」と呼ばれる指定された軸にサブフィギュアをプロットしたいと考えています。
axes(ax);
cla(ax, 'reset');
x = 0:0.1:10;
spacing = 0.0;
subaxis(3,1,1,'Spacing',spacing);
plot(x,rand(size(x)),'k')
legend('D','Location','NorthWest')
ylim([-0.2 1])
set(gca, 'box','off')
set(gca,'XAxisLocation','top')
subaxis(2,'Spacing',spacing);
plot(x,rand(size(x)),'r')
legend('C','Location','NorthWest')
ylim([-0.2 1])
set(gca,'xtick',[],'box','off','xcolor','w')
subaxis(3,'Spacing',spacing);
plot(x,rand(size(x)),'b')
legend('B','Location','NorthWest')
set(gca, 'box','off')
エラーが表示されます!!!
Error using axes
Invalid object handle
エラー情報が非常に短いため、どうすればよいかわかりません。サブ軸は特定の「軸」に一度しかプロットできないようです。
どんな助けでも大歓迎です。どうもありがとう。A.