2016-11-08 66 views
0

我已将绘制的图分成了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的值?

一部开拓创新的方案:

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) 

回答

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 
+0

嗯,他们都结束了相同的形状。 – ursmooth

+0

我无法评论基于变量的函数的平滑度。也许尝试使用截然不同的alpha1和alpha2。同样重复他们都在同一规模,也许你没有比较像喜欢。 – mpaskov

+0

@ursmooth如果确实让我们标记为这样,请回答您的问题,否则请让我知道答案是否可以改进。 – mpaskov