多个图形合为一个,带有值标签

时间:2016-11-08 18:41:50

标签: matlab matlab-figure

我已经绘制了将图形分成1个。我希望通过反复试验来最大化z=abs(1+s+(alpha_2)*s.^2+(alpha_1)*(alpha_2)*s.^3),因此其他图形可以尽可能大。所以我想做两个for循环,改变alpha_1和alpha_2的值。例如

for alpha_1=1:0.5:2
   for alpha_2=1:0.5:2 

    z=abs(1+s+(alpha_2)*s.^2+(alpha_1)*(alpha_2)*s.^3);
    [C,h] = contour(x,y,z,[1 1]);

   end do
end do 

因此该图将绘制9个不同的图。是否可以将这9个图形放入图中并说出每个图形的alpha_1和alpha_2的值是多少?

Orignal计划:

clear all
close all

alpha_1=0;
alpha_2=0;


theta = 2*pi 
clear t w;
t = 0: theta/100: theta;


w=-1/6*(3-4*cos(t)+cos(2*t)+1i*(8*sin(t)-sin(2*t)));

figure(1)


plot(w,'r')
hold on
%axis( [-10,10, -10,10] )
axis square; grid on

%Contour plot

[x,y] = meshgrid(-2.5 : 0.02:2.5, -2.5 : 0.02: 2.5);
s = x + 1i*y;

z=abs(1+s+(alpha_2)*s.^2+(alpha_1)*(alpha_2)*s.^3);


[C,h] = contour(x,y,z,[1 1]);
clabel(C,h)

1 个答案:

答案 0 :(得分:2)

只需使用subplot即可。也许是这样的:

figure;
alpha_1=1:0.5:2;
alpha_2=1:0.5:2;
for id1=1:length(alpha_1)
    for id2=1:length(alpha_2)

        z=abs(1+s+(alpha_2(id2))*s.^2+(alpha_1(id1))*(alpha_2(id2))*s.^3);
        subplot(length(alpha_1),length(alpha_2),id2+(id1-1)*length(alpha_2));
        contour(x,y,z,[1 1]);
        title(['\alpha_1 = ' num2str(alpha_1(id1)) ', \alpha_2 = ' num2str(alpha_2(id2))])

    end
end