So then:
I_grey = mean(I_colour, 3);
It's possible you then might need to cast it to a uint8
before you can view it:
I_grey = uint8(mean(I_colour, 3));
Or if you want to be really accurate you should actually be finding a weighted average. See the answer to this question for weighting options: Formula to determine brightness of RGB color
Here is an example of this:
W = permute([0.3086, 0.6094, 0.0820], [3,1,2]);
I_grey = uint8(sum(bsxfun(@times, double(I_colour), W),3));