我在图上有13行,每行对应于文本文件中的一组数据。我想标记每行从第一组数据开始标记为1.2,然后是1.25,1.30到1.80等,每个增量为0.05。如果我手动输入它,它将是Matlab图中多行的图例
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);'应该工作。 – yuk 2011-04-07 02:02:47
@yuk:这样会更好,但是他们必须调换'phi_matrix',以便将每列作为一条线绘制。 – gnovice 2011-04-07 17:48:11