因此,我有一個包含數千個文件的文件夾,所有文件都有系統名稱。我希望用戶能夠選擇一個文件夾,之後所有文件名都從列表(單元格數組)轉換爲某種樹結構。然而,實施如何在Matlab中存儲這是我卡住的地方。這是我迄今所做的:從系統字符串(文件名)列表創建部分字符串的樹
folder = uigetdir;
files = dir([folder '\*.nii']);
nfiles = length(files);
filez = cell(nfiles, 1);
for file = 1:nfiles
filez(file,:) = cellstr(files(file).name);
end
files = filez;
chars = zeros(nfiles, 1);
for file = 1:nfiles
chars(file) = length(files{file});
end
filez = files;
names = struct;
for file = 1:nfiles
curfil = filez{file};
depth = 0;
for curchar = 1:chars(file)
if curchar == 1
curmatch = strmatch(curfil(1:curchar), filez);
prevmatch = curmatch;
else
prevmatch = curmatch;
curmatch = strmatch(curfil(1:curchar), filez);
end
if length(curmatch) ~= length(prevmatch)
newnamepart = curfil(1:curchar-1);
newstructnamepart = ['X' newnamepart]; %This I did because fieldnames must start with characters
%This is where I dont know how to go on...
end
end
end
因此,對於每一個文件名我檢查從其他文件名具有相同字符串開頭的名字開始各部分的字符串。如果這種變化我回去一個字符,這應該是我的第一個節點在樹中。但是我不知道如何創建這樣一棵樹。結構看起來最像我這樣,但我不知道如何創建這個結構,但也許有另一種方式?
你能畫一張圖嗎,即使在一張紙上併發布掃描圖嗎? 另外,你能否提供一個簡單的樹如何在特定文件名上分支的例子? – Oleg