1

当我运行下面的代码时,出现以下错误:

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
4

1 回答 1

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是普通矩阵,您是否尝试过使用 just folder(x)

更新:

我从您更新的问题中看到这folder是一个struct,而不是一个单元格。尝试以下操作,在其中替换.fieldfolder.

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
于 2013-10-29T14:48:31.920 回答