Как обычно, в документации MATLAB есть пример того, как делать такие вещи:
sys = tf(zeros(1,1,3));
s = tf('s');
for k = 1:3
sys(:,:,k) = k/(s^2+s+k);
end
Итак, проблема, вероятно, заключается в том, чтоиндексирование L(1)
неверно, оно должно быть L(:,:,1)
.
Обратите внимание, что tf.empty(5, 0)
дает указание создать массив 5x0 (т. е. пустой массив).Там нет никакого смысла в этом.Вы можете просто пропустить эту инструкцию.Потому что когда вы позже сделаете L(:,:,1)
, вы будете увеличивать размер массива любым способом (он начинается с 0 элементов, вы хотите назначить новый элемент, ему нужно перераспределить массив).Вы должны всегда стремиться создавать массивы правильного размера с самого начала.