gpt4 book ai didi

matlab - 我可以在一个循环内在多个 Matlab 图形中制作多个子图吗?

转载 作者:行者123 更新时间:2023-12-04 04:35:14 25 4
gpt4 key购买 nike

我想以两个数字导出我的数据,每个数字有四个子图。但是当我尝试在循环中执行此操作时,它只会打印带有四个图的第二个数字。当我使用 figure ,它打印八个数字,每个数字一个图。这是代码的一部分:

subplot(2,2,k);
plot(2.^[4:2:10], a, '-mo', 2.^[4:2:10], b, '-r+', 2.^[4:2:10], c, '-bx' );
axis([2.^4, 2.^10, 0, max([max(a), max(b), max(c)])]);
str = sprintf('Time for m1 = 2^%d',i);
title(str);
xlabel('n ')
ylabel('s')

subplot(2,2,k);
plot(2.^[4:2:10],a1, '-mo', 2.^[4:2:10], b1, '-r+', 2.^[4:2:10], c1, '-bx' );
axis([2.^4, 2.^10, 0, max([max(a1), max(b1), max(c1)])]);
str = sprintf('Time for m1 = 2^%d',i);
title(str);
xlabel('n ')
ylabel('M')

最佳答案

你的循环需要看起来像这样:

x = 1:2;
y = x;

f = 2; %number of figures
c = 2; %number of plots per column per figure
r = 2; %number of plots per row per figure
n = repmat(cumsum(ones(1,r*c)),1,f); %index for subplots
h = ceil( (1:f*r*c)/(r*c) ); %index of figures

for ii=1:f*r*c

% calculations

% plot specifier
figure( h(ii) )
subplot( r,c,n(ii) )

% plot
plot(x,y)

% your plot properties
end

它给你一个 figure(1)带有 2x2 子图和 figure(2)带有 2x2 子图

例如
f = 3;  %number figures
c = 3; %number of columns per figure
r = 4; %number of rows per figure

会给你 3 个图形,每个图形都有 3x4 的图等等......

如果绘图出现的顺序很重要,您可以更改方式 hn被创建。这些只是例子。基本上,它们只是与您的索引相关的向量 ii与外观顺序。

关于matlab - 我可以在一个循环内在多个 Matlab 图形中制作多个子图吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19840814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com