Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

finding mean

Asked by FIR

FIR (view profile)

on 12 Jun 2012

I have a 30 matrix of size 256x256 stored in in different variables,

for ex the variables are A,D,R,T,Y,......ETC,EACH variable has same matrix size,now i want to find mean for each matrix and store it s mean values in a separate variable ,please help

0 Comments

FIR

FIR (view profile)

Tags

Products

No products are associated with this question.

3 Answers

Answer by the cyclist

the cyclist (view profile)

on 12 Jun 2012
Accepted answer

It's pretty awkward if there is no pattern to the naming of the variables, so if you can fix the naming problem upstream, you should try to do that. If you can't, then one approach is to define a function that takes a variable number of arguments, and does the mean of each one:

function arrayOfMeans = getMeans(varargin)
arrayOfMeans = zeros(nargin,1);
for n=1:nargin
    arrayOfMeans(n) = mean(varargin{n}(:)); % Calculating means of all elements in array
end
end

Then call that function with the list of your variables as the input. For example,

>> getMeans(magic(3),rand(7),eye(4))

In your case, you would do

>> getMeans(A,D,R,T) 

etc

0 Comments

the cyclist

the cyclist (view profile)

Answer by Walter Roberson

Walter Roberson (view profile)

on 12 Jun 2012

1 Comment

FIR

FIR (view profile)

on 13 Jun 2012

walter i have seen the link .but could not find a solution ,can u please tell how to get a solution as per my post posted above

Walter Roberson

Walter Roberson (view profile)

Answer by Andrei Bobrov

Andrei Bobrov (view profile)

on 13 Jun 2012
a = whos;
b = strcat({a(cellfun(@(x)isequal(x,[256 256]),{a.size})).name},',');
AD_etc = eval(['{',[b{:}],'}']);
AD_mean = cellfun(@(x)mean(x(:)),AD_etc,'un',0);
out = cell2struct([AD_etc;AD_mean],{'data','mean'});

0 Comments

Andrei Bobrov

Andrei Bobrov (view profile)

Contact us