错误:来自非单元数组对象的单元格内容引用

时间:2013-10-29 14:42:57

标签: matlab

当我运行下面的代码时,我收到以下错误:

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

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)

更新:

我从更新的问题中看到folderstruct,而不是单元格。请尝试以下操作,将.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