Asking the user to enter the extension of the files and load them in workspace

2 vues (au cours des 30 derniers jours)
Here is my code and the question
%%
close all
clc
My_directory=input('Pleas enter your address of the directory containing strongmotion records: ','s');
% Here you are supposed to put your folder name in command window
cd(My_directory);
disp('You are now in the directory containing the strong motion records')
extension=input('Pleas enter the extension of the strongmotion record files: ','s');
I want to write interactive code so that the user can enter his/her own address for the directory containing the files. The above code can take anyone to the directory where the files belong. Now let's assume the directory where you went has many files (it may contain any extension files). Now I want to continue writing the code where the user can enter the extension and load similar files (the input can be m for .m files and txt for .txt files), depending on which files he/she wants to work on.

Réponse acceptée

Veronica Taurino
Veronica Taurino le 11 Mai 2022
Modifié(e) : Veronica Taurino le 11 Mai 2022
What do you want to do with those files? Update them as Matlab variables? Store their paths?
However, let's say you want to import them in matlab and loop among them:
My_directory=input('Pleas enter your address of the directory containing strongmotion records: ','s');
% for example: C:\Users\Documents\TEST
cd(My_directory);
disp('You are now in the directory containing the strong motion records')
extension=input('Pleas enter the extension of the strongmotion record files: ','s');
% for example: txt
ext_code =['','*.',extension,''];
directory_all=strcat([My_directory,'\'], ext_code);
files=dir(directory_all);
% loop among files
for file=files'
% do stuff...
% ex. Load data
file_name = file.name
name_complete=strcat([My_directory,'\'],file_name);
DATA = importdata(name_complete)
end
  1 commentaire
Chuchu Debebe
Chuchu Debebe le 11 Mai 2022
Thank you, Madam. It helped me much. This is a good answer. Actually, the command load brings those files into the workspace to deal with them.
I looped in this way and it works.
N=length(files);
for i=1:N
filesa_ll=files(i).name;
load(filesa_ll);
end

Connectez-vous pour commenter.

Plus de réponses (1)

cr
cr le 11 Mai 2022
Not sure what you mean by "load similar files". To "load" or import file(s) you first need to specify the file(s). If you want user to first select one or more files of a specified extension, uigetfile() is the way to go. E.g.
uigetfile('*.txt')
if extension is dynamically specified below is how it may be done.
uigetfile(['*.' extension])

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by