失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > matlab中axes显示 如何将figure图片显示在matlab GUI的axes中

matlab中axes显示 如何将figure图片显示在matlab GUI的axes中

时间:2022-10-30 04:10:33

相关推荐

matlab中axes显示 如何将figure图片显示在matlab GUI的axes中

如图所示,我在GUI中读取一个xlsx文件,点击“绘图”按钮,生成的figure在另外一个界面中出现,而不是在我的GUI的axes中显示,“绘图”按钮的回调程序如下所示,需要如何修改才行呢,求大神帮忙:)

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdatareserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

axes(handles.axes1);

File_Path=get(handles.edit1,'string');

data=xlsread(File_Path);

x=1:length(data);

y=zeros(1,length(data));

for i=1:length(data)

y(i)=InsideSolarRadiation(data(i,1),data(i,2),data(i,3),data(i,4),data(i,5),data(i,6));

end

f=figure(1);

h = plot(0,0,'linewidth',1);

%xMin=-2*pi;%X轴初始最小值

%xMax=2*pi; %X轴初始最大值

xMin=0;

xMax=length(data)/2;

xlim([xMin,xMax]);%X轴初始范围

%ylim([-1.5 1.5]);

ylim([0 max(data(:,6))]);

%title('LP制作');

set(f,'Units','normalized');

xlabel('时间');

ylabel('温室内太阳辐射(W/m^2)');

% % % % % % % % % % % %

m=2;

xa = [x(m-1) x(m)];

ya = [y(m-1) y(m)];

[xaf,yaf] = axescoord2figurecoord(xa,ya);%axes坐标转为figure坐标

ar=annotation(f,'arrow',xaf,yaf,'Color',[1 0 0],'LineStyle','none','HeadStyle','vback1','HeadLength',12,'HeadWidth',10);

for m = 2:numel(x)

if(x(m)+1>xMax)

xdif=x(m)+1-xMax;

xlim([xMin+xdif,xMax+xdif]);

end

set(h,'xData',x(1:m),'yData',y(1:m));

xa = [x(m-1) x(m)];

ya = [y(m-1) y(m)];

[xaf,yaf] = axescoord2figurecoord(xa,ya);

annotation(f,'arrow',xaf,yaf,'Color',[1 0 0],'LineStyle','none');

set(ar,'X',xaf,'Y',yaf); %将箭头置于(xaf,yaf)的位置

drawnow;

pause(0.1);

end

捕获.PNG

(79.04 KB, 下载次数: 8)

-2-14 15:00 上传

如果觉得《matlab中axes显示 如何将figure图片显示在matlab GUI的axes中》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。