MATLAB: Patch color error “Vectors must be the same length.”

colorpatch

I am trying to plot 2 patchs with different color. " patch(x, y, c, 'FaceColor', 'flat');" shows error "Vectors must be the same length.". How to setup the color?
x =[ 1 2
1 2
2 3
2 3];
y =[1 2
2 3
2 3
1 2];
c=[0 0.7344
0 1.0000
0.5156 0.2656];
figure;
patch(x, y, 'r');
figure;
patch(x, y, c, 'FaceColor', 'flat');
Thanks,
cfy30

Best Answer

The docs linked by Geoff mention that you can specify an n-by-1-by-3 array of RGB values (for n number of faces). I've defined c to be an n-by-3 array of RGB values and then used reshape() to get the dimensions right:
c=[0 0 0.5156 % <- RGB of first color
0.7344 1.0000 0.2656]; % <- RGB of second color
figure;
patch(x, y, reshape(c,[],1,3), 'FaceColor', 'flat');