【问题标题】:How to create a cell array of k similar objects in Matlab?如何在 Matlab 中创建一个包含 k 个相似对象的元胞数组?
【发布时间】:2011-02-25 17:44:59
【问题描述】:

我想创建一个 m,m 矩阵的 1,k 单元。我在尝试初始化它时遇到了一些麻烦。我的第一个想法是这样做

myCell = cell{1,K};
for k = 1:K
  myCell{1,k} = eye(m);
end 

但它的初始化方式似乎很丑陋。一定有更好的方法吗?

【问题讨论】:

    标签: matlab initialization cell


    【解决方案1】:

    函数调用更少的解决方案:

    [myCell{1:k}] = deal(eye(m));
    

    【讨论】:

      【解决方案2】:

      这是一个非常简单的REPMAT 解决方案:

      myCell = repmat({eye(m)},1,K);
      

      这只是创建一个包含eye(m) 的单元格,然后复制该单元格K 次。

      【讨论】:

        【解决方案3】:

        试试这个:

        myCell =  mat2cell(repmat(eye(m),[1 k]),[m],repmat(m,1,k))
        

        【讨论】:

          【解决方案4】:

          考虑这个:

          myCell = arrayfun(@(x)eye(m), 1:k, 'UniformOutput',false)
          

          【讨论】:

            猜你喜欢
            • 2017-10-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-17
            • 2022-07-06
            • 1970-01-01
            相关资源
            最近更新 更多