Моя задача теперь хотим построить ячейку C
которые содержат матрицы, первые размеры, содержащиеся в вектореПостроить клетка, которая содержит различные размеры матриц различной размерности
n = [12 23 54]
.
В то время как их вторые размеры фиксируются с
r = 3
.
Итак, я хочу Клетка C = {rand(12,3), rand(23,3), rand(54,3)}.
Я знаю for-loop
может служить своей цели, как:
C=cell(3,1) % pre-allocation
for i = 1 : length(n)
C{i} = rand(n(i),r);
end
Могу ли я узнать, могу ли я это сделать умнее без использования в Matlab с for loop
? Спасибо
Большое вам спасибо и ваше введение в команду 'arrayfun' для меня. – nam
«Никакой вред в использовании цикла' for' не является чрезмерно общим утверждением. В этом контексте (массивы ячеек) нет никакого вреда. В других контекстах, таких как вычисления числовых массивов, тогда есть * несколько * особых случаев, для маркеров только маргинальное наказание, но обычно это огромные преимущества, чтобы избежать их. – jez
@jez Поверьте мне, я хорошо знаю. Я предположил, что, поскольку я отвечал на * конкретный вопрос, можно было предположить, что этот комментарий имел непосредственное отношение к проблеме. – Suever