Effacer les filtres
Effacer les filtres

Reading text file with variable name

3 vues (au cours des 30 derniers jours)
Abdulaziz Abutunis
Abdulaziz Abutunis le 17 Juin 2022
Modifié(e) : Voss le 17 Juin 2022
Dear all
I wanted to read a text file with variable names in a loop. file names are 1.txt, 2.txt, 3.txt, and 4.txt. The files will be called during iteration repeatedly. I have an array that has the pattern of how the files should be called say: file_number=[1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4 ..]. I wonder if there is a way to call the files following this pattern.
Thanks

Réponse acceptée

Voss
Voss le 17 Juin 2022
One way, using file_number in the file name:
file_number=[1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4];
for ii = 1:numel(file_number)
current_file_name = sprintf('%d.txt',file_number(ii))
% read the file current_file_name
end
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
Another way, which works for any set of file names:
file_number=[1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4];
file_names = {'a_file.txt' 'another_file.txt' 'yet_another_file.txt' 'you_guessed_it_another_file.txt'};
for ii = 1:numel(file_number)
current_file_name = sprintf('%s',file_names{file_number(ii)})
% read the file current_file_name
end
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
  2 commentaires
Abdulaziz Abutunis
Abdulaziz Abutunis le 17 Juin 2022
Thank you very much
I found this works also
[num2str(file_number(i)),'.txt']
Voss
Voss le 17 Juin 2022
Modifié(e) : Voss le 17 Juin 2022
You're welcome! That's right, num2str also works!
As an alternative to all of these approaches, which create one file name at a time, it may be convenient to create all the file names at once, before the loop:
file_number=[1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4];
all_file_names = sprintfc('%d.txt',file_number)
all_file_names = 1×24 cell array
{'1.txt'} {'1.txt'} {'1.txt'} {'2.txt'} {'2.txt'} {'2.txt'} {'3.txt'} {'3.txt'} {'3.txt'} {'4.txt'} {'4.txt'} {'4.txt'} {'1.txt'} {'1.txt'} {'1.txt'} {'2.txt'} {'2.txt'} {'2.txt'} {'3.txt'} {'3.txt'} {'3.txt'} {'4.txt'} {'4.txt'} {'4.txt'}
for ii = 1:numel(file_number)
current_file_name = all_file_names{ii}
end
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '1.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '2.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '3.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
current_file_name = '4.txt'
file_number=[1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4];
file_names = {'a_file.txt' 'another_file.txt' 'yet_another_file.txt' 'you_guessed_it_another_file.txt'};
all_file_names = file_names(file_number)
all_file_names = 1×24 cell array
{'a_file.txt'} {'a_file.txt'} {'a_file.txt'} {'another_file.txt'} {'another_file.txt'} {'another_file.txt'} {'yet_another_file.txt'} {'yet_another_file.txt'} {'yet_another_file.txt'} {'you_guessed_it_another_file.txt'} {'you_guessed_it_another_file.txt'} {'you_guessed_it_another_file.txt'} {'a_file.txt'} {'a_file.txt'} {'a_file.txt'} {'another_file.txt'} {'another_file.txt'} {'another_file.txt'} {'yet_another_file.txt'} {'yet_another_file.txt'} {'yet_another_file.txt'} {'you_guessed_it_another_file.txt'} {'you_guessed_it_another_file.txt'} {'you_guessed_it_another_file.txt'}
for ii = 1:numel(file_number)
current_file_name = all_file_names{ii}
end
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'a_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'yet_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'
current_file_name = 'you_guessed_it_another_file.txt'

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by