Что вы, вероятно, хотели написать было
a(1,:) = [1, 0.13,0.52,0.3];
a(2,:) = [1, 0, .268];
Т.е. первая строка - [1, 0.13,0.52,0.3]
, а вторая строка - [1, 0, .268]
. Это невозможно, потому что каково будет значение (2,4)?
Существует два способа решения проблемы.
(1) Использовать массивы ячеек
a{1} = [1, 0.13,0.52,0.3];
a{2} = [1, 0, .268];
(2) Если вы знаете максимально возможное количество столбцов, которые будут иметь ваши решения, вы можете предварительно выделить свой массив и записать результаты примерно так (если вы не будете предварительно распределять, вы будете
получить нулевое заполнение. Вы также рискуете сильно замедлить ваш цикл, если есть много итераций, потому что массив придется создавать заново на каждой итерации.
a = NaN(nIterations,maxNumCols); %# this fills the array with not-a-numbers
tmp = [1, 0.13,0.52,0.3];
a(1,1:length(tmp)) = tmp;
tmp = [1, 0, .268];
a(2,1:length(tmp)) = tmp;