以下代码
fig = figure;
alist = [-0.1 1 4];
cp = 0;
for counter = 1:3
a = alist(counter);
fp = [(1+sqrt(1+4*a))/(-2*a) (1-sqrt(1+4*a))/(-2*a)];
fpmin = (abs(fp(1)-cp) < abs(fp(2)-cp))*fp(1) + (abs(fp(1)-cp) >= abs(fp(2)-cp))*fp(2);
fpmax = (abs(fp(1)-cp) >= abs(fp(2)-cp))*fp(1) + (abs(fp(1)-cp) < abs(fp(2)-cp))*fp(2);
ax = axes('Position',[.1+(counter-1)*0.3 0 0.25 1]);
axis equal;
hold on;
fplot(@(x) 1-a*x.^2,'color','k');
fplot(@(x) x,'--','color','b');
plot([fpmax -fpmax -fpmax fpmax fpmax],[fpmax fpmax -fpmax -fpmax fpmax],'color','r');
padding = .4*abs(fpmax);
axis([-abs(fpmax)-padding abs(fpmax)+padding -abs(fpmax)-padding max(abs(fpmax),1)+padding]);
end
产生此图像:MATLAB pic
问题是MATLAB无法正确放置第三张图像。代码行
ax = axes('Position',[.1+(counter-1)*0.3 0 0.25 1]);
据说告诉MATLAB将每个新轴的左下角定位在0高度。但这在第三张图中没有发生。我也尝试使用子图,但产生的行为与上述相同。如果我尝试的“位置”操作不起作用,如何将三个轴沿其底部垂直对齐?