簡體   English   中英

如何告訴我的MATLAB GUI我想使用外部.m文件在其上繪圖?

[英]How do I tell my MATLAB GUI that I want to plot on it using an external .m file?

我有一個GUI(使用GUIDE制作),其中有一個我可以繪制的軸。 當我保存gui時,我有一個.fig文件和一個.m文件(名稱為start_gui.m和start_gui.fig)。 現在,我試圖使用外部M文件在這些軸上繪圖,我已經通過GUI處理。 具體如下:

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圖形的名稱。 如何在start_gui.fig的軸上繪圖?

感謝您的幫助!

你得到的錯誤是因為你的第二行: gcf=start_gui.fig;

它正在尋找一個名為start_gui的變量,這是你沒有的變量。 start_gui.fig是文件名,而不是變量。)

要解決您的繪圖問題,請查看 Mathworks支持文章。

你犯了一些錯誤。 第一個是指沒有單引號的文件名來表示字符串。 第二種方法是嘗試通過將其指定為名為gcf的變量來打開現有數字。 這只會給你一個變量gcf ,其中包含字符串'start_gui.fig'

相反,使用以下命令打開圖:

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文件,您將能夠訪問句柄結構而不是使用findobj

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM