2014-05-21 57 views
0

我试图在for循环中绘制5个子图,每个迭代随x(1到5)而变化。不过,我也想改变每次迭代的R的范围,使它等于6 * x:100 - 所以当x = 1时,R = 6:100;当x = 2时,R = 12:100;当x = 3时,R = 18:100;等等...... 我一直在想如何做到这一点的日子,所以帮助将不胜感激。用绘图的每次迭代更改x轴输入范围

% constants 
de = 20; 
b = 0.5; 

% parameters 
x = 1:1:5; 
R = 6.*x:100; 
S = 0:1:250; 

[R,S]=meshgrid(R,S); 

% function 

[email protected](x)((factorial(R)).*exp(b.*(x.*(de)))); 
[email protected](x)((S.^(6.*x)).*(factorial(R-6.*x))); 
[email protected](x)(k1(x)./(k1(x)+k2(x))); 


figure 
for i=x 
    subplot(3,2,i) 
    mesh(R,S,kk(i)) 
end 

回答

0

我修改了一下你的代码,而无需匿名函数和循环中插入的一切,我希望它的您正在寻找的答案。为了获得清晰的视觉效果,我将您的旋转轴连接起来,这样您就可以在5个子图中的每一个中看到相同的角度。

% constants 
de = 20; 
b = 0.5; 

% parameters 
S = 0:1:250;  

figure 
for x=1:5 
    R = 6.*x:100; 
    [Rk,Sk]=meshgrid(R,S); 

    k1=((factorial(Rk)).*exp(b.*(x.*(de)))); 
    k2=((Sk.^(6.*x)).*(factorial(Rk-6.*x))); 
    kk=(k1./(k1+k2)); 
    h(x)=subplot(3,2,x) 
    mesh(Rk,Sk,kk) 
end 
linkprop(h, 'CameraPosition'); 

结果:

enter image description here

+0

太棒了 - 谢谢你曾经那么多;正是我需要的! – user3589557