0

描画できる軸があるGUI(GUIDEを使用して作成)があります。GUI を保存すると、.fig ファイルと .m ファイル (名前は start_gui.m と start_gui.fig) ができました。ここで、GUI ハンドルを渡した外部 M ファイルを使用して、これらの軸にプロットしようとしています。これは次のとおりです。

function cube_rotate(angle1,angle2,handles)
   gcf=start_gui.fig; %this is the name of the gui.fig file in GUIDE 
   set(gcf,'CurrentAxes',handles.cube_axes)%this allows us to plot on the GUI 
      %plot something
end 

handles.cube_axes は、ガイドを使用して作成された GUI のハンドルの名前です。ハンドルを渡すにもかかわらず、GUI でプロットすることはできません。次のようなエラーが表示されます。

??? 未定義の変数「start_gui」またはクラス「start_gui.fig」。

start_gui.fig は、GUIDE で生成された GUI Figure の名前です。start_gui.fig の軸にプロットするにはどうすればよいですか?

助けてくれてありがとう!

4

2 に答える 2

1

あなたはいくつかの間違いを犯しました。1 つ目は、文字列を示すために単一引用符を使用せずにファイル名を参照することです。2 つ目は、既存の Figure を という名前の変数として割り当てて開こうとしていますgcfgcfこれにより、文字列を含む変数が得られます'start_gui.fig'

代わりに、次のコマンドで Figure を開きます。

fH = hgload('start_gui.fig');
% Then find/assign the axes handle (assuming you only have one axes in the figure):
aH = findobj(fH,'Type','axes');
% And finally plot to the axes:
plot(aH,0:.1:2*pi,sin(0:.1:2*pi));

二次的な注意として、この機能を実行するために MATLAB によって生成された M ファイルを使用していない理由はありますか? 自動生成された M ファイルを使用することで、 を使用するのではなく、handles 構造体にアクセスできるようになりますfindobj

于 2013-07-17T17:00:30.933 に答える