Is there a way to find the mean of every other number in a vector and compare it to every other number in another vector?

1 view (last 30 days)
Kristin Aldridge
Kristin Aldridge on 23 Nov 2021
Edited: Jon on 24 Nov 2021
I'm working on a project where we are recording reaction times to flashing colored red and blue squares. We show each one twice, so red/blue/red/blue and a person has to press the spacebar when they see the square. We end up with something like:
red = [2 4 3 1 2 3 4 4 3 3]
blue = [2 3 2 2 1 1 2 3 2 4]
So the 1st and 3rd value, 2nd and 4th, etc of red I'd like to find the mean and then plot it against the blue's 1st and 3rd, 2nd and 4th, etc to see if red is faster than blue.
I was thinking of doing
xperson1= [red,1,3]
xperson2=[red,2,4]
x1mean=mean(xperson1)..
but xperson1 keeps ending up as a 1x12 double instead. Do I need to write a for loop for this? What syntax should I be using?
Thank you.

Answers (1)

Jon
Jon on 23 Nov 2021
I'm not sure if I am clear on what you are trying to do but from your description I would do something like this:
red = [2 4 3 1 2 3 4 4 3 3]
blue = [2 3 2 2 1 1 2 3 2 4]
redMean = (red(1:end-2) + red(3:end))/2
blueMean =(blue(1:end-2) + blue(3:end))/2
plot(redMean,blueMean,'o')
xlabel('red mean')
ylabel('blue mean')
  2 Comments
Jon
Jon on 24 Nov 2021
Your example is very helpful. I think I understand better. I would do it like this:
% Assign test parameters
numFlashes = 2; % number of flashes of a given color shown to each subject
% Assign original data vectors
blue = [0.290566073000000 0.301381521000000 0.471992764000000 0.422390019000000 0.346596947000000 0.318810550000000]
red = [0.382376714000000 0.261531050000000 0.340653885000000 0.395819844000000 0.411721350000000 0.418958509000000]
% Find the number of subjects
% assume number of elements in blue and red are the same
% (could check this to make code more bullet proof)
numSubjects = numel(blue)/numFlashes;
% Put data into 2 dimensional arrays where each column has all the data for the subject,
% and each row has the reaction time for a flash (in your case two
% rows)
B = reshape(blue,numFlashes,numSubjects)
R = reshape(red,numFlashes,numSubjects)
% Compute column means for each subject
Bmean = mean(B)
Rmean = mean(R)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by