Opening different files in for loop with dlmread?

1 Ansicht (letzte 30 Tage)
Emanuele Joy
Emanuele Joy am 22 Mai 2018
Kommentiert: Emanuele Joy am 22 Mai 2018
I'm trying to open .txt files caesar1, caesar2, and caesar3 in a for loop.
for k = 1:3
N = string([1,2,3]);
caesarN = strcat('caesar',N);
caesarT = strcat(caesarN, '.txt');
caesar(k) = dlmread(caesarT);
end
I do end up getting a string array caesarT = [caesar1.txt, caesar2.txt, and caesar3.txt] but dlmread won't open them for some reason (says that Filename must be a character vector). I tried to char(caesarT), but it still doesn't work. What am I missing here? Do I just need to somehow add the characters ' ' to my caesar# strings? (e.g. literally have the string be 'caesar1.txt'... instead of caesar.txt)

Akzeptierte Antwort

jonas
jonas am 22 Mai 2018
Bearbeitet: jonas am 22 Mai 2018
You need to call one file at a time in dlmread. Change to:
for k = 1:3
N = string([1,2,3]);
caesarN = strcat('caesar',N);
caesarT = strcat(caesarN, '.txt');
caesar(k) = dlmread(caesarT{k});
end
You can also use something like this, to generate the names
fnames = dir('filepath\ceasar*');
all files in the current dir beginning with 'ceasar' are stored in fnames.name
  1 Kommentar
Emanuele Joy
Emanuele Joy am 22 Mai 2018
Almost, I set it as caesar{k} = dlmread(caesarT(k)) and it worked. Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu File Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by