我在圖上有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