Azzera filtri
Azzera filtri

CELL2MAT does not support cell arrays containing cell arrays or objects

3 visualizzazioni (ultimi 30 giorni)
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 Commenti
Reuben Addison
Reuben Addison il 11 Feb 2023
The are all defined in my function, I will update that in my code above
Walter Roberson
Walter Roberson il 13 Feb 2023
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?

Accedi per commentare.

Risposte (1)

Jan
Jan il 11 Feb 2023
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);

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Prodotti


Release

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by