Adding a new value to an array within a loop
4 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Rik
2020-5-8
You aren't correctly indexing:
%replace this
t1_0(m) = sum(x0);
%with this
t1_0(i) = sum(x0);
更多回答(1 个)
Mehmed Saad
2020-5-8
because you are passing m to t1_0 and value of m is constant through out the for loop. The index of your for loop is i in this case so replace m with i in t1_0
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!