从单元格的单元格数组中检索第一个值

时间:2014-11-20 17:51:21

标签: arrays matlab cell cell-array

我有一个单元格数组的单元格...

    data = {1x16}
           {1x16}
           {1x16}

我试图从每个单元格中检索第一个值。但是当我这样做时

     data{:}(1)

我最后说错误

      Bad cell reference operation.

首先,有一个很好的理由为什么我不应该被允许这样做?其次是有办法解决这个问题吗?

干杯! 本

2 个答案:

答案 0 :(得分:1)

对于1D单元格数组 -

first_vals = arrayfun(@(n) data{n}(1),1:numel(data))

这适用于一般情况 -

first_vals = reshape(arrayfun(@(n) data{n}(1),1:numel(data)),size(data))

答案 1 :(得分:0)

我更喜欢使用简单的for循环:

例如,这可行:

data = [{[1:16]}; {[17:32]}; {[33:48]}];
b= []
for i=1:length(data)
b = [b data{i,1}(1)];
end