Как создать массив ячеек k подобных объектов в Matlab?

Я хочу создать 1, k ячейка m, m матрицы. Я испытываю некоторые затруднения при попытке инициализировать его. Моя первая идея состояла в том, чтобы сделать это

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

Но это походит на такой ужасный способ инициализировать его. Должен быть лучший путь?

8
задан gnovice 30 March 2017 в 05:05
поделиться

4 ответа

Решение с еще меньшим количеством вызовов функций:

[myCell{1:k}] = deal(eye(m));
5
ответ дан 5 December 2019 в 14:00
поделиться

Рассмотрим этот вариант:

myCell = arrayfun(@(x)eye(m), 1:k, 'UniformOutput',false)
2
ответ дан 5 December 2019 в 14:00
поделиться

Вот очень простое решение REPMAT:

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

Это просто создает одну ячейку с eye(m) в ней, затем реплицирует эту ячейку K раз.

3
ответ дан 5 December 2019 в 14:00
поделиться

Попробуйте так:

myCell =  mat2cell(repmat(eye(m),[1 k]),[m],repmat(m,1,k))
2
ответ дан 5 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: