Plotting multiple histograms on same plot

Hi there. My problem is this I have a directory which has 3000 'dna.out' files. And this is how Im loading them all in matlab :
files = dir('*.out');
for i = 1 : length(files)
eval(['load ' files(i).name ]);
hist(files(i).name, 300);
hold on;
end
But I need to plot all these 3000 files in a single figure.How can I use the undermentioned code in a loop to plot all the loaded files.
[n,r]=hist(dna23,300);
plot(r,n,'r-');grid on;
hold on
Im currently doing it manually and i have 5 more folders having thousands of files. Please help

回答 (2 件)

rob
rob 2012 年 4 月 8 日

0 投票

1 件のコメント

Vinita
Vinita 2012 年 4 月 8 日
thanx rob, but how do i generate dataset from a directory which could be fed into histnorm.

サインインしてコメントする。

Image Analyst
Image Analyst 2012 年 4 月 8 日

0 投票

You don't want to do a histogram of your filename (a character array). You want a histogram of the contents of the filename, right?
Don't use eval. Do it this way:
for k = 1 : length(files)
baseFileName = files(k).name;
if exist(baseFileName , 'file')
storedVariables = load(baseFileName);
dna23= storedVariables.dna23;
[counts binValues] = hist(dna23(:), 300);
if k == 1
allCounts = counts;
else
allCounts = allCounts + counts;
end
end
end
bar(allCounts);
Of course, don't forget to check that counts is the same size every time, to use fullfile(), try/catch, comments, and all the other things that go into making a robust and maintainable program.

カテゴリ

ヘルプ センター および File ExchangeData Distribution Plots についてさらに検索

質問済み:

2012 年 4 月 8 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by