如何在 MATLAB 绘图中以编程方式放大或放大?

How to zoom in or magnify programmatically in MATLAB plot graph?

我正在编写一个脚本,我需要在其中显示定点迭代图并想放大绘制线条的位置。图形已完成,它正在我的图形上绘制线条,问题是我想查看从 f(x)g(x) 的函数生成的值。所以我从图形工具“放大”,看看现在图形中产生了哪些值我在图形中手动进行,有没有办法通过给出 xy轴?所以这意味着当线条绘制时图形会像动画一样自动缩放。

clc;
clear all;
clf;
format short g

syms x;
f = @(x) x-cos(x);
g = @(x) cos(x);
dg = matlabFunction(diff(g(x),x));

figure(1)
z = -3:.001:3;
plot(z,z,'-k',z,g(z),'-k',z,0*z,'-r',0*z,g(z),'-r')
hold on;

x = 1.0;
tol =1.0e-15;
px = x;
x = g(x);
line([px,px],[px,x],'color','blue');
line([px,x,],[x,x],'color','blue');
i = 1;
while(abs(px-x)>tol)
   px = x;
   x = g(x);
   line([px,px],[px,x],'color','blue');
    line([px,x,],[x,x],'color','blue');
   i = i+1;
   data = [i  x g(x) f(x)]
   drawnow
end

这就是我想要的图表线。 Link

我测试了“缩放”功能,但它没有按照我的要求提供帮助。我也试过这个 one 但我无法理解那里的代码。

xlim 将允许您设置显示的 x 值范围。 Link: xlim

ylim 将允许您设置显示的 y 值范围。 Link: ylim

总之,这些应该可以让您 'zoom' 到情节的不同部分。例如,在您的第一个 plot 命令之后,您可以包括:

plot(z,z,'-k',z,g(z),'-k',z,0*z,'-r',0*z,g(z),'-r') % Already in your code
xlim([0 1.5]);
ylim([0 1.5]);

您还可以在 for 循环中包含这些命令,使其逐渐放大。