我试图在for循环中绘制5个子图,每次迭代随x(1到5)变化。但是,我还想改变每次迭代的R范围,使其等于6 * x:100 - 所以当x = 1时,R = 6:100;当x = 2时,R = 12:100;当x = 3时,R = 18:100;等等... 我一直试图弄清楚如何做好几天,所以非常感谢帮助。
% 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
k1=@(x)((factorial(R)).*exp(b.*(x.*(de))));
k2=@(x)((S.^(6.*x)).*(factorial(R-6.*x)));
kk=@(x)(k1(x)./(k1(x)+k2(x)));
figure
for i=x
subplot(3,2,i)
mesh(R,S,kk(i))
end
答案 0 :(得分:0)
我修改了一下你的代码,没有匿名函数并在for循环中插入所有内容,我希望它能找到你想要的答案。为了清晰的可视化,我将你的旋转轴联系起来,所以你总是在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');
结果: