Matlab 子地块大小不同

Matlab 子地块大小不同,matlab,subplot,Matlab,Subplot,我用5x3子图创建图,每次迭代,每列再添加3个图,每次迭代,前三个图缩小一点 这是我的代码: for i=1:4%for every station figure for j=1:sSelect %for every storm Hm0=eval(strcat('Hm0',Wavenames(i),'C'));%create data Tz=eval(strcat('Tz',Wavenames(i),'C')); Tp=eval(st

我用5x3子图创建图,每次迭代,每列再添加3个图,每次迭代,前三个图缩小一点

这是我的代码:

for i=1:4%for every station
   figure
    for j=1:sSelect %for every storm
        Hm0=eval(strcat('Hm0',Wavenames(i),'C'));%create data
        Tz=eval(strcat('Tz',Wavenames(i),'C'));
        Tp=eval(strcat('Tp',Wavenames(i),'C'));
        Ti=numericdates.(Wavenames(i));
        ix=Ti>Selectnum(j,1)-numMore & Ti<Selectnum(j,2)+numMore; %index of dates numMore hours before and after the storm
        
        Hm0Plot=Hm0(ix); %create data that needs to be plotted
        TzPlot=Tz(ix);
        TpPlot=Tp(ix);
        TPlot= datetime(Ti(ix),'ConvertFrom','datenum');%dates
        
        if ~isempty(TPlot) 
            
            subplot(3,5,j)
            plot(TPlot,Hm0Plot)
            xlabel('Date')
            ylabel('Hm0 (m)')
            xtickformat('dd-MM-yyyy HH:mm:ss')
         
            subplot(3,5,j+5)
            plot(TPlot,TzPlot)
            xtickformat('dd-MM-yyyy HH:mm:ss')
            xlabel('Date')
            ylabel('Tz0 (1/s)')


            subplot(3,5,j+10)
            plot(TPlot,TpPlot)
      xtickformat('dd-MM-yyyy HH:mm:ss')
            xlabel('Date')
            ylabel('Tp (1/s)')

            suptitle(Wavenames(i))
        end
    end
end
每个站点的i=1:4%的

图形
对于j=1:s,为每个风暴选择%
Hm0=eval(strcat('Hm0',Wavenames(i),'C');%创建数据
Tz=评估(strcat('Tz',波名(i),'C');
Tp=评估(strcat('Tp',波名(i),'C');
Ti=数字日期(波形名称(i));

ix=Ti>Selectnum(j,1)-numMore&Ti这是因为命令
suptitle
在循环中。如果我把它放在循环之外,它就会工作

for i=1:4%for every station


 figure
    for j=1:sSelect %for every storm
        Hm0=eval(strcat('Hm0',Wavenames(i),'C'));%Hm0BanyulsC
        Tz=eval(strcat('Tz',Wavenames(i),'C'));%TzBanyulsC
        Tp=eval(strcat('Tp',Wavenames(i),'C'));%TpBanyulsC
        Ti=numericdates.(Wavenames(i));
        ix=Ti>Selectnum(j,1)-numMore & Ti<Selectnum(j,2)+numMore; %index of dates numMore hours before and after the storm
    
    Hm0Plot=Hm0(ix);
    TzPlot=Tz(ix);
    TpPlot=Tp(ix);
    TPlot= datetime(Ti(ix),'ConvertFrom','datenum');
    
    if ~isempty(TPlot)
        
        subplot(3,5,j)
        plot(TPlot,Hm0Plot)
        xlabel('Date')
        ylabel('Hm0 (m)')
        xtickformat('dd-MM-yyyy')
      %  title(strcat('Storm',string(j)))

        subplot(3,5,j+5)
        plot(TPlot,TzPlot)
        xtickformat('dd-MM-yyyy')
        xlabel('Date')
        ylabel('Tz0 (1/s)')


        subplot(3,5,j+10)
        plot(TPlot,TpPlot)
        xtickformat('dd-MM-yyyy')
        xlabel('Date')
        ylabel('Tp (1/s)')

       
    end
    
end
suptitle(Wavenames(i))
end
每个站点的i=1:4%的

图形
对于j=1:s,为每个风暴选择%
Hm0=eval(strcat('Hm0',Wavenames(i),'C');%Hm0BanyulsC
Tz=评估(strcat('Tz',Wavenames(i),'C');%TzBanyulsC
Tp=eval(strcat('Tp',波名(i),'C');%TpBanyulsC
Ti=数字日期(波形名称(i));

ix=Ti>Selectnum(j,1)-numMore&tit这看起来很奇怪,从未见过这样的结果。你使用的是什么版本的MATLAB?如果这在最新版本中是可复制的,您应该提交一份错误报告。尝试删除日期标签(
xlabel
),看看这是否可以临时修复it@CrisLuengomatlabR2020a@AnderBiguri问题不在于xlabel。但你确实给了我一个主意。显然,这是因为我绘制了4次suptitle。如果我将其从循环中删除(请参见答案),我会修复与您的问题无关的问题,但如果您有R2018b或更高版本,则最好使用它<代码>suptitle
需要生物信息学工具箱