iterate through multiple files in a folder

150 vues (au cours des 30 derniers jours)
Nitish Reddy Kotkur
Nitish Reddy Kotkur le 19 Oct 2019
Modifié(e) : Cathal le 18 Juil 2023
function [] = lanczos(A, m)
A = readmatrix('output1.txt','Whitespace',' []');
here A reads a single text file.
But i wanted A to read multiples text files(may be using for loop) stored in a folder(say graphs) and the function needs to run through all of them and display output for every text file.
can someone help me with this.
  3 commentaires
Nitish Reddy Kotkur
Nitish Reddy Kotkur le 19 Oct 2019
Modifié(e) : Rik le 20 Oct 2019
myfolderinfo=dir('dense_gnm_random_graph');%dense_gnm_random_graph is the folder which contains text files
N=length(myfolderinfo);
for i = 3:N
thisfile = myfolderinfo(i).name
A = readmatrix('thisfile','Whitespace',' []');
and these are the errors i got
Error using readmatrix (line 148)
Unable to find or open 'thisfile.txt'. Check the path and filename or file permissions.
Error in final (line 6)
A = readmatrix('thisfile.txt','Whitespace',' []');
Rik
Rik le 20 Oct 2019
The source of the error is that you entered the variable name as a char array instead of the contents of the variable.

Connectez-vous pour commenter.

Réponses (2)

Katarina Vuckovic
Katarina Vuckovic le 20 Oct 2019
myDir = uigetdir; %gets directory
myFiles = dir(fullfile(myDir));
M(length(myFiles),s)=zeros; %gets all wav files in struct
for k = 1:length(myFiles)
baseFileName = myFiles(k).name;
fullFileName = fullfile(myDir, baseFileName);
A = readmatrix(fullFileName,'Whitespace',' []');
end

Cathal
Cathal le 18 Juil 2023
Modifié(e) : Cathal le 18 Juil 2023
Expanding on Katarina's answer, this worked for me with some small changes:
myDir = uigetdir; %gets directory
myFiles = dir(fullfile(myDir, '*.txt'));
M(length(myFiles))=zeros; %gets all wav files in struct
for k = 1:length(myFiles)
baseFileName = myFiles(k).name;
fullFileName = fullfile(myDir, baseFileName);
A = readtable(fullFileName,'Whitespace',' []');
%Assuming by display you mean to plot?
plot(A{:,1}, A{:,2}, Marker=".") %Replace {:,1} and {:,2} with whatever
hold on
end

Catégories

En savoir plus sur Environment and Settings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by