Reading .csv files from .txt file.

40 views (last 30 days)
Ivan Mich
Ivan Mich on 28 May 2020
Commented: Rik on 28 May 2020
Hello,
I have a .txt file with 7lines and 4 columns, and 4 csv files(with names a.csv, b.csv, c.csv and d.csv). In the first column there are the names of my .csv files( Imean a.csv, b.csv,c.csv and d.csv).
I would like via a loop to read each of my .csv files , depending on the line with the same name/line( Imean in the first column of the first Line of my .txt file has the name 'a.csv'. Depending on this I would to read the 'a.csv' file.
Could anyone help me?
  2 Comments
Rik
Rik on 28 May 2020
So each txt file contains the file name of the csv file you want to read?
And what have you tried so far to read either the txt or csv files?
Ivan Mich
Ivan Mich on 28 May 2020
I am importing the .txt file and the 4 .csv files in order to understand what I want to make/
To Be honest I have no idea whih command should I use , and that's why I am asking there...

Sign in to comment.

Accepted Answer

Rik
Rik on 28 May 2020
How to read text files is maybe the most frequently asked question. Among many solutions, you can either directly read the txt file with native Matlab functions, or use my readfile function. In this case the added benefit of that file is 0, but in the future it may be handy to already have that function.
Then you can read the relevant csv file with the readmatrix function.
  4 Comments
Ivan Mich
Ivan Mich on 28 May 2020
Edited: Ivan Mich on 28 May 2020
I used
clc
clear
t4=readtable('final.txt','readvariablenames', true);
name=t4{:,1}
filename1= 'a.csv';
[d1,tex]= xlsread(filename1);
The problem is that I do not know what to do in order to continue my code and make what I want
Rik
Rik on 28 May 2020
Why did you ignore my advice about using readfile? Also, at least skip that readvariablenames, it doesn't do what you need it to. Anyway, the code below contains the required edits to fix your code.
t4=readtable('final.txt');
name=t4{:,1};
data=cell(size(name));
for n=1:numel(name)
csv_file_name=name{n};
%read the data to a cell array
data{n}=readmatrix(csv_file_name);
end
%instead of using data1, data2, and data3, you can use data{1}, data{2}, and data{3}

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!