我有一个图表上的13条线,每条线对应一个文本文件中的一组数据。我想将每条线标记为1.2开头的一行,然后依次为1.25、1.30到1.80等,每个增量为0.05。如果我手动输入,它会是:
legend('1.20','1.25','1.30', ...., '1.80')
然而,将来我可能会在图表上有超过20条线。因此逐一输入每个线条是不现实的。我尝试在图例中创建一个循环,但它不起作用。
我该如何以实用的方式解决这个问题?
N_FILES=13 ;
N_FRAMES=2999 ;
a=1.20 ;b=0.05 ;
phi_matrix = zeros(N_FILES,N_FRAMES) ;
for i=1:N_FILES
eta=a + (i-1)*b ;
fname=sprintf('phi_per_timestep_eta=%3.2f.txt', eta) ;
phi_matrix(i,:)=load(fname);
end
figure(1);
x=linspace(1,N_FRAMES,N_FRAMES) ;
plot(x,phi_matrix) ;
需要帮助:
legend(a+0*b,a+1*b,a+2*b, ...., a+N_FILES*b)
x=1:N_FRAMES;
呢?我认为这样更清晰。实际上你根本不需要 x,直接写plot(phi_matrix);
就可以了。 - yukphi_matrix
,以便将每个列绘制为一条线。 - gnovice