How to make a CSV parser for multiple files with different names?
Mostrar comentarios más antiguos
I am trying to make a parser of multiple CSV files here. Here's a solution for one. This allows me to pick one of the files and work with it. All I want to do with each file is to find the maximum value with respect to other columns. For example, here's the example of output I get:

function upload_btn_Callback(~, ~, handles)
%Uploading a file via user interface
uploaded_file = uigetfile('*.csv','Select a .csv data file');
%If file is loaded
if uploaded_file == 0
set(handles.upload_txt, 'String', 'Status: Cancelled');
else
set(handles.upload_txt, 'String', 'Status: Please wait...');
%Loading the array with CSV-file values
array = csvread(uploaded_file, 8, 0);
set(handles.upload_txt, 'String', ['Uploaded: ' uploaded_file]);
format long;
%Finding all max velocity values
max_vel = max(array(:, 5));
idx = find(array(:, 5) == max_vel);
%Finding time of the max velocity values
t = array(idx(:, 1), 3);
time = num2str(t);
%Finding altitude of the max velocity values
a = array(idx(:,1), 4);
alt = num2str(a);
set(handles.uitable1, 'Visible', 'on');
set(handles.pushbutton2, 'Visible', 'on');
set(handles.uitable1, 'Data', {num2str(max_vel), alt, time});
%This doesn't work...
plot(array(:, 3), array(:, 5));
end
With all this I can't figure out how to make it work for multiple files. Ultimately all I need to do is to pick a directory with those files and load all files with .csv extension, no matter what their names are. I tried different ways with dir() and other stuff but none would work... Maybe there's a better way to do, other than this? I honestly wouldn't even do it in MATLAB if it weren't for its speed with matrices. (Files are hundreds of megabytes big).
Thank you!
Respuestas (2)
Walter Roberson
el 30 de Nov. de 2015
0 votos
1 comentario
Walter Roberson
el 30 de Nov. de 2015
folder = uigetdir('What folder do you want?');
dirinfo = dir(fullfile(folder, '*.csv'));
for K = 1 : length(dirinfo)
uploaded_file = fullfile(folder, dirinfo(K).name);
array = csvread(uploaded_file, 8, 0);
... etc etc...
end
Micard
el 30 de Nov. de 2015
0 votos
Categorías
Más información sobre File Operations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!