我有两个子文件夹,我想在Matlab中绘制。它们存储如下:
C:\Users\Name\OneDrive\Desktop\Outputs\Data\Phase1\out\Stats
C:\Users\Name\OneDrive\Desktop\Outputs\Data\Phase2\out\Stats
stats文件夹中有10个txt文件,编号为1到10。如何从同一图形上的两个子文件夹打印文件“1.txt”,但在图例中,打印名称为Phase 1和Phase 2?相同编号的所有文件具有相同的尺寸。因此Phase1\out\Stats\8.txt和Phase2\out\Stats\8.txt具有相同的维度。目前的数据是在一个FDS,因此细胞阵列的所有20个表,我绘制,因为我去使用'cellfun'
因为在Phase和Stats之间有另一个子文件夹,我是否应该将Stats保存到相应的Phase子文件夹中,并从那里工作,因为“out”中有其他文件?提前思考,什么是最简单的方法来工作的下拉列表,因为以后我想有它,所以所有阶段将被绘制,但用户可以选择,例如'3.txt'一个变量共同所有的'3.txt'文件,因为它们都是相同的,并将绘制该变量的所有3.txt文件。
我看到的主要问题是,我的FDS中的数据存储在一个20 x1单元格的表数组中,但我不知道如何将其转换为文件夹,例如。2 × 1单元阵列,每行包含10 × 1表格阵列。我试着改变了传说,但加载到文本框中的完整路径名称,其中涵盖了很大比例的情节。
老实说,在Matlab上没有足够的技能,不知道从这里去哪里。
Folders = dir(fullfile("C:\Users\NamE\OneDrive\Desktop\Files\Data\*\*\**\Stats\","*.txt"));
Folders = Folders(~ismember({Folders.name},{'.','..'}));
Folders_Data = struct2cell(Folders);
Folders_Data = transpose(Folders_Data);
Files_Data = struct2cell(Folders);
Files_Data = transpose(Files_Data);
Files_Data = Files_Data(:,2);
Files_Data = unique(Files_Data);
fds = fileDatastore(Files_Data, ReadFcn=@(x) readtable(x,VariableNamingRule="preserve"), FileExtensions=".txt", IncludeSubfolders=true, ReadMode="file");
data = readall(fds)
字符串
;
1条答案
按热度按时间6jygbczu1#
我会这么做
字符串
**编辑:**这里有一些更直接的答案。请注意,
dir
的结果是一个结构,而问题中的名称Folders
意味着它是一个文件夹列表。我倾向于使用变量d
作为dir
的输出型