How do I concatenate the data to plot multiple spectra in one graph

So I have been trying to import 167 .csv files from a directory. These files should be plotted together (j vs w) and I would like to concatenate all the j (dims 2204x1) values as a matrix. The first column should be w (dims 2204x1), which is constant for all the files and the rest should be the 167 'j' values. So far I've been successful at reading all these files, but I cannot build a matrix (I also can't plot these). I chose the row values "15:end" because there is no data prior to this.
I've been combing through the forums and I can't seem to find the right code to do this. I've tried using brackets and curly brackets.
Any help would be appreciated!
a=dir('*.csv');
for i=1:length(cell(size(a)))
bob = sprintf('_ (%i).csv',i)
[~,~,idx{i}]=xlsread(bob);
w=table(idx(:,1));
j=table(idx(:,2));
w=w{15:end,'Var1'};
j=j{15:end,'Var1'};
end

 Accepted Answer

a = dir('*.csv');
numfiles = length(a);
for i = 1 : numfiles
bob = sprintf('_ (%i).csv',i)
[~,~,idx]=xlsread(bob);
if i == 1
w = idx(15:end,1));
j = zeros(size(w,1), numfiles);
end
j(:,i) = idx(15:end,2);
end

1 Comment

Thanks Walter,
I ended up modifying this code since xlsread did not read the data I wanted. I really appreciate your help
a = dir('*.csv');
numfiles = length(a);
for i = 1 : numfiles
bob = sprintf('_ (%i).csv',i)
data(i)=importdata(bob)
plot(data(i).data(:,1),data(i).data(:,2))
hold on
if i==1
w = data(i).data(1:end,1);
j = data(i).data(1:end,2);
end
j(:,i) = data(i).data(1:end,2);
end
hold off
xlabel('Wavenumber (cm^-^1)')
ylabel('Reflectance')

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements 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!