[英]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.