当我运行下面的代码时,我收到以下错误:
Cell contents reference from a non-cell array object.
folder
可以包含1个或多个文件夹
for x=1:numel(folder)
y{x} = fullfile(folder{x},'Status.xml');
getFile = fileread(char(y{x}));
content{x} = strtok(getFile ,';');
end
>>whos folder
Name Size Bytes Class Attributes
folder 1x1 941 struct
>> numel(folder)
ans=
1
答案 0 :(得分:0)
假设folder
是一个单元格数组,我相信这应该有效:
y = cell(numel(folder), 1);
for x=1:numel(folder)
y{x} = fullfile(folder{x},'Status');
getFile = fileread(char(y{x}));
content{x} = strtok(getFile ,';');
end
您的错误很可能是y{ii}
。我猜y
没有预先定义。
另外:您在ii
中使用y
作为索引,而在循环中使用x
。
如果folder
是普通矩阵,您是否尝试过只使用folder(x)
?
我从更新的问题中看到folder
是struct,而不是单元格。请尝试以下操作,将.field
替换为您在folder
中输入的内容。
y = cell(numel(folder), 1);
content = cell(numel(folder), 1);
for x=1:numel(folder)
y{x} = fullfile(folder(x).field,'Status');
getFile = fileread(char(y{x}));
content{x} = strtok(getFile ,';');
end