2014-05-21 58 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