Error using readtable, Input must be a row vector of characters or string scalar: WHERE IS YOUR PROBLEM??
24 次查看(过去 30 天)
显示 更早的评论
Hi guys.
My problem is rather common but I cannot solve it. I have several .csv files that I want to combine into one (same sheet). I am trying
vars={'Temperature'; 'Relative humidity'};
path = append(output_path,'\',stations{i},'\');
files = append(path, 'Stats ', months ,' ', stations{i} ,' ',vars{1},' .csv');
result = table();
for fidx = 1:numel(files)
filecontent = readtable(files);
[~, filenumber] = fileparts(files(fidx).name);
filecontent.file_label = repmat(str2double(filenumber), height(filecontent), 1);
result = [result; filecontent];
end
Just to help you understand, stations{i} come from the attached .xlsx and the attached .csv is one of the many files I want to combine. When I run these lines I get the message "Error using readtable, Input must be a row vector of characters or string scalar". I tried files = char(files) but it didn't work.
Any ideas please???
PS. I am on 2019a.
0 个评论
采纳的回答
Fangjun Jiang
2020-3-12
编辑:Fangjun Jiang
2020-3-12
readtable() can read one file at a time. Your "files" variable seems to contain multiple files. So you can't use readtable(files). Most likely, you need to use readtable(files{fidx})
Whenever there is an error, try to debug it yourself. Put a break point in the code, run the code line by line, check out the value of each variable, and look at the error message.
7 个评论
Fangjun Jiang
2020-3-12
so pause your running program at this line, check the value of "fidx", "files" and run "files(fidx)", "files(fidx).name" in Command Window. You will see the exact same error message. You have to ask youself what do you mean and why do you run "files(fidx).name"?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Import and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!