Creating a table then filling it with data.

1 view (last 30 days)
George Scott
George Scott on 6 Apr 2018
Answered: Jeff Miller on 6 Apr 2018
So I'm fairly sure I'm missing something obvious, but how do I create a blank table, that I can then fill with data. What I have is a program that pulls data from a file, performs some functions, then returns the new data. I need this to be done on many files. What I want is a table with the filename of the data pulled, and the end result of the functions performed on said data.
folder = ('C:/Users/The G-Man/Documents/MATLAB/SpeechRecognition/SpeechRecognition2');
files = dir(fullfile(folder, '*.txt'));
mydata = cell(1, numel(files));
for fileidx = 1 : numel(files) mydata{fileidx} = importdata(fullfile(folder, files(fileidx).name)); y=fft(mydata{fileidx}); c=xcorr(xf,y); m=mean(abs(c));
end

Answers (1)

Jeff Miller
Jeff Miller on 6 Apr 2018
How about this:
  1. preallocate arrays to hold y, c, and m before you start the loop
  2. store the values into those arrays as you go through the loop, e.g. c(fileidx)=xcorr(xf,y);
  3. stuff everything into a table after the loop finishes, e.g., t=table(files,y,c,m)

Tags

Community Treasure Hunt

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

Start Hunting!