Reading .csv files from .txt file.

40 Ansichten (letzte 30 Tage)
Ivan Mich
Ivan Mich am 28 Mai 2020
Kommentiert: Rik am 28 Mai 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 Kommentare
Rik
Rik am 28 Mai 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 am 28 Mai 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...

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Rik
Rik am 28 Mai 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 Kommentare
Ivan Mich
Ivan Mich am 28 Mai 2020
Bearbeitet: Ivan Mich am 28 Mai 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 am 28 Mai 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}

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by