我想创建m,m矩阵的1,k个单元格。我在尝试初始化时遇到了一些麻烦。我的第一个想法就是这样做
myCell = cell{1,K};
for k = 1:K
myCell{1,k} = eye(m);
end
但是初始化它似乎是一种丑陋的方式。必须有更好的方法吗?
答案 0 :(得分:5)
具有更少函数调用的解决方案:
[myCell{1:k}] = deal(eye(m));
答案 1 :(得分:3)
答案 2 :(得分:2)
试试这个:
myCell = mat2cell(repmat(eye(m),[1 k]),[m],repmat(m,1,k))
答案 3 :(得分:2)
考虑一下这个:
myCell = arrayfun(@(x)eye(m), 1:k, 'UniformOutput',false)