2015-11-01 70 views
0

我有一个非常简单的MatLab代码,她很好地绘制了6个数据点。列表中的x坐标为dt;在第7行的TempTable表中的y坐标。它一切正常,我只需要用直线加入点。用直线连接数据点(MatLab)

% Plotting T_new(7) vs. dt 
dt=[0.001,0.005,0.01,0.05,0.1,0.25] % The time steps 
y=[300,320,330,340,345,350] 

for i=1:1:6  % Looping through all temperature profiles 
    hold all;  
    plot(dt(i), y(i), 'b*-', 'LineWidth', 1); 
    title(['Temperatures at nodal point 7']); 
    xlabel('dt [s]'); 
    ylabel('T [\circC]'); 
    set(gca, 'LineWidth', 1); 
    axis([ dt(2)-0.1, dt(6)+0.1, 300, 350 ]); 
    pause(0.1);  % Animation step time 
end 

不应该在b*-破折号-添加这些连接线,还是什么?这里缺少什么,因为他们不?

+0

请加上'TempTable'了。 – harre

+0

@harre我现在已经将表格引用更改为六个值的矢量,并将其添加到代码中。同样的问题,所以桌子似乎不是问题。所有使用的数据都应该在代码中。 – Steeven

+0

只在相同的绘图命令*中添加行。独立的绘图命令不能连接,并且它们不应该连接。 matlab如何知道要连接哪些点以及按照什么顺序? –

回答

2

你的循环是你的问题。每次迭代只绘制一个点,Matlab不可能知道连接点。所以,如果你想使用循环,你必须手动连接点与另一个plot -statement。

没有环一个解决办法是:

hold all;  
plot(dt, TempTable(7,:), 'b*-', 'LineWidth', 1); 
title(['Temperatures at nodal point 7']); 
xlabel('dt [s]'); 
ylabel('T [\circC]'); 
set(gca, 'LineWidth', 1); 
axis([ dt(2)-0.1, dt(6)+0.1, 300, 350 ]); 
pause(0.1);  % Animation step time 
+0

@Steeven如果你想要一个带有线条的渐变图,可以在原始代码中使用'plot(dt(1:i),y(1:i),...)'。 –

+0

补充说明。 – harre