首页 > 解决方案 > 如何在 MATLAB 绘图图中以编程方式放大或放大?

问题描述

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

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

这就是我想要的图表线。 关联

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

标签: matlabgraphmatlab-figurematlab-guide

解决方案


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

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

总之,这些应该允许您“缩放”到情节的不同部分。例如,在您的第一个绘图命令之后,您可以包括:

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 循环中包含这些命令,以便它逐渐放大。


推荐阅读