MATLAB: Adding a new value to an array within a loop

appendarrayloopsum

Hi, this is my code. For each m, I am generating a random data set with 23 elements, then sum up the elements and add the sum to the array t1_0. However the resulting array has just the last added sum, all the other values are zeros. I cannot figure out what I am doing wrong. Many thanks for help.
clc; clear all;
rng('default') % initialize random number generator
A = 1.1; mn = 0; sd = 1; N = 23;
m = 3;
t1_0 = zeros(m,1)
for i=1:m % generate m outcomes of the data set
% generate a single data set under hypothesis H0
x0 = randn(N,1)*sd + mn;
sum(x0)
% statistic T1 under hypothesis H0
t1_0(m) = sum(x0);
end
t1_0
%T1_H0 = histogram(t1_0,50,'Normalization','pdf');
This is the output I get when I print out the values of sums for each m (m=3) and the final array:
ans =
13.4730
ans =
-1.9366
ans =
0.5020
t1_0 =
0
0
0.5020

Best Answer

You aren't correctly indexing:
%replace this
t1_0(m) = sum(x0);
%with this
t1_0(i) = sum(x0);