Problems about extracting all the data files
1 次查看(过去 30 天)
显示 更早的评论
%This function is used to get all the data files to be processed
%fdir--the directory of files to be processed
function ufnames = getdatafile(fdir,debug)
close all;
if ~isdir(fdir)
error('FOLDER DOES NOT EXIST')
end
fnames_all = dir(fdir); %GET LIST OF FILES IN fdir FOLDER
if debug
fprintf('\n')
fprintf('\nNames of files inside given directory:\n')
fnames_all
fprintf('\n')
end
%EXTRACT FILE NAMES TO BE PROCESSED
ufnames = [];
sfnames_all = size(fnames_all);
for i = 1:sfnames_all(1)
[path, fname, ext] = fileparts(fnames_all(i).name);
if strcmpi(ext, '.ovf')
ufnames = char(ufnames, [fdir fname ext]); %IF OVF FILE SAVE FULL NAME
end
end
ufnames = ufnames(2:end,:);
if debug
fprintf('\n')
fprintf('\nNames of only ovf files inside given directory:\n')
ufnames
fprintf('\n')
end
end
This is my code, and I want to use this function to wxtract all the data files to be processed. But when I run it, I always get an error at"ufnames = char(ufnames, [fdir fname ext]);", which says"Error using char, Inputs must be character arrays." How can I solve it? How to append the new file name into the array in each loop?
0 个评论
采纳的回答
Shawn Duenas
2019-2-6
编辑:Shawn Duenas
2019-2-6
replace that line with:
ufnames = [ufnames, [fdir fname ext]];
it seems like you're trying to concatenate everything together. into one long string.
try this for better coding style:
ufnames = [ufnames, fullfile(fdir, [fname, ext]), newline];
Also try these lines of code to replace much of the script:
fnames_all = dir(fullfile(fdir,'*.ovf'));
ufnames ={fnames_all.name}';
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!