我有一个关于在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匹配,但这不起作用。它曾经只使用上面的代码,所以我不知道发生了什么。
任何想法或建议?也许更重要的是,请告诉我是否有任何其他信息我应该提供。
谢谢大家。
答案 0 :(得分:2)
我怀疑你不需要for循环去做你想做的事情。实际上,这是因为您将每个单独的点绘制为自己的图,您可以在图中获得未连接的点。在任何情况下,您都没有展示如何在循环中使用更改变量eta_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_p
和A4bar
的大小均为[1 N]
(plot
命令所需)plot
命令在外部任何循环后发生,而不是在其中,并且在您计算了所有 A4bar
的值之后。