在MATLAB仿真期间实时显示变量

时间:2017-05-11 16:58:11

标签: matlab matlab-figure

我有一个有很多次迭代的模拟。有一些可变矩阵,我希望在模拟发生时监控这些值。有什么好方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

我经常使用两种工具来做这样的事情。

<强> 1。每次迭代都会擦除的迭代输出

这适用于您希望监视标量函数输出的优化。

在我的while循环之前,我将在screenOut = [];中定义screenOutFormat和输出公式。在我的循环中,在该迭代计算完成后,我会添加像

这样的东西
if iter <=2
  bspace = [];
else
  bspace = repmat('\b', [1 length(screenOut)]);
end
screenOut = sprintf(screenOutFormat, iter, estimatedValue);
fprintf([bspace screenOut]);

通过这种方式,您可以在不破坏命令窗口历史记录的情况下查看起点和每次迭代。

<强> 2。图形的动态更新

如果你有可以绘制的东西,这很有效。

在循环开始之前,使用

设置绘图
figH = figure();
progPlot = plot(Y);

然后每次迭代都可以

progPlot.YData = Y;
drawnow();

通过这种方式,您可以继续绘制您关心的估算值。

如果你有一个你关心的矩阵,我建议你选择你真正感兴趣的元素并使用#1。但是如果你可以绘制更有用的东西,那么在长期估算/模拟程序中观察#2通常会更有趣。