MATLAB Answers


Calculate average of multiple matrices by reading an m.file

Asked by Samira
on 1 Apr 2013

I'm having difficulty in calculating the mean of multiple matrices. I know how to calculate the mean, I have tried to use mean(match,3) in 3 dimension , but it does not give me the mean of all my matrices by columns If I calculate my mean in the while loop, it creates a mean for every matrix, and if I do it outside the while loop, it does it only for the last matrix.

For example while(reading file) ...

if(some conditions) continue


match= strcmp('Hello', out)//compares script with the word hello and outputs a logical array of 1s and 0s



match=[1 0 0 0 0 0] match=[0 0 1 0 0 0] match=[0 0 1 0 0 0]

I want the mean to be M=[1/3 0 2/3 0 0 0]

Do I need to use a for loop? Because it seems to be a much longer process to use a for loop to get the mean, but I do not see how else I could do this.


Log in to comment.

1 Answer

Answer by ChristianW
on 1 Apr 2013
 Accepted Answer

k = 0;
while (reading file) ...
    k = k+1;
    match(k,:) = strcmp('Hello', out)
M = mean(match)


No, that is not your output. Your output is like this:

match=[1 0 0]
match=[0 1 1]
match=[1 1 0 1]

And yes, thats very possible the reason for your difficulties. To fill the empty space with zeros, you could use:

ml = strcmp('Hello', out); % match for the line
match(i,1:length(ml)) = ml; %#ok<SAGROW>

Sorry, I meant this is what I want my output to be like. Thank you so much, it works perfectly now! I have been trying to get this code to work for some time, thanks for taking the time to help me out, much appreciated. :D

Log in to comment.

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

MATLAB Academy

New to MATLAB?

Learn MATLAB today!