Plotting multiple histograms on same plot
1 view (last 30 days)
Show older comments
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
0 Comments
Answers (2)
Image Analyst
on 8 Apr 2012
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.
0 Comments
See Also
Categories
Find more on Histograms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!