【问题标题】:Retrieve first value from cell array of cells从单元格数组中检索第一个值
【发布时间】:2014-11-20 17:51:20
【问题描述】:

我有一个元胞数组...

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

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

     data{:}(1)

我最终得到一个错误提示

      Bad cell reference operation.

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

干杯! 本

【问题讨论】:

    标签: arrays matlab cell cell-array


    【解决方案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))
    

    【讨论】:

      【解决方案2】:

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

      例如,这会起作用:

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

      【讨论】:

        猜你喜欢
        • 2012-02-23
        • 2012-01-27
        • 2017-11-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-20
        • 1970-01-01
        • 1970-01-01
        • 2015-03-21
        相关资源
        最近更新 更多