回路图的MATLAB

回路图的MATLAB,matlab,graph,for-loop,plot,Matlab,Graph,For Loop,Plot,我有一个关于在MATlab中制作简单绘图的快速问题。我以前做过,但由于某种原因,它已经停止工作,我想要的图表也不再出现 我不知道需要多少信息才能回答这个问题,所以如果我需要补充更多,请告诉我 我有一个ODE系统,在循环中使用以下参数作为变量之一 A4bar = NaN; for eta_p = 0.0:.1:7; A3bar=x(size(t,1),3); A4bar= [A4bar;A3bar]; hold on plot(eta_p,A4bar,'-k','linewidth',1); 当

我有一个关于在MATlab中制作简单绘图的快速问题。我以前做过,但由于某种原因,它已经停止工作,我想要的图表也不再出现

我不知道需要多少信息才能回答这个问题,所以如果我需要补充更多,请告诉我

我有一个ODE系统,在循环中使用以下参数作为变量之一

A4bar = NaN;
for eta_p = 0.0:.1:7;
A3bar=x(size(t,1),3);
A4bar= [A4bar;A3bar];
hold on
plot(eta_p,A4bar,'-k','linewidth',1);
当我使用上面的代码时,我的图形会显示一组未连接的绘制点

当我使用我以前使用过的原始代码时,我使用了这个

A4bar = NaN;
for eta_p = 0.0:.1:7;
A3bar=x(size(t,1),3);
A4bar= [A4bar;A3bar];
place_holder_eta_p = 0:.1:7.1;
hold on
plot(place_holder_eta_p,A4bar,'-k','linewidth',1);
对于我的原始代码,我得到的错误是向量不相等。我试着将place_holder_eta_p设置为与eta_p匹配,但没有成功。它过去只使用上面的代码,所以我不确定发生了什么

有什么想法或建议吗?也许更重要的是,让我知道,如果有任何额外的信息,我应该提供


谢谢大家

我想你不需要for循环来完成你想做的事情。事实上,这是因为您正在将每个单独的点绘制为自己的图,所以您可以在图形中获得未连接的点。在任何情况下,您都没有展示如何在循环中使用变化变量
eta\u p

代码的基本结构如下所示:

eta_p = 0:0.1:7;
N     = length(eta_p);
A4bar = Zeros(1, N);       % same length as eta_p
% set up your other variables

% calculate the values in A4bar
% it might look like
% for i = 1:length(eta_p)
%     A4bar(i) = interesting_function(eta_p(i), A3bar, x, t);
% end

plot(eta_p, A4bar, '-k', 'linewidth', 1);
我不知道如何设置其他变量
A3bar
x
t
,如果没有任何附加信息,我无法告诉您在中间部分需要什么来计算
A4bar
的值

需要注意的重要事项是

  • eta\u p
    A4bar
    都是大小
    [1 N]
    (对于
    绘图
    命令是必需的)
  • 在计算完
    A4bar
    的所有值后,
    plot
    命令在任何循环外部而不是循环内部执行一次

  • 请发布一个更完整的示例-至少包括整个for循环,直到“结束”。在第一个示例中,您希望发生什么事情而没有发生?在第二个示例中,正如您所说,
    placeholder\u eta\u p
    具有不同的长度,那么您为什么要这样做?+1。请注意,如果for循环非常慢,并且希望看到计算的进度(请依次查看点),则可以在循环内绘制
    绘图。只需从两个[1 N]NAN数组的
    eta_P
    A4bar
    开始,然后逐步用数据填充它们。确保不对您的体形使用
    hold all
    hold on
    ,然后
    plot
    始终替换上一个plot。您还需要在循环内的绘图之后添加
    drawnow
    ,以实际查看任何内容……除了@Jonas comment,您实际上可以更新现有绘图,而不是使用
    set(h,'XDataSource','eta_p','YDataSource','A4bar')
    然后调用
    刷新数据(h)无论何时更新
    A4bar
    。变量
    h=绘图(eta_p,A4bar,'-k',线宽',1)A4bar
    的循环之前调用code>。如果N非常大(虽然在本例中不是太大),这比创建一个新的绘图要快。非常感谢大家的帮助,尤其是@Brian L。我真的很感谢你花在这方面的时间来帮助我