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

Learn moreOpportunities for recent engineering grads.

Apply Today
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.

*No products are associated with this question.*

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)

Show 7 older 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

## 0 Comments