필터 지우기
필터 지우기

Read in 150+ space delimited .csv files as matrices and perform the same operation on all of them

조회 수: 2 (최근 30일)
I have 150+ space delimited .csv files that I need to read in as separate matrices so that I can perform the same operation on all of them (converting them to vectors by only keeping one side of the diagonal), and then recombine them into one matrix. I know I can generate a script or function from the wizard to read in a space delimited file, but I don't know how to loop this so it can be done to many files. Essentially, I want to programmatically read in all of these files (with different names) as separate matrices. I included the wizard code, but I don't know how to loop it to read in all .csv files. (I'm a beginner). Thank you.
%% Set up the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", 379);
% Specify range and delimiter
opts.DataLines = [1, Inf];
opts.Delimiter = " ";
% Specify column names and types
opts.VariableNames = ["VarName1", "VarName2", "VarName3", "VarName4", "VarName5", "VarName6", "VarName7", "e05", "VarName9", "VarName10", "e05_1", "e05_2", "VarName13", "VarName14", "VarName15", "VarName16", "VarName17", "VarName18", "e05_3", "e05_4", "e05_5", "e05_6", "VarName23", "VarName24", "VarName25", "e05_7", "e06", "e05_8", "e06_1", "VarName30", "e06_2", "VarName32", "e05_9", "e06_3", "VarName35", "e05_10", "VarName37", "e05_11", "VarName39", "VarName40", "VarName41", "VarName42", "VarName43", "VarName44", "e06_4", "e05_12", "e05_13", "VarName48", "e06_5", "e05_14", "e06_6", "VarName52", "e05_15", "e06_7", "VarName55", "e06_8", "e05_16", "VarName58", "e06_9", "e05_17", "VarName61", "VarName62", "VarName63", "VarName64", "e05_18", "VarName66", "VarName67", "VarName68", "VarName69", "VarName70", "VarName71", "e05_19", "VarName73", "VarName74", "VarName75", "VarName76", "VarName77", "VarName78", "VarName79", "VarName80", "VarName81", "e05_20", "VarName83", "VarName84", "VarName85", "VarName86", "e05_21", "VarName88", "VarName89", "VarName90", "VarName91", "VarName92", "VarName93", "VarName94", "VarName95", "VarName96", "VarName97", "VarName98", "VarName99", "VarName100", "VarName101", "VarName102", "VarName103", "e05_22", "VarName105", "e05_23", "VarName107", "e05_24", "e06_10", "e05_25", "VarName111", "VarName112", "VarName113", "e05_26", "VarName115", "e06_11", "e05_27", "VarName118", "VarName119", "VarName120", "VarName121", "VarName122", "VarName123", "e05_28", "VarName125", "e05_29", "VarName127", "VarName128", "VarName129", "VarName130", "e05_30", "VarName132", "e05_31", "e06_12", "e05_32", "e05_33", "e05_34", "e05_35", "VarName139", "e05_36", "e05_37", "e05_38", "e05_39", "e05_40", "e05_41", "VarName146", "e05_42", "e06_13", "VarName149", "e06_14", "e06_15", "VarName152", "e05_43", "e05_44", "e05_45", "e05_46", "e05_47", "VarName158", "e05_48", "e05_49", "VarName161", "e05_50", "e05_51", "VarName164", "VarName165", "e06_16", "VarName167", "VarName168", "e05_52", "VarName170", "VarName171", "e05_53", "VarName173", "VarName174", "VarName175", "e05_54", "VarName177", "e06_17", "VarName179", "VarName180", "e05_55", "VarName182", "VarName183", "e06_18", "e05_56", "e05_57", "e05_58", "VarName188", "VarName189", "VarName190", "VarName191", "VarName192", "VarName193", "VarName194", "VarName195", "e05_59", "e05_60", "VarName198", "VarName199", "VarName200", "VarName201", "VarName202", "VarName203", "VarName204", "VarName205", "e05_61", "VarName207", "VarName208", "VarName209", "VarName210", "VarName211", "VarName212", "VarName213", "VarName214", "VarName215", "VarName216", "VarName217", "VarName218", "VarName219", "VarName220", "VarName221", "VarName222", "VarName223", "VarName224", "VarName225", "VarName226", "VarName227", "VarName228", "VarName229", "VarName230", "VarName231", "VarName232", "VarName233", "VarName234", "VarName235", "VarName236", "VarName237", "VarName238", "VarName239", "VarName240", "VarName241", "VarName242", "VarName243", "VarName244", "VarName245", "VarName246", "VarName247", "VarName248", "VarName249", "VarName250", "VarName251", "VarName252", "VarName253", "VarName254", "VarName255", "VarName256", "VarName257", "VarName258", "VarName259", "VarName260", "VarName261", "VarName262", "VarName263", "VarName264", "e05_62", "VarName266", "VarName267", "VarName268", "VarName269", "VarName270", "VarName271", "VarName272", "VarName273", "VarName274", "VarName275", "VarName276", "e05_63", "VarName278", "VarName279", "VarName280", "VarName281", "VarName282", "VarName283", "VarName284", "VarName285", "VarName286", "VarName287", "VarName288", "VarName289", "VarName290", "VarName291", "VarName292", "VarName293", "e06_19", "VarName295", "VarName296", "VarName297", "VarName298", "e05_64", "e05_65", "VarName301", "e05_66", "VarName303", "VarName304", "VarName305", "VarName306", "VarName307", "VarName308", "VarName309", "VarName310", "VarName311", "e06_20", "VarName313", "VarName314", "VarName315", "VarName316", "VarName317", "VarName318", "VarName319", "VarName320", "VarName321", "VarName322", "VarName323", "VarName324", "VarName325", "VarName326", "e06_21", "VarName328", "VarName329", "VarName330", "VarName331", "VarName332", "VarName333", "VarName334", "VarName335", "VarName336", "VarName337", "VarName338", "VarName339", "VarName340", "VarName341", "VarName342", "VarName343", "VarName344", "VarName345", "VarName346", "VarName347", "VarName348", "VarName349", "VarName350", "VarName351", "VarName352", "VarName353", "VarName354", "VarName355", "VarName356", "VarName357", "VarName358", "VarName359", "VarName360", "VarName361", "VarName362", "VarName363", "VarName364", "e05_67", "e05_68", "VarName367", "VarName368", "VarName369", "VarName370", "e05_69", "VarName372", "VarName373", "VarName374", "VarName375", "e05_70", "VarName377", "VarName378", "VarName379"];
opts.VariableTypes = ["double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double"];
% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
opts.ConsecutiveDelimitersRule = "join";
opts.LeadingDelimitersRule = "ignore";
% Import the data
filename = readtable("C:\Users\me\Downloads\filename.csv", opts);
%% Convert to output type
filename = table2array(filename);
%% Clear temporary variables
clear opts

채택된 답변

Mathieu NOE
Mathieu NOE 2021년 6월 25일
hello
the first topic is the loop to open all csv file automatically ,
if you prefer your own specific code instead of csvimport as shown here, you can do that as well
% A simpler, neater, more efficient solution is to use the structure returned by DIR:
% P = 'C:\Users\salonsov\Desktop\Results_lowflows\seasons';
P = cd;
S = dir(fullfile(P, '*.csv'));
for k = 1:numel(S)
F = fullfile(P, S(k).name);
S(k).data = csvimport(F); % or READTABLE or whatever.
end
% Take a look in the structure S: it contains all of your file data and the corresponding filenames, just as you require.
% For example, the 2nd filename and its data:
S(2).name
S(2).data
  댓글 수: 2
Jordan
Jordan 2021년 6월 25일
For some reason the structure S doesn't contain my data or file names. It says it's a 0x1 structure with six fields
val =
name
folder
date
bytes
isdir
datenum
I know i have .csv files in the folder though. Not sure why it isn't grabbing them. Do you have any suggestions? Thank you so much!
Stephen23
Stephen23 2021년 6월 25일
편집: Stephen23 2021년 6월 25일
"Do you have any suggestions?"
Did you change P to be the absolute/relative path to the folder where the files are saved?
Note that a simpler and more efficient way to refer to the current directory is to use '.', i.e.
P = '.';

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by