Matlab符号函数的子图(具有完全不同的范围和域),希望为每个子图获得相同的轴刻度

时间:2014-04-26 03:03:38

标签: matlab graph matlab-figure symbolic-math

我在Matlab中有3个子图,每个曲线具有完全不同的域和范围。我希望在所有图形的x和y轴上具有相同的比例(1个单位= 1厘米的纸张)。

我不能将linkprop用于xlim或ylim,因为域和范围完全不同,并且不会出现完整的图形。

请提出一些建议。

1 个答案:

答案 0 :(得分:0)

我不能说我为此感到自豪,但它确实有效!

x1=0:.1:1;
x2=50:1:90;
x3=0.043:0.001:0.089;
y1=sin(x1);
y2=x2.^2;
y3=-x3;

r=max([max(y3)-min(y3) max(y2)-min(y2) max(y1)-min(y1)]);
d=max([max(x3)-min(x3) max(x2)-min(x2) max(x1)-min(x1)]);
k=max(r,d);

subplot(1,3,1)
plot(x1,y1)
axis([min(x1)-(k-max(x1)+min(x1))/2 max(x1)+(k-max(x1)+min(x1))/2 ...
    min(y1)-(k-max(y1)+min(y1))/2 max(y1)+(k-max(y1)+min(y1))/2])
subplot(1,3,2)
plot(x2,y2)
axis([min(x2)-(k-max(x2)+min(x2))/2 max(x2)+(k-max(x2)+min(x2))/2 ...
    min(y2)-(k-max(y2)+min(y2))/2 max(y2)+(k-max(y2)+min(y2))/2])
subplot(1,3,3)
plot(x3,y3)
axis([min(x3)-(k-max(x3)+min(x3))/2 max(x3)+(k-max(x3)+min(x3))/2 ...
    min(y3)-(k-max(y3)+min(y3))/2 max(y3)+(k-max(y3)+min(y3))/2])