# for loop in for loop not storing all variables

4 views (last 30 days)
Dameon Solestro on 22 Nov 2021
Commented: Walter Roberson on 24 Nov 2021
In the simplest way, I am trying to get 3 random (x,y) data sets per group with a total of 5 groups. (So 15 x coordinates and 15 y coordinates in total). Every time I use my mean(x) to find the average x. My for loop only calculates the mean for my groups of x coordinates. How do i do it for all 15 x coordinates?
for j=1:5
for i=1:3
x(i)= rand();
y(i)= rand();
hold on
end
hold on
h=mean(x)
end
h = 0.6073
h = 0.6425
h = 0.6971
h = 0.5637 h = 0.5582

Walter Roberson on 23 Nov 2021
for j=1:5
for i=1:3
x(i,j)= rand();
y(i,j)= rand();
hold on
end
hold on
h(j)=mean(x(:,j))
end
h = 0.8827
h = 1×2
0.8827 0.2131
h = 1×3
0.8827 0.2131 0.4023
h = 1×4
0.8827 0.2131 0.4023 0.6954 h = 1×5
0.8827 0.2131 0.4023 0.6954 0.3230
mean(x,1)
ans = 1×5
0.8827 0.2131 0.4023 0.6954 0.3230
mean(x,2)
ans = 3×1
0.6141 0.5077 0.3881
You can see that if you stored all of the values, that mean(x,1) calculates the same thing as taking the mean of each column at the time you generate the column.

### More Answers (1)

Dameon Solestro on 24 Nov 2021
Is there a way to get every x value to subtract the mean, and then place it in a matrix??
So like [(x1- mean(h) ; x2 - mean(h) ; .... ; x15-mean(h)] ??
##### 1 CommentShowHide None
Walter Roberson on 24 Nov 2021
x - mean(h)
Note that each element of your h is a mean of a column, so mean(h) would be mean of the means