# Creating blocks of average values from a series but avoiding dynamic variable names

1 vue (au cours des 30 derniers jours)
Anthony Phipps le 13 Fév 2021
Commenté : Paul Hoffrichter le 15 Fév 2021
Hi
I am trying to avoid using dyanmic variable names for all the good reasons listed:
My challenge
I have two long series of numbers stored in a single row matrix that I need to compare but in a particular way.
They are sutbley different. I'm ok to compare them but the first step I need to do is giving me a challenge. I need to break each series into groups (the length of which is a variable), take an average of each group, and store the recovered averages in a matrix.
Then I need to compare the results and the differnce is the answer I am looking for.
The bit that has me vexed is how to do this without using a for loop and dynamic named variables. If I try using the index its not having the desoired outcome despite much experimentation. Here a little test version of what I'm trying to do:
clear;
mynumberc = 100 * rand(1, 505);
lenny = length(mynumberc);
group_size = 100;
numberofgroups = floor(lenny/group_size);
nextstart = 1;
nextstop = group_size;
groupdata = ;
group_ave = ;
for i = 1:1:numberofgroups
for c = nextstart:1:nextstop
groupdata(c) = mynumberc(c)
nextstart = nextstart + 1
nextstop = nextstop + 1
end
group_ave(i, end+1) = mean (groupdata)
i = i + 1;
end
group_ave = group_ave (2:end)
return
In this example I'd want the first 500 values of mynumberc to be split into 5 100 value chunks, each chunk averaged and then put in an array of averages called group_ave. The actual use of this will be at much bigger scale which is why I want to avoid dynamically named variables.
##### 2 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
Anthony Phipps le 15 Fév 2021
Thanks for this. It turns out I dont need the for loops and as you suggest it can be done by arranging the vector.
Thanks for the guidance and also the pointers on the correct syntax.
Many thanks

Connectez-vous pour commenter.

### Réponse acceptée

Paul Hoffrichter le 15 Fév 2021
Since you have 5 groups of 100 numbers, I thought you wanted the mean of each group. That gives 5 means. So I did not understand why you say "store the recovered averages in a matrix" rather than storing the 5 means in a vector. Below shows how to store the 5 means in a vector.
rng(1234);
mynumberc = 100 * rand(1, 505);
lenny = length(mynumberc);
group_size = 100;
numberofgroups = floor(lenny/group_size);
myGroupNumberC = mynumberc(1:group_size*numberofgroups);
myNumberChunks = reshape( myGroupNumberC, group_size, numberofgroups);
muGroupMeans = mean(myNumberChunks) % meanof each column
##### 2 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
Paul Hoffrichter le 15 Fév 2021
You're very welcome!

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!