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
没有效果。
答案 0 :(得分:1)
似乎答案是否定的 - Live Scripts太年轻了,还没有那么丰富的功能。只有这一事实,他们可以取消作用才会让我远离他们1-2个版本。 你看过Matlab Notebooks了吗?如果您在完全格式化和一些基本的交互性之后,可能就是您所寻求的。
答案 1 :(得分:0)
发布2016b添加了一个操作axes
的选项,其中包含悬停在axes
上时可以看到的控件。请注意,这不适用于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
排列的轴也可以单独操作。
答案 2 :(得分:0)
问题中发布的示例代码从MATLAB 2019a开始生成旋转图。在2018b中尚不可用。 2019a的release notes提到
您可以在实时编辑器中启用循环动画以显示更改 在一段时间内绘制的数据中。要在实时编辑器中启用动画, 将
matlab.editor.AllowFigureAnimations
设置为true
:s = settings; s.matlab.editor.AllowFigureAnimation.PersonalValue = true;
在示例脚本之前运行这两行将产生预期的行为。