# How can i find cumulative mean inside a for loop?

6 views (last 30 days)
Hey everyone,
I have a code which helps me to calculate the mean values. Each of the "cellList.meshData(j)" corresponds to a single column vector of values. I would like it to give me the total mean of all 25 cells. The following code gives me the mean for each cell.
for j=1:25
data=cellList.meshData(j);
if isempty(data{1,1})
continue
end
mean_int_val = mean(cellList.meshData{j}{1,1}.signal2);
end

#### 1 Comment

Johannes Fischer on 3 Sep 2019
To imporve code-readability, I would not use 'continue' in this case:
for j = 1:25
data = cellList.meshData(j);
if ~isempty(data{1, 1})
mean_int_val = mean(cellList.meshData{j}{1, 1}.signal2);
end
end

Nicolas B. on 3 Sep 2019
Edited: Nicolas B. on 3 Sep 2019
Hi,
For your situation, you should consider that . So they are 2 situations:
1. All vectors have the same size
2. Vectors can have different sizes
If you are in the first situation, I would simply keep all mean_int_val and simply recompute the the mean of all means.
nData = 25;
mean_int_val = NaN(1, nData);
for j=1:nData
data=cellList.meshData(j);
if isempty(data{1,1})
continue
end
mean_int_val(j) = mean(cellList.meshData{j}{1,1}.signal2);
end
mean_total = mean(mean_int_val, 'omitnan');
If you are in the second situation, I would also keem the number of samples and then compute the mean.
nData = 25;
mean_int_val = NaN(1, nData);
mean_size = NaN(1, nData);
for j=1:nData
data=cellList.meshData(j);
if isempty(data{1,1})
continue
end
mean_int_val(j) = mean(cellList.meshData{j}{1,1}.signal2);
mean_size(j) = numel(cellList.meshData{j}{1,1}.signal2);
end
mean_total = sum(mean_int_val .* mean_size) / sum(mean_size);

Show 1 older comment
Meghana Balasubramanian on 3 Sep 2019
This isn't the answer I was looking for. Maybe my question wasn't very clear, I apologize for that.
I would like my final output to be the mean of all 25 mean values. Your solution just gives me the individual mean values of the 25 cells.
Nicolas B. on 3 Sep 2019
Thanks for the comment. I corrected it with j instead of i (bad habits).
In my suggestions, the mean of all means is saved in mean_total variable.
Meghana Balasubramanian on 3 Sep 2019
Yes, I just tried the first solution out. It works for my purposes.
Thank you! :)