matlab gui中如何用subplot画多图

matlab gui中如何用subplot画多图

需了解知识

  • gui中需要将axes先放入1个panel中,否则后续画多图时曲线可能超出axes范围。
  • 若在panel内定义一个axes1,再使用subplot(311)会在当前axes1内绘图,之后会自动删除之前定义的当前axes1,后续无法再调用此axes1。解决办法是H(1)=subplot(311);再用一个句柄记住。

待解决问题

输入任意N,在一个panel内用subplot画N个图。

代码

function xxx_Callback(hObject, eventdata, handles)
      num_plot =(ceil(sqrt(handles.N)));% 求subplot的尺寸参数
     delete(findobj(handles.pan1, 'Type', 'axes'));% 清空panel 1上所有axes 
 	 handles.fig1 = axes('parent',handles.pan1);  % pan1内新建一个axes 
     axes(handles.fig1);
	       for jj =1:size(sos2,1)
	           [b,a] = sos2tf(sos2(jj,:));                
	          [hhh,fff]= freqz(b,a,handles.freq,fs); %求频响 
	          subplot(num_plot ,num_plot ,jj);plot(fff,20*log10(hhh));grid on; 
	          set(gca ,'fontsize',4, 'fontname','Times New Roman'); 
	       end      
guidata(hObject, handles);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值