用循环创建子图

时间:2014-04-05 18:31:10

标签: matlab loops plot subplot

我有以下问题,请帮我解决以下任务:

我想在matlab中创建依赖于循环变量的子图,例如我知道要创建情节菜单2X2,我们这样做

subplot(2,2,1)

subplot(2,2,2

subplot(2,2,3)

subplot(2,2,4)

但是我可以做线性形式吗?比如1:100?或类似的东西,更像是这样的

n=100;

for i=1:n

subplot(1,n,i)

非常感谢

编辑代码

function [order]=find_order(y,fs);
order=0;
n=length(y);
n1=nextpow2(n);
ndft=2^n1;
for i=1:floor(n/2)
    [Pxx,f]=pburg(y,i,ndft,fs);
    subplot(ndft,ndft,i);
    plot(f,Pxx);
    title(['order',num2str(i),'i']);
    order=i;    
end
end


   picture :

enter image description here

我无法理解会发生什么

3 个答案:

答案 0 :(得分:2)

1-D演示

<强>代码

%%// Data
t = 0:0.01:15*pi;
y1 = sin(t);

%%// Plot
figure,
for k=1:4
    subplot(4,1,k)
    plot(t((k-1)*1000+1:k*1000),y1((k-1)*1000+1:k*1000))
    xlim([0 40])
end

<强>输出

enter image description here

2-D演示

<强>代码

%%// Data
t = 0:0.01:15*pi;
y1 = sin(t);

%%// Plot
colors=['r' 'g' ; 'y' 'k'];

figure,
for k1=1:2
    for k2=1:2
        subplot(2,2,(k1-1)*2+k2)
        plot(t,y1,colors(k1,k2));
    end
end

<强>输出

enter image description here

希望这些演示可以为您指导一些对您有意义的事情。

答案 1 :(得分:1)

是的,它是:

n=5;

for i=1:n

subplot(1,n,i)

end

给出

enter image description here

答案 2 :(得分:1)

for pat = 1:N%主循环

% Define the sublot grid
s1=3; % subplot rows
s2=3; % subplot columns

% find the figure number
fig_num=floor(pat/(s1*s2))+1 % Figure number

% Find the subplot number
sub_fig=mod(pat,s1*s2)   % subplot number

% correct for corners
if(sub_fig==0)
    sub_fig=s1*s2;
    fig_num=fig_num-1;
end

% plot something
figure(fig_num);
subplot(s1,s2,sub_fig) ;

plot(1,1) % plot something

主循环的结束%