回路图的MATLAB
我有一个关于在MATlab中制作简单绘图的快速问题。我以前做过,但由于某种原因,它已经停止工作,我想要的图表也不再出现 我不知道需要多少信息才能回答这个问题,所以如果我需要补充更多,请告诉我 我有一个ODE系统,在循环中使用以下参数作为变量之一回路图的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); 当
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。我真的很感谢你花在这方面的时间来帮助我