Чтобы добавить скаляр в массив Matlab, вы можете вызвать либо array(end+1) = value
, либо array = [array;value]
(замените точку с запятой, если вам нужен массив 1 на n). Последний также работает для добавления массивов; чтобы добавить массивы к первому, вы должны позвонить array(end+1:end:size(newArray,1),:) = newArray
на тот случай, если вы захотите соединиться по первому измерению.
Однако добавление в циклы, которые делают больше, чем, скажем, 100 итераций, является плохой идеей в Matlab, потому что это медленно. Лучше сначала предварительно назначить массив - или, что еще лучше, векторизовать вычисления, чтобы вам вообще не пришлось делать циклы.
Если я вас правильно понимаю, вы хотите рассчитать среднее значение и SEM из растущего числа выборок из нормального распределения. Вот как вы можете сделать это с помощью цикла:
intmc = zeros(ntr,3); %# stores, on each row, np1, mean, SEM
sigmat = zeros(ntr,2); %# stores, on each row, np1 and SEM
for i=1:ntr
%# draw np+100*i normally distributed random values
np1 = np+i*100;
xpoints = randn(np1,1);
%# if you want to use uniform random values (as in randomreal), use rand
%# Also, you can apply f(x) directly on the array xpoints
%# caculate mean, sem
m = mean(xpoints);
sem = std(xpoints)/sqrt(np1);
%# store
intmc(i,:) = [np1, m, sem];
sigmat(i,:) = [np1,sem];
end %# loop over i