相关疑难解决方法(0)

我应该如何在Matlab中更新绘图数据?

假设我想用新数据更新绘图.我应该选择什么方法?

  1. XDataSource属性设置为某个名称,更新变量并调用refreshdata
  2. 再次删除原始plot和呼叫plot命令.
  3. 使用 Set('Xdata',...')

matlab plot graph matlab-figure matlab-guide

33
推荐指数
1
解决办法
4万
查看次数

如何在MATLAB中加速非常慢的动画情节

我正在尝试创建一个动画情节,但是我的代码非常慢,也许我使用的方法太幼稚了。在下面的示例中,我有4个子图,每个子图有3行,并在“时间”循环中进行了更新。

clc;clear;close all;
state = {'$x-Position$','$x-Velocity$','$y-Position$','$y-Velocity$'};
ylabels = {'$x$','$\dot{x}$','$y$','$\dot{y}$'};
options1 = {'interpreter','latex'};
options2 = {'interpreter','latex','fontsize',20};
maxT = 300;

for pp = 1:4
    hh1(pp)=subplot(2,2,pp);
    xlabel('$t$',options2{:});
    ylabel(ylabels{pp},options2{:});
    title(state{pp},options1{:})
    xlim([0 maxT])
    hold on
end
x = randn(4,300);
z = randn(4,300);
x_est = randn(4,300);
for k = 2:maxT
    for p = 1:4
        plot(hh1(p),k-1:k,x(p,k-1:k),'b','linewidth',2)
        plot(hh1(p),k-1:k,z(p,k-1:k),'m')
        plot(hh1(p),k-1:k,x_est(p,k-1:k),':k','linewidth',2)
    end
    drawnow;
end
Run Code Online (Sandbox Code Playgroud)

探查器输出中可以看出,这drawnow正在浪费时间。有什么方法可以使我更有效地创建此动画?

performance profiler matlab animation drawnow

1
推荐指数
1
解决办法
974
查看次数