Opening different files in for loop with dlmread?

조회 수: 14 (최근 30일)
Emanuele Joy
Emanuele Joy 2018년 5월 22일
댓글: Emanuele Joy 2018년 5월 22일
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)

채택된 답변

jonas
jonas 2018년 5월 22일
편집: jonas 2018년 5월 22일
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
Emanuele Joy
Emanuele Joy 2018년 5월 22일
Almost, I set it as caesar{k} = dlmread(caesarT(k)) and it worked. Thank you!

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

추가 답변 (0개)

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by