原谅我的noobness,但这是我的第一篇文章。
我在matlab中生成了这个gui,我想从更新函数在其中一个轴上绘制图像。
我知道在Matlab中你可以做类似
的事情图像(IMG) 坚持,稍等 图(X1,Z1) 等等
但怎么能用gui做到这一点?
此处是更新功能的一部分
%get a handle to the GUI's 'current state' window
deflectionx = findobj('Tag','deflectionx_display');
deflectiony = findobj('Tag','deflectiony_display');
depth = findobj('Tag','depth_display');
Graph = findobj('Tag','Graphical_display');
UltraS = findobj('Tag','UltraS_image');
%update the gui
set(deflectionx,'String',x_def);
set(deflectiony,'String',y_def);
set(depth,'String',insert_depth);
%% above works fine. below does not
%i want this to plot those points on top of the image in the large graph panel of the gui
plot(Graph,img1)
hold on
plot(Graph,x1,z1);
hold off
%this should plot the second image on the UltraS panel
plot(UltraS,img2)
请提前谢谢!
答案 0 :(得分:0)
因此我认为我必须在gui的开放功能中将GUI的句柄写入工作区
% --- Executes just before VR_gui is made visible.
function VR_gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to VR_gui (see VARARGIN)
% Choose default command line output for VR_gui
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
%setting axis
needle_plot = handles.Graphical_display;
US_plot = handles.US_image;
%write handle to workspace
assignin ('base','needle_plot',needle_plot);
assignin ('base','US_plot',US_plot);
然后从更新函数
中读取工作区变量needle_plot = evalin('base','needle_plot');
US_plot = evalin('base','US_plot');
axes(US_plot);
image(img2);
axes(needle_plot);
plot(x1,z1,'r--o');