【问题标题】:Hiding and printing plots in matlab在matlab中隐藏和打印绘图
【发布时间】:2021-03-09 22:18:47
【问题描述】:

我在 matlab 中有一个脚本,可以打印函数 f(x) 的 n 导数。该图的目的是以图形方式“猜测”未知函数的根的多重性。显然,如果我知道根,我可以简单地评估那个点的导数,但在我的情况下,我将输入的函数不会很容易找到根,所以我必须使用数值方法来找到它们,并且需要弄清楚多重性。到目前为止一切顺利,我的代码中的所有内容都按预期工作,并且该图具有原始函数,其上也绘制了所有它的 n 个导数。现在在我的情况下,图表变得有点混乱。有没有办法在绘制特定图形后禁用/启用它?例如,假设我有一个 f(x)、f'(x) 和 f''(x) 的图,是否可以禁用图 "f''(x)" 所以只有 f(x) 和 f '(x) 通过绘图界面保留在绘图上(不添加或修改我的代码)?然后稍后如果我想重新启用 f''(x) 并再次通过绘图界面删除 f'(c)。我浏览了不同的菜单,但找不到删除特定图(或稍后添加)的方法。我只想隐藏它,以便可以在不同导数相交或重叠的地方读取图表,但我也不希望这些图位于不同的子图上。谢谢!我会发布一张图片,但不幸的是我没有声誉。

【问题讨论】:

    标签: matlab plot editing


    【解决方案1】:

    您可以使用“可见”属性:

    x=-14:15;
    h_ax=axes();
    hold(h_ax,'on');
    h_line=cell([3 1]);
    for i=1:3
      y=rand(30,1);
      h_line{i}=plot(h_ax,x,y);
    end
    legend(h_ax,{'f','f^\prime','f^{\prime\prime}'});
    
    set(h_line{2},'Visible','off');
    

    图例表明禁用的情节存在,但被隐藏了。要在以后再次显示该图,请使用:set(h_line{2},'Visible','on');

    【讨论】:

    • 有没有办法从图中做到这一点?我需要把它放在我的代码中吗?我的问题是我有一个自动执行所有操作的脚本,我所要做的就是输入并且脚本负责情节。如果我要添加代码,我必须通过添加可见的东西来修改脚本,并每次都从头开始运行以启用/禁用绘图。我一直在寻找更多沿 geogebra 的东西,我可以在其中选中/取消选中添加/删除绘图的功能。
    • 哦,您想要一个 GUI 解决方案吗?更具体地说,不需要编写自定义回调函数之类的?您只需单击查看 -> 绘图浏览器。您将看到可以打开/关闭的元素列表。
    • 嗨,是的!谢谢,这正是我想要的,但由于某种原因,我无法取消选中这些情节。我必须在我的代码中添加一些东西来启用它吗?
    • 当您尝试单击复选框时,您的程序是否仍在运行? MATLAB 在忙于运行某些东西时经常会变得无响应(或部分响应),因此您可能需要先等待程序完成。
    • 嗨,所以程序提示用户输入一个函数,然后提示用户它希望绘制多少个导数。一旦用户输入函数和导数的数量,脚本会绘制所有相关函数,然后出现另一个提示,因此脚本在技术上正在运行,但它没有进行任何密集计算,它只是在等待第三个提示。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2018-03-21
    • 1970-01-01
    • 2021-07-30
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多