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

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

end

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

M=mean(match,3)

end

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.

0 Comments

Samira

Products

No products are associated with this question.

1 Answer

Answer by ChristianW on 1 Apr 2013
Accepted answer
k = 0;
while (reading file) ...
    k = k+1;
    match(k,:) = strcmp('Hello', out)
end
M = mean(match)

10 Comments

ChristianW on 3 Apr 2013

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>
Samira on 3 Apr 2013

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

ChristianW on 3 Apr 2013

You're welcome.

ChristianW

Contact us