CELL2MAT does not support cell arrays containing cell arrays or objects

3 次查看(过去 30 天)
I am writing a function and it worked fine until I made a tweak it a pit then I got the above error
path1 = '/Users/punk/Documents/Data/PO3/';
path2 = '*.HWR';
direc = struct2table(dir([fullfile(path1,path2)]));
direc = sortrows(direc,'date');
table2struct(direc);
filenames = {direc.name};
for trialnumber = 1:length(filenames);
filename = filenames{trialnumber};
data = dlmread(fullfile(path1, num2str(cell2mat(filenames(trialnumber)))),'',1,0);
But I am getting this error
Error using cell2mat
CELL2MAT does not support cell arrays containing cell arrays or objects.
Error in Complete (line 38)
data = readtable(fullfile(path1, num2str(cell2mat(filenames(trialnumber)))),'',1,0);
  3 个评论
Walter Roberson
Walter Roberson 2023-2-13
You have mixed up the syntax of readtable() and dlmread() . When you use readtable(), unless the second parameter is an options object such as SpreadsheetImportOptions object, then everything after the first parameter must be name-value pairs. That might include 'NumHeaderLines' option -- but more likely considering you are using dlmread() is that your first row is headers, and you probably do not want to skip those when you readtable() as the header supplies the variable names.
Also, your filename is already a character vector; why are you using num2str() with it?

请先登录,再进行评论。

回答(1 个)

Jan
Jan 2023-2-11
table2struct(direc);
This line converts the table direc to a struct, but ignores the result. In consequence this line has no effect.
Simplify your code by avoiding the useless conversion to table and back again:
path1 = '/Users/punk/Documents/Data/PO3/';
path2 = '*.HWR';
direc = dir(fullfile(path1, path2))); % No need for a concatenation with []
[~, idx] = sort([direc.datenum]);
direc = direc(index);
But what is "filenames" and "trialnumber"? Maybe you mean:
data = dlmread(fullfile(path1, direc(trialnumber).name), '', 1, 0);

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by