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

2 Ansichten (letzte 30 Tage)
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.

Akzeptierte Antwort

Veronica Taurino
Veronica Taurino am 11 Mai 2022
Bearbeitet: Veronica Taurino am 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 Kommentar
Chuchu Debebe
Chuchu Debebe am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

cr
cr am 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])

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by