Data in subfolder cannot be load
13 ビュー (過去 30 日間)
古いコメントを表示
Hello, I'm using Matlab R2015b and having problem in reading all data from few sub folders. The folder/dir can be detected but it do not read/extract my data which is in form of '.DATA' and it is quite large data files. In each .DATA, the data is separated with space. I try to fix my coding but still the data cannot be read. I hope anybody can help me on where should i fix my code. I appreciate any help from you guys, thanks.
Here is the code:
f=dir(strcat(folderdir,'*.DATA'));
p={f.name};
temp = {};
for k=1: numel(p)
file= strcat(folderdir,p{k});
fid=fopen(file);
b=textscan(fid,'%f %f %f','delimiter',' ');
fclose(fid);
x=b{1};
y=b{2};
z=b{3};
data{k}=dataset(x,y,z);
temp{k}=data{k};
end
set{j-2} = temp;
setname{j-2} = foldername;
end
0 件のコメント
採用された回答
Walter Roberson
2018 年 3 月 11 日
We recommend using fullfile(folderdir, '*.DATA') and fullfile(folderdir, p{k}) instead of strcat .
You should replace
fid=fopen(file);
with
[fid, msg] = fopen(file, 'r');
if fid < 0
error('Cannot open file "%s" because "%s"', file, msg);
end
2 件のコメント
Walter Roberson
2018 年 3 月 12 日
projectdir = 'TrainingData';
files = dir(projectdir);
dirFlags = [files.isdir];
subfolders = files(dirFlags);
%do not assume that . and .. are the first two subfolders.
subfoldernames = {subfolders.name};
mask = ismember(subfoldernames, {'.', '..'});
subfoldernames(mask) = [];
subfoldernames = fullfile(projectdir, subfoldernames);
for j = 1 : length(subfoldernames);
foldername = subfoldernames{j};
f = dir( fullfile(foldername, '*.DATA') );
fil = fullfile(foldername, {f.name});
temp = {};
for k = 1: numel(fil)
filename = fil{k};
[fid, msg] = fopen(filename, 'r');
if fid < 0
error('Cannot open file "%s" because "%s"', file, msg);
end
b = textscan(fid,'%f %f %f','delimiter',' ');
fclose(fid);
x=b{1};
y=b{2};
z=b{3};
data{k} = dataset(x,y,z);
temp{k} = data{k};
end
set{j} = temp;
setname{j} = foldername;
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Dates and Time についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!