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

1 次查看(过去 30 天)
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.

采纳的回答

Veronica Taurino
Veronica Taurino 2022-5-11
编辑:Veronica Taurino 2022-5-11
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 个评论
Chuchu Debebe
Chuchu Debebe 2022-5-11
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

请先登录,再进行评论。

更多回答(1 个)

cr
cr 2022-5-11
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])

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by