代码之家  ›  专栏  ›  技术社区  ›  zeeMonkeez

带动画的实时脚本

  •  14
  • zeeMonkeez  · 技术社区  · 9 年前

    MATLAB 2016a推出 Live Scripts ,允许在脚本旁边显示绘图输出。是否可以显示动画?例如,以下脚本中的代码将绘制几个点,然后旋转 axes :

    x = rand(10, 3);
    plot3(x(:, 1), x(:, 2), x(:, 3), 'o')
    for ii = 1:360
        camorbit(1, 10*cos(ii/90*pi)*pi/45)
        drawnow
        pause(0.01)
    end
    

    或者,是否有与实时脚本中的绘图交互的选项(而不是双击以在新图形中打开绘图)?例如。 rotate3d 没有效果。

    编辑: release notes .

    3 回复  |  直到 6 年前
        1
  •  1
  •   Ofek Shilon    9 年前

    答案似乎是否定的——Live Scripts还太年轻,还不具备丰富的功能。仅仅是它们不可调试的事实,就让我在1-2个版本中远离它们。 你调查过了吗 Matlab Notebooks ? 如果你想要漂亮的格式和一些基本的交互性,它可能就是你想要的。

        2
  •  0
  •   zeeMonkeez    9 年前

    2016b版增加了操纵选项 axes 当鼠标悬停在 。请注意,这不适用于 看不见的( Visible='off'

    ax = axes;
    x = rand(9, 3);
    plot3(ax,x(:, 1), x(:, 2), x(:, 3), 'x'); 
    % Hide rulers and background color
    ax.Color = [1 1 1 0]; 
    ax.XAxis.Visible ='off'; 
    ax.YAxis.Visible ='off'; 
    ax.ZAxis.Visible ='off';
    

    轴排列方式 subplot 也可以单独操作。

        3
  •  0
  •   zeeMonkeez    6 年前

    问题中的示例代码生成了MATLAB 2019a的旋转图。它在2018年b还不起作用。这个 release notes

    您可以在Live Editor中启用for循环动画以显示更改 设置 matlab.editor.AllowFigureAnimations 设置为 true :

    s = settings;
    s.matlab.editor.AllowFigureAnimation.PersonalValue = true;
    

    在示例脚本之前运行这两行代码将产生预期的行为。