2016-06-28 13 views
0

複数のファイルを含むフォルダがあります。ファイルには同じ量のデータポイントが含まれていません... Matlabにファイルを読み込ませ、それらをループして、すべての単一ファイルのR(T)をプロットしたいと思います。さらに、私はファイル名を別のグラフの凡例として欲しいです(例えば、結果のフォームファイル 'Example1.dat'は凡例に 'Example1.dat'として表示されます)。私が今やっている何を は次のとおりです。Matlab:ファイルをループし、データを1つの図にプロットし、凡例としてファイル名を追加します。

files=dir('*.dat') % Get all input files 
hold on % multiple plots in one figure 
for file=files' % loop over files 
    [T, R] = textread(file.name,'%f %f') %get data points 
    xlim([8.5 10]) % set limits 
    ylim([-0.5 2.5]) % set limits 
    plot(T,R) % plot 
end 
legend(files.name) % add legend 

私はそれをしようとするたびに、同じグラフ凡例に別の名前を取得しますので、私は何を取得することは、右を見ていません。どうすれば修正できますか?

+0

を試してみてください「私はそれをしようとするたびに、同じグラフ凡例に別の名前を取得します。」部? –

+0

プロットの同じグラフ(たとえば、ファイル 'Example1.dat'から得られたもの)は、最初の試行では名前が 'Example4.dat'で、コードを再実行すると 'Example1.dat'という名前が付けられます。 .. 明らかに、これは私が望むものではありません。グラフの結果がXYファイルの場合は、XYという名前が付けられ、別のファイルではありません。 – DerAuenlaender

+0

ダミーファイルでコードを試してみると、毎回うまく機能します。 –

答えて

0

はあなたに手の込んだことができます。この

files=dir('*.dat') % Get all input files 
hold on % multiple plots in one figure 
for filenumber=1:length(files) % loop over files 
    [T, R] = textread(files(filenumber).name,'%f %f') %get data points 
    plot(T,R) % plot 
end 
%limits only need to be fixed at the end 
xlim([8.5 10]) % set limits 
ylim([-0.5 2.5]) % set limits 
legend(files.name) % add legend 
関連する問題