【发布时间】: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
我想创建一个 m,m 矩阵的 1,k 单元。我在尝试初始化它时遇到了一些麻烦。我的第一个想法是这样做
myCell = cell{1,K};
for k = 1:K
myCell{1,k} = eye(m);
end
但它的初始化方式似乎很丑陋。一定有更好的方法吗?
【问题讨论】:
标签: matlab initialization cell
函数调用更少的解决方案:
[myCell{1:k}] = deal(eye(m));
【讨论】:
【讨论】:
试试这个:
myCell = mat2cell(repmat(eye(m),[1 k]),[m],repmat(m,1,k))
【讨论】:
考虑这个:
myCell = arrayfun(@(x)eye(m), 1:k, 'UniformOutput',false)
【讨论】: