访问嵌套元胞数组
Access nested cell array
我有一个大小为 1x84 的元胞数组,其中元素是 1x1 或 1x2 元胞。
我想通过从嵌套单元格中取出第一个元素来获得大小为 1x84 的单元格数组
CellList = <1x84 cell>
CellList = <1x1 cell> <1x1 cell> <1x1 cell> <1x2 cell> <1x1 cell> ... <1x2 cell>
子元素也是单元格
我尝试使用此代码:
CellList = cellfun(@(x)x{1,:}{1,:},CellList, 'UniformOutput',0);
但是我遇到了以下错误:
error : Cell contents reference from a non-cell array object.
cellfun
访问你给它的单元格的每个元素,所以你正在获取一个元素 x
,试图访问它的第一个元素,以及不存在的第一个元素.
您想使用
CellList2 = cellfun(@(x)x{1}, CellList, 'uniformoutput', false)
编辑:
您声称您仍然遇到错误,在这种情况下,您的问题无法重现。这是一些设置代码:
% define a 1x84 cell array
c = cell(1,84);
% Make each element a 1x2 or 1x1 cell array
for n = 1:84; c{n} = cell(1,randi([1,2],1)); end;
% Output is as you've described and shown
>> c = <1x84 cell>
= <1x2 cell> <1x1 cell> <1x1 cell> ... <1x2 cell>
现在使用我上面的代码,它工作正常。
d = cellfun(@(x)x{1},c,'uniformoutput',false);
d = <1x84 cell>
= [] [] [] [] ... [] % All empty elements as we initialised empty cells
我有一个大小为 1x84 的元胞数组,其中元素是 1x1 或 1x2 元胞。
我想通过从嵌套单元格中取出第一个元素来获得大小为 1x84 的单元格数组
CellList = <1x84 cell>
CellList = <1x1 cell> <1x1 cell> <1x1 cell> <1x2 cell> <1x1 cell> ... <1x2 cell>
子元素也是单元格
我尝试使用此代码:
CellList = cellfun(@(x)x{1,:}{1,:},CellList, 'UniformOutput',0);
但是我遇到了以下错误:
error : Cell contents reference from a non-cell array object.
cellfun
访问你给它的单元格的每个元素,所以你正在获取一个元素 x
,试图访问它的第一个元素,以及不存在的第一个元素.
您想使用
CellList2 = cellfun(@(x)x{1}, CellList, 'uniformoutput', false)
编辑:
您声称您仍然遇到错误,在这种情况下,您的问题无法重现。这是一些设置代码:
% define a 1x84 cell array
c = cell(1,84);
% Make each element a 1x2 or 1x1 cell array
for n = 1:84; c{n} = cell(1,randi([1,2],1)); end;
% Output is as you've described and shown
>> c = <1x84 cell>
= <1x2 cell> <1x1 cell> <1x1 cell> ... <1x2 cell>
现在使用我上面的代码,它工作正常。
d = cellfun(@(x)x{1},c,'uniformoutput',false);
d = <1x84 cell>
= [] [] [] [] ... [] % All empty elements as we initialised empty cells