Clear Filters
Clear Filters

How can I do the average between many vector columns?

22 views (last 30 days)
I have 120 1x500 vector columns, so I can't do it manually. For example, I have the following vector columns, each 1x500 in size:
a1, a2, ......, an, where n=120
I want to do:
(a1 + a2 + ... + an)/n
Thank you very much!
Adrian

Accepted Answer

José-Luis
José-Luis on 16 Apr 2014
Edited: José-Luis on 16 Apr 2014
%Creating vectors:
for ii = 1:50
str = ['a' num2str(ii)];
assignin('base',str,rand(100,1));
end
%Preallocating:
your_mat = ones(100,50);
%Putting everything together, this is the part you want if you already have the vectors
for ii = 1:50
str = ['a' num2str(ii)];
your_mat(:,ii) = evalin('base',str);
end
your_val = mean(your_mat(:));
Please accept an answer if it helps you.
  2 Comments
Adrian
Adrian on 17 Apr 2014
Thank you for your answer. But the thing is that it gives me just a number, because that's what 'mean' function does, it gives a single number. When I average my 120 500x1 column vectors, namely (a1 + a2 + ... + an)/n, where n=120, it should give me a 500x1 vector column, not a single number.
If you could help further, that would be great! Thanks
lvn
lvn on 17 Apr 2014
Replace the last line of Jose-Luis code with
your_val = mean(your_mat);
Then you will have what you want. However, much better would be to initially read in/or store your data in a matrix, rather than in separate vectors, then you can simply use what Azzi wrote.

Sign in to comment.

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 16 Apr 2014

Categories

Find more on Graphics Object Properties in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!