How to put a struct files into a new folder

4 ビュー (過去 30 日間)
Coco
Coco 2019 年 7 月 19 日
編集済み: Nagamani Yaadavalli 2020 年 12 月 8 日
Hi guys,
After i use the following code to find files i want, how to put those files into the new folder? Thank you.
This code will give me the info of files in a struct such as name, path, size etc.
files = dir('D:\Data\**\*.mat')
  4 件のコメント
Walter Roberson
Walter Roberson 2019 年 7 月 19 日
To confirm: even though each of the level 3 folders has 100+ files, you want to extract only the one where the "cell" number prefix matches the folder name? Does it happen to be the case that those are the only cell*_Area.csv files in those folders? For example, there is no cell1_Area.csv inside MDA cell2 that needs to be ignored because the cell# prefix does not match the folder name ?
Coco
Coco 2019 年 7 月 22 日
Hi Walter
Sorry for the late reply.
Each csv file's name is unique and the cell# prefix matches the folder name.
For example: in folder 'MDA cell1', all of csv file is 'cell1_Area','cell1_distance'.... There is no cell2_* in folder 'MDA cell1'.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2019 年 7 月 22 日
destdir = 'D:\Data\MDA\MDA Matlab\Area';
files = dir('D:\Data\MDA\MDA*\cell*_Area.csv');
fullnames = fullfile({files.folder}, {files.name});
if ~exist(destdir, 'dir')
mkdir(destdir);
end
copyfile(fullnames, destdir); %or movefile() if appropriate
  4 件のコメント
Coco
Coco 2019 年 7 月 23 日
Hi Walter
Thank you so much. It works very well. it saved me tons of time. I have 2000 csv files need to be sorted like this.
Nagamani Yaadavalli
Nagamani Yaadavalli 2020 年 12 月 8 日
編集済み: Nagamani Yaadavalli 2020 年 12 月 8 日
What if the output data has to save in an excel/csv format in a different folder. Here the the output of Analysis1 wants to save in a new excel/csv file in different folder or soeother directory. Please help me with this code.
% getting the folder directory of files you want to work
myFolder = '/Users/xxxxx/Desktop/xxxxx/Tests/27.11.2020 csv/Total';
% code for determining the file pattern that you have, * represents all the
% files
filePattern = fullfile(myFolder, '*.csv');
% code for addressing all the files
theFiles = dir(filePattern)
for k = 1: length(theFiles)
baseFileName = theFiles(k).name;
fullfilename = fullfile(theFiles(k).folder,baseFileName)
fprintf(1,fullfilename);
Test= dlmread(fullfilename,',',1,2)
theMeans = mean(Test,1)
Analysis1(:,k) = theMeans'
end

サインインしてコメントする。

その他の回答 (1 件)

Coco
Coco 2019 年 7 月 22 日
i also tried to save the file one by one, then it worked. just i dont know how to save them all automatically. any help? thank you.
f=fullfile('D:\','Data','MDA231','MDA231 Mito cell1_Statistics','MDA231 Mito cell1_Area.csv')
f =
'D:\Data\MDA231\MDA231 Mito cell9_Statistics\MDA231 Mito cell9_Area.csv'
>> copyfile(f, destdir)

カテゴリ

Help Center および File ExchangeEnvironment and Settings についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by